हैप्रोक्सी-लुआ - क्लाउड में ऑनलाइन

यह कमांड हैप्रोक्सी-लुआ है जिसे हमारे कई मुफ्त ऑनलाइन वर्कस्टेशन जैसे कि उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर का उपयोग करके ऑनवर्क्स फ्री होस्टिंग प्रदाता में चलाया जा सकता है।

कार्यक्रम:

नाम


हैप्रोक्सी-लुआ - हैप्रोक्सी-लुआ दस्तावेज़ीकरण

हैप्रोक्सी LUA चल रहा है संदर्भों


HAProxy में निष्पादित लुआ कोड को 2 मुख्य मोड में संसाधित किया जा सकता है। पहला है
प्रारंभ मोड, और दूसरा है क्रम मोड.

· में प्रारंभ मोड, हम DNS समाधान निष्पादित कर सकते हैं, लेकिन हम सॉकेट I/O निष्पादित नहीं कर सकते।
इस आरंभीकरण मोड में, लूआ के निष्पादन के दौरान HAProxy अभी भी अवरुद्ध है
कार्यक्रम.

· में क्रम मोड, हम DNS समाधान नहीं कर सकते, लेकिन हम सॉकेट का उपयोग कर सकते हैं।
लुआ कोड का निष्पादन अनुरोध प्रसंस्करण के साथ बहुसंकेतन होता है, इसलिए लुआ कोड
ऐसा लगता है कि ब्लॉकिंग में चलाया जा रहा है, लेकिन ऐसा नहीं है।

लुआ कोड एक या अधिक फ़ाइलों में लोड किया गया है। इन फ़ाइलों में मुख्य कोड और फ़ंक्शंस शामिल हैं।
लुआ में 6 निष्पादन संदर्भ हैं।

1. लुआ फ़ाइल परिवर्तन प्रसंग. इसे लूआ फ़ाइल के लोड के दौरान निष्पादित किया जाता है
HAProxy [वैश्विक] निर्देश के साथ अनुभाग लुआ-लोड. इसे आरंभीकरण में निष्पादित किया जाता है
तरीका। इस अनुभाग का उपयोग HAProxy में Lua बाइंडिंग को कॉन्फ़िगर करने के लिए किया जाता है।

2. लुआ init प्रसंग. यह HAProxy के ठीक बाद निष्पादित एक Lua फ़ंक्शन है
कॉन्फ़िगरेशन पार्सिंग. निष्पादन आरंभीकरण मोड में है. इस सन्दर्भ में
HAProxy वातावरण पहले ही प्रारंभ हो चुका है। कॉन्फ़िगरेशन की जाँच करना उपयोगी है, या
सॉकेट कनेक्शन या कार्यों को प्रारंभ करना। ये कार्य शरीर में घोषित किये गये हैं
लुआ फ़ंक्शन के साथ संदर्भ core.register_init(). फ़ंक्शन का प्रोटोटाइप एक है
रिटर्न वैल्यू के बिना और पैरामीटर के बिना सरल फ़ंक्शन, इस तरह: समारोह एफसीएन().

3. लुआ कार्य प्रसंग. यह HAProxy की शुरुआत के बाद निष्पादित एक Lua फ़ंक्शन है
शेड्यूलर, और लुआ फ़ंक्शन के साथ कार्य की घोषणा के तुरंत बाद
कोर.रजिस्टर_टास्क(). यह संदर्भ यातायात प्रसंस्करण के साथ समवर्ती हो सकता है। यह है
रनटाइम मोड में निष्पादित। फ़ंक्शन का प्रोटोटाइप बिना एक सरल फ़ंक्शन है
वापसी मूल्य और पैरामीटर के बिना, इस तरह: समारोह एफसीएन().

4. कार्य प्रसंग. यह सशर्त रूप से निष्पादित एक लुआ फ़ंक्शन है। ये क्रियाएं हैं
लुआ निर्देशों द्वारा पंजीकृत "कोर.रजिस्टर_एक्शन()"। लुआ का प्रोटोटाइप
फ़ंक्शन कहा जाता है, यह एक ऐसा फ़ंक्शन है जो कुछ भी नहीं लौटाता है और यह एक ऑब्जेक्ट लेता है
प्रविष्टि के रूप में कक्षा TXN। समारोह एफसीएन(टीएक्सएन).

5. नमूना-लाने प्रसंग. यह फ़ंक्शन एक TXN ऑब्जेक्ट को एंट्री तर्क के रूप में लेता है और
एक स्ट्रिंग लौटाता है. इस प्रकार के फ़ंक्शन किसी भी ब्लॉकिंग फ़ंक्शन को निष्पादित नहीं कर सकते हैं। वे
कुछ मूल HAProxy नमूना-लाने वालों को एकत्र करने और परिणाम वापस करने के लिए उपयोगी हैं।
फ़ंक्शन का प्रोटोटाइप है समारोह स्ट्रिंग एफसीएन(टीएक्सएन). ये कार्य हो सकते हैं
लुआ फ़ंक्शन के साथ पंजीकृत core.register_fetches(). प्रत्येक घोषित नमूना-लाने योग्य है
स्ट्रिंग "लुआ" द्वारा उपसर्ग।

ध्यान दें: यह संभव है कि इस फ़ंक्शन को मूल में आवश्यक डेटा नहीं मिल सका
HAProxy नमूना-प्राप्त करता है, इस मामले में, यह परिणाम नहीं लौटा सकता। यह मामला अभी तक नहीं है
समर्थित

6. परिवर्तक प्रसंग. यह एक लुआ फ़ंक्शन है जो इनपुट के रूप में एक स्ट्रिंग लेता है और वापस लौटता है
आउटपुट के रूप में एक और स्ट्रिंग। इस प्रकार के फ़ंक्शन स्टेटलेस होते हैं, इन तक पहुंच नहीं हो सकती
कोई भी प्रसंग. वे कोई अवरोधक कार्य निष्पादित नहीं करते हैं. कॉल प्रोटोटाइप है समारोह
स्ट्रिंग एफसीएन(स्ट्रिंग). इस फ़ंक्शन को लुआ फ़ंक्शन के साथ पंजीकृत किया जा सकता है
core.register_converters(). प्रत्येक घोषित कनवर्टर के आगे "lua" स्ट्रिंग लगी होती है।

हैप्रोक्सी LUA नमस्ते विश्व


HAProxy कॉन्फ़िगरेशन फ़ाइल (hello_world.conf):

वैश्विक
लुआ-लोड hello_world.lua

प्रॉक्सी सुनो
बाइंड 127.0.0.1:10001
टीसीपी-अनुरोध निरीक्षण-विलंब 1एस
टीसीपी-अनुरोध सामग्री उपयोग-सेवा lua.hello_world

HAProxy लुआ फ़ाइल (हैलो_वर्ल्ड.लुआ):

core.register_service("hello_world", "tcp", फ़ंक्शन(एप्लेट)
एप्लेट:भेजें("हैलो वर्ल्ड\n")
समाप्त)

इस कॉन्फ़िगरेशन के परीक्षण के लिए HAProxy कैसे प्रारंभ करें:

./haproxy -f hello_world.conf

अन्य टर्मिनल पर, आप टेलनेट के साथ परीक्षण कर सकते हैं:

#:~ टेलनेट 127.0.0.1 10001
हैलो दुनिया

कक्षा मुख्य()
"कोर" वर्ग में सभी HAProxy कोर फ़ंक्शन शामिल हैं। ये फ़ंक्शन उपयोगी हैं
निष्पादन प्रवाह को नियंत्रित करने, हुक पंजीकृत करने, वैश्विक मानचित्रों में हेरफेर करने के लिए
या एसीएल,...

"कोर" वर्ग मूल रूप से HAProxy के साथ प्रदान किया गया है। नहीं की आवश्यकता होती है लाइन की आवश्यकता है
इन फ़ंक्शन का उपयोग करता है.

"कोर" वर्ग स्थिर है, इस प्रकार की कोई नई वस्तु बनाना संभव नहीं है।

core.emerg

रिटर्न
पूर्णांक

यह विशेषता एक पूर्णांक है, इसमें लॉगलेवल "आपातकालीन" का मान शामिल है
(0).

कोर.चेतावनी

रिटर्न
पूर्णांक

यह विशेषता एक पूर्णांक है, इसमें लॉगलेवल "अलर्ट" (1) का मान शामिल है।

कोर.क्रिट

रिटर्न
पूर्णांक

यह विशेषता एक पूर्णांक है, इसमें लॉगलेवल "महत्वपूर्ण" (2) का मान शामिल है।

कोर.त्रुटि

रिटर्न
पूर्णांक

यह विशेषता एक पूर्णांक है, इसमें लॉगलेवल "त्रुटि" (3) का मान शामिल है।

कोर.चेतावनी

रिटर्न
पूर्णांक

यह विशेषता एक पूर्णांक है, इसमें लॉगलेवल "चेतावनी" (4) का मान शामिल है।

कोर.सूचना

रिटर्न
पूर्णांक

यह विशेषता एक पूर्णांक है, इसमें लॉगलेवल "नोटिस" (5) का मान शामिल है।

core.info

रिटर्न
पूर्णांक

यह विशेषता एक पूर्णांक है, इसमें लॉगलेवल "जानकारी" (6) का मान शामिल है।

कोर.डीबग

रिटर्न
पूर्णांक

यह विशेषता एक पूर्णांक है, इसमें लॉगलेवल "डीबग" (7) का मान शामिल है।

कोर.लॉग(लॉगलेवल, संदेश)
प्रसंग: बॉडी, इनिट, कार्य, क्रिया, नमूना-प्राप्ति, कनवर्टर

यह फ़ंक्शन एक लॉग भेजता है. लॉग HAProxy के अनुसार भेजा जाता है
कॉन्फ़िगरेशन फ़ाइल, डिफ़ॉल्ट syslog सर्वर पर यदि इसे कॉन्फ़िगर किया गया है और पर
यदि अनुमति हो तो stderr.

तर्क

· लॉग स्तर (पूर्णांक) -- क्या लॉग स्तर संदेश से संबद्ध है। यह है एक
0 और 7 के बीच की संख्या.

· msg (स्ट्रिंग) -- लॉग सामग्री.

देख core.emerg, core.alert, core.crit, core.err, core.warning, core.notice,
core.info, core.debug (लॉग स्तर परिभाषाएँ)

देख कोड.डीबग

देख कोर.जानकारी

देख कोर.चेतावनी

देख कोर.चेतावनी

कोर.डीबग(संदेश)
प्रसंग: बॉडी, इनिट, कार्य, क्रिया, नमूना-प्राप्ति, कनवर्टर

तर्क

· msg (स्ट्रिंग) -- लॉग सामग्री.

देख लॉग इन

से समान कार्य करता है:

समारोह डीबग करें(संदेश)
कोर.लॉग (कोर.डीबग, संदेश)
समाप्त

कोर.जानकारी(संदेश)
प्रसंग: बॉडी, इनिट, कार्य, क्रिया, नमूना-प्राप्ति, कनवर्टर

तर्क

· msg (स्ट्रिंग) -- लॉग सामग्री.

देख लॉग इन

समारोह जानकारी(संदेश)
core.log (core.info, संदेश)
समाप्त

कोर.चेतावनी(संदेश)
प्रसंग: बॉडी, इनिट, कार्य, क्रिया, नमूना-प्राप्ति, कनवर्टर

तर्क

· msg (स्ट्रिंग) -- लॉग सामग्री.

देख लॉग इन

समारोह चेतावनी(संदेश)
कोर.लॉग (कोर.चेतावनी, संदेश)
समाप्त

कोर.चेतावनी(संदेश)
प्रसंग: बॉडी, इनिट, कार्य, क्रिया, नमूना-प्राप्ति, कनवर्टर

तर्क

· msg (स्ट्रिंग) -- लॉग सामग्री.

देख लॉग इन

समारोह चेतावनी(संदेश)
कोर.लॉग (कोर.अलर्ट, संदेश)
समाप्त

core.add_acl(फ़ाइलनाम, कुंजी)
प्रसंग: init, कार्य, क्रिया, नमूना-लाने, कनवर्टर

एसीएल जोड़ें कुंजी फ़ाइल द्वारा संदर्भित ACLs सूची में फ़ाइल का नाम.

तर्क

· फ़ाइल का नाम (स्ट्रिंग) -- फ़ाइल नाम जो ACL प्रविष्टियों का संदर्भ देता है।

· कुंजी (स्ट्रिंग) -- कुंजी जो जोड़ी जाएगी।

core.del_acl(फ़ाइलनाम, कुंजी)
प्रसंग: init, कार्य, क्रिया, नमूना-लाने, कनवर्टर

कुंजी द्वारा संदर्भित ACL प्रविष्टि हटाएँ कुंजी द्वारा संदर्भित एसीएल की सूची में
फ़ाइल का नाम.

तर्क

· फ़ाइल का नाम (स्ट्रिंग) -- फ़ाइल नाम जो ACL प्रविष्टियों का संदर्भ देता है।

· कुंजी (स्ट्रिंग) -- वह कुंजी जो हटा दी जाएगी.

core.del_map(फ़ाइलनाम, कुंजी)
प्रसंग: init, कार्य, क्रिया, नमूना-लाने, कनवर्टर

संदर्भित मानचित्रों की सूची में निर्दिष्ट कुंजी के साथ अनुक्रमित मानचित्र प्रविष्टि को हटा दें
उसके फ़ाइल नाम से.

तर्क

· फ़ाइल का नाम (स्ट्रिंग) -- फ़ाइल नाम जो मानचित्र प्रविष्टियों को संदर्भित करता है।

· कुंजी (स्ट्रिंग) -- वह कुंजी जो हटा दी जाएगी.

core.msleep(मिलीसेकंड)
प्रसंग: बॉडी, इनिट, कार्य, क्रिया

RSI कोर.एमएसलीप() निर्दिष्ट मिलीसेकंड के बीच लुआ निष्पादन को रोकता है।

तर्क

· मिलीसेकेंड (पूर्णांक) -- आवश्यक मिलीसेकंड.

core.register_action(नाम, कार्रवाई, func)
प्रसंग: तन

क्रिया के रूप में निष्पादित लुआ फ़ंक्शन को पंजीकृत करें। सभी पंजीकृत कार्रवाई का उपयोग किया जा सकता है
HAProxy में उपसर्ग "lua" के साथ। किसी क्रिया को इनपुट के रूप में TXN ऑब्जेक्ट क्लास मिलता है।

तर्क

· नाम (स्ट्रिंग) -- कनवर्टर का नाम है.

· कार्रवाई (तालिका) - स्ट्रिंग की एक तालिका है जो HAProxy क्रियाओं का वर्णन करती है
में पंजीकरण करना चाहते हैं. अपेक्षित कार्रवाइयां हैं 'tcp-req', 'tcp-res',
'http-req' या 'http-res'।

· समारोह (समारोह) -- लूआ फ़ंक्शन को कनवर्टर के रूप में कार्य करने के लिए कहा जाता है।

तर्क के रूप में प्रयुक्त लुआ फ़ंक्शन का प्रोटोटाइप है:

फ़ंक्शन(txn)

·

TXN (TXN कक्षा): इसका is a TXN वस्तु प्रयुक्त एसटी छेड़खानी la
वर्तमान अनुरोध या टीसीपी स्ट्रीम।

यहां, कार्रवाई पंजीकरण का एक उदाहरण है। कार्रवाई में बस एक 'हैलो वर्ल्ड' भेजें
लॉग।

core.register_action("हैलो-वर्ल्ड", { "tcp-req", "http-req" }, फ़ंक्शन(txn)
txn: जानकारी ("हैलो वर्ल्ड")
समाप्त)
इस उदाहरण कोड का उपयोग HAproxy कॉन्फ़िगरेशन में इस प्रकार किया जाता है:

फ्रंटएंड tcp_frt
मोड टीसीपी
टीसीपी-अनुरोध सामग्री lua.hello-world

फ्रंटएंड http_frt
मोड http
http-अनुरोध lua.hello-world

core.register_converters(नाम, func)
प्रसंग: तन

कनवर्टर के रूप में निष्पादित लुआ फ़ंक्शन को पंजीकृत करें। सभी पंजीकृत कन्वर्टर्स हो सकते हैं
HAProxy में उपसर्ग "lua" के साथ उपयोग किया जाता है। एक कनवर्टर को इनपुट के रूप में एक स्ट्रिंग मिलती है और
आउटपुट के रूप में एक स्ट्रिंग लौटाएँ। पंजीकृत फ़ंक्शन अधिकतम 9 मान ले सकता है
पैरामीटर. सभी मान स्ट्रिंग हैं.

तर्क

· नाम (स्ट्रिंग) -- कनवर्टर का नाम है.

· समारोह (समारोह) -- लूआ फ़ंक्शन को कनवर्टर के रूप में कार्य करने के लिए कहा जाता है।

तर्क के रूप में प्रयुक्त लुआ फ़ंक्शन का प्रोटोटाइप है:

फ़ंक्शन (str, [p1 [, p2 [, ... [, p5]]]])

· str (स्ट्रिंग): यह इनपुट मान स्वचालित रूप से स्ट्रिंग में परिवर्तित हो जाता है।

· p1 .. p5 (स्ट्रिंग): यह हारॉक्सी में घोषित स्ट्रिंग तर्कों की एक सूची है
विन्यास फाइल। तर्कों की संख्या 5 से अधिक नहीं है. आदेश और
इनकी प्रकृति परंपरागत रूप से डेवलपर द्वारा चुनी जाती है।

core.register_fetches(नाम, func)
प्रसंग: तन

नमूना लाने के रूप में निष्पादित लुआ फ़ंक्शन को पंजीकृत करें। सभी पंजीकृत नमूने लाए जाएंगे
HAProxy में उपसर्ग "lua" के साथ उपयोग किया जा सकता है। एक लुआ नमूना एक स्ट्रिंग लौटाता है
आउटपुट के रूप में. पंजीकृत फ़ंक्शन पैरामीटर के रूप में 9 मान तक ले सकता है। सभी
मान स्ट्रिंग हैं।

तर्क

· नाम (स्ट्रिंग) -- कनवर्टर का नाम है.

· समारोह (समारोह) -- लूआ फ़ंक्शन को नमूना लाने के रूप में काम करने के लिए बुलाया जाता है।

तर्क के रूप में प्रयुक्त लुआ फ़ंक्शन का प्रोटोटाइप है:

स्ट्रिंग फ़ंक्शन (टीएक्सएन, [पी1 [, पी2 [, ​​... [, पी5]]]])

· TXN (TXN कक्षा): यह वर्तमान अनुरोध से संबद्ध txn ऑब्जेक्ट है।

· p1 .. p5 (स्ट्रिंग): यह हारॉक्सी में घोषित स्ट्रिंग तर्कों की एक सूची है
विन्यास फाइल। तर्कों की संख्या 5 से अधिक नहीं है. आदेश और
इनकी प्रकृति परंपरागत रूप से डेवलपर द्वारा चुनी जाती है।

· रिटर्न: एक स्ट्रिंग जिसमें कुछ डेटा है, यदि मान अभी वापस नहीं किया जा सकता है तो शून्य।

लुआ उदाहरण कोड:

core.register_fetches("हैलो", फ़ंक्शन(txn)
वापसी "हैलो"
समाप्त)
HAProxy उदाहरण विन्यास:

अग्रभाग उदाहरण
http-अनुरोध पुनर्निर्देशन स्थान /%[lua.hello]

core.register_service(नाम, मोड, func)
प्रसंग: तन

एक सेवा के रूप में निष्पादित लुआ फ़ंक्शन को पंजीकृत करें। सभी पंजीकृत सेवा हो सकती है
HAProxy में उपसर्ग "lua" के साथ उपयोग किया जाता है। एक सेवा को इनपुट के रूप में एक ऑब्जेक्ट क्लास मिलता है
आवश्यक मोड के अनुसार.

तर्क

· नाम (स्ट्रिंग) -- कनवर्टर का नाम है.

· मोड (स्ट्रिंग) -- स्ट्रिंग आवश्यक मोड का वर्णन करती है। केवल 'टीसीपी' या
'http' की अनुमति है.

· समारोह (समारोह) -- लूआ फ़ंक्शन को कनवर्टर के रूप में कार्य करने के लिए कहा जाता है।

तर्क के रूप में प्रयुक्त लुआ फ़ंक्शन का प्रोटोटाइप है:

फ़ंक्शन(एप्लेट)

· एप्लेट एप्लेट होगा एक AppletTCP कक्षा या एक AppletHTTP कक्षा. यह प्रकार पर निर्भर करता है
पंजीकृत एप्लेट का. के लिए 'http' मान के साथ पंजीकृत एक एप्लेट मोड
पैरामीटर मिलेगा a AppletHTTP कक्षा। अगर मोड मान 'टीसीपी' है, एप्लेट होगा
एक हो जाता है AppletTCP कक्षा.

चेतावनी: 'http' प्रकार के एप्लेट्स को 'tcp-' से नहीं बुलाया जा सकता' नियम सेट केवल la 'एचटीटीपी-'
नियम-सेट अधिकृत हैं, इसका मतलब है कि HTTP एप्लेट को कॉल करना संभव नहीं है
टीसीपी मोड में प्रॉक्सी। 'tcp' प्रकार के एप्लेट कहीं से भी कॉल किये जा सकते हैं।

यहां, सेवा पंजीकरण का एक उदाहरण दिया गया है। सेवा केवल 'हैलो वर्ल्ड' भेजती है
http प्रतिक्रिया.

core.register_service("हैलो-वर्ल्ड", "http", फ़ंक्शन(एप्लेट)
स्थानीय प्रतिक्रिया = "हैलो वर्ल्ड!"
एप्लेट:set_status(200)
एप्लेट: add_header ("सामग्री-लंबाई", स्ट्रिंग.लेन (प्रतिक्रिया))
एप्लेट: add_header ("सामग्री-प्रकार", "पाठ/सादा")
एप्लेट:start_response()
एप्लेट:भेजें(प्रतिक्रिया)
समाप्त)
इस उदाहरण कोड का उपयोग HAproxy कॉन्फ़िगरेशन में इस प्रकार किया जाता है:

अग्रभाग उदाहरण
http-अनुरोध उपयोग-सेवा lua.hello-world

core.register_init(func)
प्रसंग: तन

कॉन्फ़िगरेशन पार्सिंग के बाद निष्पादित फ़ंक्शन को पंजीकृत करें। यह उपयोगी है
किसी भी पैरामीटर की जाँच करें.

तर्क

· समारोह (समारोह) -- लूआ फ़ंक्शन को इनिशियलाइज़र के रूप में काम करने के लिए बुलाया जाता है।

तर्क के रूप में प्रयुक्त लुआ फ़ंक्शन का प्रोटोटाइप है:

समारोह()
इसमें कोई इनपुट नहीं लगता, और कोई आउटपुट अपेक्षित नहीं है।

core.register_task (func)
प्रसंग: बॉडी, इनिट, कार्य, क्रिया, नमूना-प्राप्ति, कनवर्टर

रजिस्टर करें और स्वतंत्र कार्य शुरू करें। कार्य तब प्रारंभ होता है जब HAProxy main
शेड्यूलर प्रारंभ होता है. उदाहरण के लिए जटिल कार्यों को करने के लिए इस प्रकार के कार्यों को निष्पादित किया जा सकता है
स्वास्थ्य जांच.

तर्क

· समारोह (समारोह) -- लूआ फ़ंक्शन को इनिशियलाइज़र के रूप में काम करने के लिए बुलाया जाता है।

तर्क के रूप में प्रयुक्त लुआ फ़ंक्शन का प्रोटोटाइप है:

समारोह()
इसमें कोई इनपुट नहीं लगता, और कोई आउटपुट अपेक्षित नहीं है।

core.set_nice(अच्छा)
प्रसंग: कार्य, कार्रवाई, नमूना-प्राप्ति, कनवर्टर

वर्तमान कार्य या वर्तमान सत्र का स्वरूप बदलें।

तर्क

· अच्छा (पूर्णांक) -- अच्छा मान, यह -1024 और 1024 के बीच होना चाहिए।

core.set_map(फ़ाइल नाम, कुंजी, मूल्य)
प्रसंग: init, कार्य, क्रिया, नमूना-लाने, कनवर्टर

मान निर्धारित करें मूल्य कुंजी से संबंधित कुंजी द्वारा संदर्भित मानचित्र में फ़ाइल का नाम.

तर्क

· फ़ाइल का नाम (स्ट्रिंग) -- मानचित्र संदर्भ

· कुंजी (स्ट्रिंग) -- सेट करने या बदलने की कुंजी

· मूल्य (स्ट्रिंग)--संबंधित मूल्य

कोर.नींद(int सेकंड)
प्रसंग: बॉडी, इनिट, कार्य, क्रिया

RSI कोर.नींद() फ़ंक्शंस निर्दिष्ट सेकंड के बीच लुआ निष्पादन को रोकते हैं।

तर्क

· सेकंड (पूर्णांक) -- आवश्यक सेकंड.

कोर.tcp()
प्रसंग: init, कार्य, क्रिया

यह फ़ंक्शन a का एक नया ऑब्जेक्ट लौटाता है सॉकेट वर्ग.

रिटर्न
A गर्तिका कक्षा वस्तु।

कोर.डन(डेटा)
प्रसंग: बॉडी, इनिट, कार्य, क्रिया, नमूना-प्राप्ति, कनवर्टर

तर्क

· तिथि (कोई)--कॉल करने वाले के लिए कुछ डेटा लौटाएं। यह इसके साथ उपयोगी है
नमूना-लाने वाले और नमूना-परिवर्तक।

वर्तमान लुआ निष्पादन को तुरंत रोक देता है और कॉल करने वाले के पास वापस आ जाता है, जो हो सकता है
एक नमूना लाया जाता है, एक कनवर्टर या एक क्रिया और निर्दिष्ट मान लौटाता है (अनदेखा किया जाता है)।
कार्यों के लिए)। इसका प्रयोग तब किया जाता है जब LUA प्रक्रिया अपना कार्य समाप्त कर देना चाहती है
शेष कोड निष्पादित किए बिना नियंत्रण को HAProxy पर वापस रखें। इसे ऐसे देखा जा सकता है
एक बहु-स्तरीय "वापसी"।

कोर.यील्ड()
प्रसंग: कार्य, कार्रवाई, नमूना-प्राप्ति, कनवर्टर

HAProxy शेड्यूलर पर हाथ वापस दें। इसका उपयोग LUA प्रसंस्करण के समय किया जाता है
प्रसंस्करण में बहुत अधिक समय लगता है।

कक्षा फ़ेचेस()
इस वर्ग में बहुत सारे आंतरिक HAProxy नमूना फ़ेच शामिल हैं। HAProxy देखें
उसके उपयोग के बारे में अधिक जानकारी के लिए "configuration.txt" दस्तावेज़। वे हैं
अध्याय 7.3.2 से 7.3.6.

चेतावनी कुछ संदर्भ में कुछ नमूने उपलब्ध नहीं हैं। ये सीमाएँ
इस दस्तावेज़ में निर्दिष्ट किया गया है जब वे उपयोगी हों।

देख टीएक्सएन.एफ

देख TXN.sf

फ़ेच इसके लिए उपयोगी हैं:

· सिस्टम समय प्राप्त करें,

· पर्यावरण चर प्राप्त करें,

· यादृच्छिक संख्याएँ प्राप्त करें,

· ज्ञात बैकएंड स्थिति जैसे कतार में उपयोगकर्ताओं की संख्या या की संख्या
कनेक्शन स्थापित,

· ग्राहक की जानकारी जैसे आईपी स्रोत या गंतव्य,

· स्टिक टेबल से निपटें,

· स्थापित एसएसएल सूचनाएं,

· HTTP जानकारी जैसे हेडर या विधि।

फ़ंक्शन क्रिया(txn)
- स्रोत आईपी प्राप्त करें
स्थानीय ग्राहक = txn.f:src()
समाप्त

कक्षा कन्वर्टर्स()
इस वर्ग में बहुत सारे आंतरिक HAProxy नमूना कनवर्टर्स शामिल हैं। HAProxy देखें
उसके उपयोग के बारे में अधिक जानकारी के लिए दस्तावेज़ "configuration.txt"। यह है
अध्याय 7.3.1।

देख टीएक्सएन.सी

देख TXN.एससी

कन्वर्टर्स स्टेटफुल ट्रांसफॉर्मेशन प्रदान करते हैं। वे इसके लिए उपयोगी हैं:

· इनपुट को बेस64 में परिवर्तित करना,

· इनपुट स्ट्रिंग पर हैश लगाना (djb2, crc32, sdbm, wt6),

· प्रारूप दिनांक,

· जेसन एस्केप,

· दो सूचियों की तुलना करके पसंदीदा भाषा निकालना,

· निचले या ऊपरी वर्णों की ओर मुड़ें,

· स्टिक टेबल से निपटें.

कक्षा चैनल()
HAProxy अनुरोधों के प्रसंस्करण के लिए दो बफ़र्स का उपयोग करता है। पहला प्रयोग किया जाता है
अनुरोध डेटा के साथ (क्लाइंट से सर्वर तक) और दूसरे का उपयोग किया जाता है
प्रतिक्रिया डेटा (सर्वर से क्लाइंट तक)।

प्रत्येक बफ़र में दो प्रकार का डेटा होता है। पहला प्रकार आने वाले डेटा की प्रतीक्षा है
एक प्रसंस्करण के लिए. दूसरा भाग पहले से संसाधित आउटगोइंग डेटा है। आम तौर पर,
आने वाले डेटा को आउटगोइंग डेटा के रूप में टैग करने के बाद संसाधित किया जाता है, और अंत में इसे
भेजा जाता है। निम्नलिखित फ़ंक्शन इन डेटा में हेरफेर करने के लिए उपकरण प्रदान करता है
बफर.

निम्नलिखित आरेख दिखाता है कि चैनल क्लास फ़ंक्शन कहाँ लागू होते हैं।

चेतावनी: अनुरोध कार्रवाई में प्रतिक्रिया से पढ़ना संभव नहीं है, और यह है
प्रतिक्रिया कार्रवाई में अनुरोध चैनल को पढ़ना संभव नहीं है।
[चित्र]

चैनल.डुप(चैनल)
यह फ़ंक्शन एक स्ट्रिंग लौटाता है जिसमें संपूर्ण बफ़र होता है। डेटा नहीं है
बफ़र से निकालें और बाद में पुन: संसाधित किया जा सकता है।

यदि बफ़र अधिक डेटा प्राप्त नहीं कर पाता है, तो 'शून्य' मान लौटाया जाता है।

तर्क

· चैनल (क्लास_चैनल) -- हेरफेर किया गया चैनल।

रिटर्न
एक स्ट्रिंग जिसमें सभी उपलब्ध डेटा या शून्य हो।

चैनल.प्राप्त करें(चैनल)
यह फ़ंक्शन एक स्ट्रिंग लौटाता है जिसमें संपूर्ण बफ़र होता है। डेटा की खपत होती है
बफ़र से.

यदि बफ़र अधिक डेटा प्राप्त नहीं कर पाता है, तो 'शून्य' मान लौटाया जाता है।

तर्क

· चैनल (क्लास_चैनल) -- हेरफेर किया गया चैनल।

रिटर्न
एक स्ट्रिंग जिसमें सभी उपलब्ध डेटा या शून्य हो।

चैनल.गेटलाइन(चैनल)
यह फ़ंक्शन एक स्ट्रिंग लौटाता है जिसमें बफ़र की पहली पंक्ति होती है। आंकड़ा
उपभोग किया जाता है. यदि लौटाए गए डेटा में अंतिम 'एन' नहीं है तो इसे इसके मुकाबले मान लिया जाता है
बफ़र में अंतिम उपलब्ध डेटा।

यदि बफ़र अधिक डेटा प्राप्त नहीं कर पाता है, तो 'शून्य' मान लौटाया जाता है।

तर्क

· चैनल (क्लास_चैनल) -- हेरफेर किया गया चैनल।

रिटर्न
एक स्ट्रिंग जिसमें उपलब्ध लाइन या शून्य है।

चैनल.सेट(चैनल, डोरी)
यह फ़ंक्शन बफ़र की सामग्री को स्ट्रिंग द्वारा प्रतिस्थापित करता है। फ़ंक्शन वापस आ जाता है
कॉपी की गई लंबाई, अन्यथा, यह -1 लौटाती है।

इस फ़ंक्शन के साथ सेट किया गया डेटा नहीं भेजा जाता है. वे HAProxy के ख़त्म होने का इंतज़ार करते हैं
प्रसंस्करण, ताकि बफर भरा जा सके।

तर्क

· चैनल (क्लास_चैनल) -- हेरफेर किया गया चैनल।

· स्ट्रिंग (स्ट्रिंग) -- जो डेटा भेजा जाएगा.

रिटर्न
एक पूर्णांक जिसमें कॉपी किए गए बाइट्स की मात्रा या -1 होती है।

चैनल.जोड़ें(चैनल, डोरी)
यह फ़ंक्शन स्ट्रिंग तर्क को बफ़र की सामग्री में जोड़ता है। कार्यक्रम
कॉपी की गई लंबाई लौटाता है, अन्यथा, यह -1 लौटाता है।

इस फ़ंक्शन के साथ सेट किया गया डेटा नहीं भेजा जाता है. वे HAProxy के ख़त्म होने का इंतज़ार करते हैं
प्रसंस्करण, ताकि बफर भरा जा सके।

तर्क

· चैनल (क्लास_चैनल) -- हेरफेर किया गया चैनल।

· स्ट्रिंग (स्ट्रिंग) -- जो डेटा भेजा जाएगा.

रिटर्न
एक पूर्णांक जिसमें कॉपी किए गए बाइट्स की मात्रा या -1 होती है।

चैनल.भेजें(चैनल, डोरी)
इस फ़ंक्शन के लिए डेटा को तत्काल भेजने की आवश्यकता होती है। जब तक कि कनेक्शन न हो
बंद करें, बफ़र नियमित रूप से फ्लश किया जाता है और सभी स्ट्रिंग भेजी जा सकती हैं।

तर्क

· चैनल (क्लास_चैनल) -- हेरफेर किया गया चैनल।

· स्ट्रिंग (स्ट्रिंग) -- जो डेटा भेजा जाएगा.

रिटर्न
एक पूर्णांक जिसमें कॉपी किए गए बाइट्स की मात्रा या -1 होती है।

चैनल.get_in_length(चैनल)
यह फ़ंक्शन बफ़र के इनपुट भाग की लंबाई लौटाता है।

तर्क

· चैनल (क्लास_चैनल) -- हेरफेर किया गया चैनल।

रिटर्न
एक पूर्णांक जिसमें उपलब्ध बाइट्स की मात्रा होती है।

चैनल.गेट_आउट_लेंथ(चैनल)
यह फ़ंक्शन बफ़र के आउटपुट भाग की लंबाई लौटाता है।

तर्क

· चैनल (क्लास_चैनल) -- हेरफेर किया गया चैनल।

रिटर्न
एक पूर्णांक जिसमें उपलब्ध बाइट्स की मात्रा होती है।

चैनल.फ़ॉरवर्ड(चैनल, NS)
यह फ़ंक्शन बफ़र के इनपुट भाग से आउटपुट भाग में बाइट्स स्थानांतरित करता है।

तर्क

· चैनल (क्लास_चैनल) -- हेरफेर किया गया चैनल।

· int (पूर्णांक) -- डेटा की मात्रा जिसे अग्रेषित किया जाएगा।

कक्षा एचटीटीपी()
इस वर्ग में सभी HTTP हेरफेर फ़ंक्शन शामिल हैं।

HTTP.req_get_headers(http)
सभी अनुरोध शीर्षलेखों वाली एक सरणी लौटाता है।

तर्क

· http (क्लास_http)--संबंधित http ऑब्जेक्ट।

रिटर्न
शीर्षलेखों की सरणी.

देख HTTP.res_get_headers()

यह लौटाई गई सरणी का रूप है:

HTTP:req_get_headers()[' '][ ] = " "

स्थानीय एचडीआर = HTTP:req_get_headers()
एचडीआर["होस्ट"][0] = "www.test.com"
एचडीआर["स्वीकार करें"][0] = "ऑडियो/बेसिक क्यू=1"
एचडीआर["स्वीकार करें"][1] = "ऑडियो/*, क्यू=0.2"
hdr["स्वीकार करें"][2] = "*/*, q=0.1"

HTTP.res_get_headers(http)
सभी प्रतिक्रिया शीर्षलेखों वाली एक सरणी लौटाता है।

तर्क

· http (क्लास_http)--संबंधित http ऑब्जेक्ट।

रिटर्न
शीर्षलेखों की सरणी.

देख HTTP.req_get_headers()

यह लौटाई गई सरणी का रूप है:

HTTP:res_get_headers()[' '][ ] = " "

स्थानीय एचडीआर = HTTP:req_get_headers()
एचडीआर["होस्ट"][0] = "www.test.com"
एचडीआर["स्वीकार करें"][0] = "ऑडियो/बेसिक क्यू=1"
एचडीआर["स्वीकार करें"][1] = "ऑडियो/*, क्यू=0.2"
hdr["स्वीकार करें"][2] = "*.*, q=0.1"

HTTP.req_add_header(http, नाम, मूल्य)
अनुरोध में एक HTTP हेडर फ़ील्ड जोड़ता है जिसका नाम "नाम" में निर्दिष्ट है
जिसका मूल्य "मूल्य" में परिभाषित किया गया है।

तर्क

· http (क्लास_http)--संबंधित http ऑब्जेक्ट।

· नाम (स्ट्रिंग) -- हेडर नाम.

· मूल्य (स्ट्रिंग) -- हेडर मान.

देख HTTP.res_add_header()

HTTP.res_add_header(http, नाम, मूल्य)
प्रतिक्रिया में एक HTTP हेडर फ़ील्ड जोड़ता है जिसका नाम "नाम" में निर्दिष्ट है
जिसका मूल्य "मूल्य" में परिभाषित किया गया है।

तर्क

· http (क्लास_http)--संबंधित http ऑब्जेक्ट।

· नाम (स्ट्रिंग) -- हेडर नाम.

· मूल्य (स्ट्रिंग) -- हेडर मान.

देख HTTP.req_add_header()

HTTP.req_del_header(http, नाम)
अनुरोध में उन सभी HTTP हेडर फ़ील्ड को हटा देता है जिनका नाम "नाम" में निर्दिष्ट है।

तर्क

· http (क्लास_http)--संबंधित http ऑब्जेक्ट।

· नाम (स्ट्रिंग) -- हेडर नाम.

देख HTTP.res_del_header()

HTTP.res_del_header(http, नाम)
प्रतिक्रिया में उन सभी HTTP हेडर फ़ील्ड को हटा देता है जिनका नाम "नाम" में निर्दिष्ट है।

तर्क

· http (क्लास_http)--संबंधित http ऑब्जेक्ट।

· नाम (स्ट्रिंग) -- हेडर नाम.

देख HTTP.req_del_header()

HTTP.req_set_header(http, नाम, मूल्य)
यह वेरिएबल सभी हेडर "नाम" की सभी घटनाओं को केवल एक युक्त से प्रतिस्थापित करता है
मूल्य"।

तर्क

· http (क्लास_http)--संबंधित http ऑब्जेक्ट।

· नाम (स्ट्रिंग) -- हेडर नाम.

· मूल्य (स्ट्रिंग) -- हेडर मान.

देख HTTP.res_set_header()

यह फ़ंक्शन फ़ॉलोविंग कोड के समान कार्य करता है:

फ़ंक्शन fcn(txn)
TXN.http:req_del_header("हेडर")
TXN.http:req_add_header("हेडर", "वैल्यू")
समाप्त

HTTP.res_set_header(http, नाम, मूल्य)
यह वेरिएबल सभी हेडर "नाम" की सभी घटनाओं को केवल एक युक्त से प्रतिस्थापित करता है
मूल्य"।

तर्क

· http (क्लास_http)--संबंधित http ऑब्जेक्ट।

· नाम (स्ट्रिंग) -- हेडर नाम.

· मूल्य (स्ट्रिंग) -- हेडर मान.

देख HTTP.req_rep_header()

HTTP.req_rep_header(http, नाम, रेगेक्स, प्रतिस्थापित करें)
हेडर फ़ील्ड "नाम" के अनुसार सभी घटनाओं में नियमित अभिव्यक्ति से मेल खाता है
"रेगेक्स" के लिए, और उन्हें "प्रतिस्थापित करें" तर्क से बदल देता है। प्रतिस्थापन मूल्य
इसमें 1, 2, जैसे पिछले संदर्भ शामिल हो सकते हैं... यह फ़ंक्शन अनुरोध के साथ काम करता है।

तर्क

· http (क्लास_http)--संबंधित http ऑब्जेक्ट।

· नाम (स्ट्रिंग) -- हेडर नाम.

· regex (स्ट्रिंग) -- मैच रेगुलर एक्सप्रेशन.

· की जगह (स्ट्रिंग) -- प्रतिस्थापन मूल्य.

देख HTTP.res_rep_header()

HTTP.res_rep_header(http, नाम, रेगेक्स, डोरी)
हेडर फ़ील्ड "नाम" के अनुसार सभी घटनाओं में नियमित अभिव्यक्ति से मेल खाता है
"रेगेक्स" के लिए, और उन्हें "प्रतिस्थापित करें" तर्क से बदल देता है। प्रतिस्थापन मूल्य
इसमें 1, 2, जैसे पिछले संदर्भ शामिल हो सकते हैं... यह फ़ंक्शन अनुरोध के साथ काम करता है।

तर्क

· http (क्लास_http)--संबंधित http ऑब्जेक्ट।

· नाम (स्ट्रिंग) -- हेडर नाम.

· regex (स्ट्रिंग) -- मैच रेगुलर एक्सप्रेशन.

· की जगह (स्ट्रिंग) -- प्रतिस्थापन मूल्य.

देख HTTP.req_replace_header()

HTTP.req_replace_value(http, नाम, रेगेक्स, प्रतिस्थापित करें)
"HTTP.req_replace_header()" की तरह काम करता है सिवाय इसके कि यह रेगेक्स से मेल खाता है
संपूर्ण के बजाय हेडर फ़ील्ड "नाम" का प्रत्येक अल्पविराम-सीमांकित मान
हैडर.

तर्क

· http (क्लास_http)--संबंधित http ऑब्जेक्ट।

· नाम (स्ट्रिंग) -- हेडर नाम.

· regex (स्ट्रिंग) -- मैच रेगुलर एक्सप्रेशन.

· की जगह (स्ट्रिंग) -- प्रतिस्थापन मूल्य.

देख HTTP.req_replace_header()

देख HTTP.res_replace_value()

HTTP.res_replace_value(http, नाम, रेगेक्स, प्रतिस्थापित करें)
"HTTP.res_replace_header()" की तरह काम करता है सिवाय इसके कि यह रेगेक्स से मेल खाता है
संपूर्ण के बजाय हेडर फ़ील्ड "नाम" का प्रत्येक अल्पविराम-सीमांकित मान
हैडर.

तर्क

· http (क्लास_http)--संबंधित http ऑब्जेक्ट।

· नाम (स्ट्रिंग) -- हेडर नाम.

· regex (स्ट्रिंग) -- मैच रेगुलर एक्सप्रेशन.

· की जगह (स्ट्रिंग) -- प्रतिस्थापन मूल्य.

देख HTTP.res_replace_header()

देख HTTP.req_replace_value()

HTTP.req_set_method(http, तरीका)
पैरामीटर "विधि" के साथ अनुरोध विधि को फिर से लिखता है।

तर्क

· http (क्लास_http)--संबंधित http ऑब्जेक्ट।

· तरीका (स्ट्रिंग) -- नई विधि.

HTTP.req_set_path(http, पथ)
अनुरोध पथ को "पथ" पैरामीटर के साथ फिर से लिखता है।

तर्क

· http (क्लास_http)--संबंधित http ऑब्जेक्ट।

· पथ (स्ट्रिंग) -- नई राह.

HTTP.req_set_query(http, जिज्ञासा)
अनुरोध की क्वेरी स्ट्रिंग को फिर से लिखता है जो पहले प्रश्न चिह्न के बाद दिखाई देती है
("?") पैरामीटर "क्वेरी" के साथ।

तर्क

· http (क्लास_http)--संबंधित http ऑब्जेक्ट।

· सवाल (स्ट्रिंग) -- नई क्वेरी.

HTTP.req_set_uri(http, उरी)
अनुरोध URI को पैरामीटर "uri" के साथ फिर से लिखता है।

तर्क

· http (क्लास_http)--संबंधित http ऑब्जेक्ट।

· उड़ी (स्ट्रिंग) -- नई उरी।

HTTP.res_set_status(http, दर्जा)
पैरामीटर "कोड" के साथ प्रतिक्रिया स्थिति कोड को फिर से लिखता है। ध्यान दें कि कारण
स्वचालित रूप से नए कोड के लिए अनुकूलित हो जाता है।

तर्क

· http (क्लास_http)--संबंधित http ऑब्जेक्ट।

· हैसियत (पूर्णांक) -- नया प्रतिक्रिया स्थिति कोड।

कक्षा TXN()
txn वर्ग में http या tcp लेनदेन से संबंधित सभी फ़ंक्शन शामिल हैं
(नोट एक टीसीपी स्ट्रीम एक टीसीपी लेनदेन के समान है, लेकिन एक HTTP लेनदेन है
टीसीपी स्ट्रीम से समान नहीं है)।

इस वर्ग का उपयोग अनुरोधों से डेटा पुनर्प्राप्त करने, उसे बदलने और करने की अनुमति देता है
इसे आगे करें।

इस वर्ग द्वारा प्रदान किए गए सभी फ़ंक्शन संदर्भ में उपलब्ध हैं
नमूना-लाने वाला और कार्रवाई.

टीएक्सएन.सी

रिटर्न
An कन्वर्टर्स कक्षा.

इस विशेषता में कन्वर्टर्स क्लास ऑब्जेक्ट शामिल है।

TXN.एससी

रिटर्न
An कन्वर्टर्स कक्षा.

इस विशेषता में कन्वर्टर्स क्लास ऑब्जेक्ट शामिल है। इस वस्तु के कार्य
हमेशा एक स्ट्रिंग लौटाता है।

टीएक्सएन.एफ

रिटर्न
An फ़ेच कक्षा.

इस विशेषता में एक Fetches क्लास ऑब्जेक्ट शामिल है।

TXN.sf

रिटर्न
An फ़ेच कक्षा.

इस विशेषता में एक Fetches क्लास ऑब्जेक्ट शामिल है। इस वस्तु के कार्य
हमेशा एक स्ट्रिंग लौटाता है।

TXN.req

रिटर्न
An चैनल कक्षा.

इस विशेषता में अनुरोध बफ़र के लिए एक चैनल क्लास ऑब्जेक्ट शामिल है।

TXN.res

रिटर्न
An चैनल कक्षा.

इस विशेषता में प्रतिक्रिया बफ़र के लिए एक चैनल क्लास ऑब्जेक्ट शामिल है।

टीएक्सएन.एचटीटीपी

रिटर्न
An HTTP कक्षा.

इस विशेषता में एक HTTP क्लास ऑब्जेक्ट शामिल है। यह केवल तभी उपलब्ध है जब प्रॉक्सी के पास हो
"मोड http" सक्षम किया गया।

TXN.लॉग(TXN, छांटने का स्तर, संदेश)
यह फ़ंक्शन एक लॉग भेजता है. लॉग HAProxy के अनुसार भेजा जाता है
कॉन्फ़िगरेशन फ़ाइल, डिफ़ॉल्ट syslog सर्वर पर यदि इसे कॉन्फ़िगर किया गया है और पर
यदि अनुमति हो तो stderr.

तर्क

· TXN (क्लास_txn) -- क्लास txn ऑब्जेक्ट जिसमें डेटा है।

· लॉग स्तर (पूर्णांक) -- क्या लॉग स्तर संदेश से संबद्ध है। यह है एक
0 और 7 के बीच की संख्या.

· msg (स्ट्रिंग) -- लॉग सामग्री.

देख core.emerg, core.alert, core.crit, core.err, core.warning, core.notice,
core.info, core.debug (लॉग स्तर परिभाषाएँ)

देख TXN.डीफ़्लॉग

देख TXN.डीबग

देख TXN.जानकारी

देख TXN.चेतावनी

देख TXN.चेतावनी

TXN.deflog (TXN, संदेश)
से संबद्ध प्रॉक्सी के लिए डिफ़ॉल्ट लॉगलेवल के साथ एक लॉग लाइन भेजता है
लेन-देन।

तर्क

· TXN (क्लास_txn) -- क्लास txn ऑब्जेक्ट जिसमें डेटा है।

· msg (स्ट्रिंग) -- लॉग सामग्री.

देख TXN.लॉग

TXN.डीबग(txn, संदेश)

तर्क

· TXN (क्लास_txn) -- क्लास txn ऑब्जेक्ट जिसमें डेटा है।

· msg (स्ट्रिंग) -- लॉग सामग्री.

देख TXN.लॉग

से समान कार्य करता है:

फ़ंक्शन डीबग (टीएक्सएन, संदेश)
TXN.log(txn, core.debug, संदेश)
समाप्त

TXN.जानकारी(txn, संदेश)

तर्क

· TXN (क्लास_txn) -- क्लास txn ऑब्जेक्ट जिसमें डेटा है।

· msg (स्ट्रिंग) -- लॉग सामग्री.

देख TXN.लॉग

फ़ंक्शन डीबग (टीएक्सएन, संदेश)
TXN.log (टीएक्सएन, कोर.इन्फो, संदेश)
समाप्त

TXN.चेतावनी(txn, संदेश)

तर्क

· TXN (क्लास_txn) -- क्लास txn ऑब्जेक्ट जिसमें डेटा है।

· msg (स्ट्रिंग) -- लॉग सामग्री.

देख TXN.लॉग

फ़ंक्शन डीबग (टीएक्सएन, संदेश)
TXN.log(txn, core.warning, संदेश)
समाप्त

TXN.चेतावनी(txn, संदेश)

तर्क

· TXN (क्लास_txn) -- क्लास txn ऑब्जेक्ट जिसमें डेटा है।

· msg (स्ट्रिंग) -- लॉग सामग्री.

देख TXN.लॉग

फ़ंक्शन डीबग (टीएक्सएन, संदेश)
TXN.log (टीएक्सएन, कोर.अलर्ट, संदेश)
समाप्त

TXN.get_priv(txn)
वर्तमान लेनदेन में संग्रहीत लुआ डेटा लौटाएं (के साथ)। TXN.set_priv())
समारोह। यदि कोई डेटा संग्रहीत नहीं है, तो यह शून्य मान लौटाता है।

तर्क

· TXN (क्लास_txn) -- क्लास txn ऑब्जेक्ट जिसमें डेटा है।

रिटर्न
पहले से संग्रहीत अपारदर्शी डेटा, या यदि कुछ भी उपलब्ध नहीं है तो शून्य।

TXN.set_priv(टीएक्सएन, डेटा)
वर्तमान HAProxy लेनदेन में कोई भी डेटा संग्रहीत करें। यह क्रिया पुराने को प्रतिस्थापित करती है
संग्रहीत डेटा।

तर्क

· TXN (क्लास_txn) -- क्लास txn ऑब्जेक्ट जिसमें डेटा है।

· तिथि (अपारदर्शी)-- वह डेटा जो लेनदेन में संग्रहीत होता है।

TXN.set_var (TXN, वर, मूल्य)
एक Lua प्रकार को HAProxy प्रकार में परिवर्तित करता है और इसे एक वेरिएबल में संग्रहीत करता है ।

तर्क

· TXN (क्लास_txn) -- क्लास txn ऑब्जेक्ट जिसमें डेटा है।

· था (स्ट्रिंग) - HAProxy वेरिएबल के अनुसार वेरिएबल नाम
वाक्य - विन्यास।

· मूल्य (अपारदर्शी) -- वह डेटा जो वेरिएबल में संग्रहीत है।

TXN.get_var(TXN, वर)
लुआ प्रकार में वेरिएबल कनवर्टर में संग्रहीत डेटा लौटाता है।

तर्क

· TXN (क्लास_txn) -- क्लास txn ऑब्जेक्ट जिसमें डेटा है।

· था (स्ट्रिंग) - HAProxy वेरिएबल के अनुसार वेरिएबल नाम
वाक्य - विन्यास।

TXN.get_headers(txn)
यह फ़ंक्शन हेडर की एक सरणी लौटाता है।

तर्क

· TXN (क्लास_txn) -- क्लास txn ऑब्जेक्ट जिसमें डेटा है।

रिटर्न
शीर्षलेखों की एक श्रृंखला.

TXN.हो गया(txn)
यह फ़ंक्शन लेनदेन और संबंधित सत्र की प्रोसेसिंग को समाप्त कर देता है।
इसका उपयोग तब किया जा सकता है जब किसी गंभीर त्रुटि का पता चलता है या उसके बाद प्रसंस्करण समाप्त कर दिया जाता है
कुछ डेटा क्लाइंट को लौटा दिया गया है (उदाहरण: एक रीडायरेक्ट)।

तर्क

· TXN (क्लास_txn) -- क्लास txn ऑब्जेक्ट जिसमें डेटा है।

TXN.set_loglevel(txn, छांटने का स्तर)
वर्तमान अनुरोध के लॉग स्तर को बदलने के लिए उपयोग किया जाता है। "लॉगलेवल" एक होना चाहिए
0 और 7 के बीच पूर्णांक.

तर्क

· TXN (क्लास_txn) -- क्लास txn ऑब्जेक्ट जिसमें डेटा है।

· लॉग स्तर (पूर्णांक) -- आवश्यक लॉग स्तर. यह वेरिएबल इनमें से एक हो सकता है

देख मुख्य।

TXN.set_tos (टीएक्सएन, tos)
क्लाइंट को भेजे गए पैकेट के टीओएस या डीएससीपी फ़ील्ड मान को सेट करने के लिए उपयोग किया जाता है
इसका समर्थन करने वाले प्लेटफ़ॉर्म पर "tos" में मूल्य पारित किया गया है।

तर्क

· TXN (क्लास_txn) -- क्लास txn ऑब्जेक्ट जिसमें डेटा है।

· tos (पूर्णांक) -- नया टीओएस ओएस डीएससीपी।

टीएक्सएन.सेट_मार्क(टीएक्सएन, निशान)
क्लाइंट को भेजे गए सभी पैकेटों पर नेटफिल्टर मार्क को मूल्य पर सेट करने के लिए उपयोग किया जाता है
उन प्लेटफार्मों पर "मार्क" में पारित किया गया जो इसका समर्थन करते हैं।

तर्क

· TXN (क्लास_txn) -- क्लास txn ऑब्जेक्ट जिसमें डेटा है।

· निशान (पूर्णांक)--चिह्न मान.

कक्षा सॉकेट()
यह वर्ग लुआ सॉकेट वर्ग के साथ संगत होना चाहिए। केवल 'ग्राहक'
फ़ंक्शन उपलब्ध हैं. लुआ सॉकेट दस्तावेज़ देखें:

http://w3.impa.br/~diego/software/luasocket/tcp.html

सॉकेट.बंद करें(सॉकेट)
एक टीसीपी ऑब्जेक्ट बंद कर देता है। ऑब्जेक्ट द्वारा उपयोग किया जाने वाला आंतरिक सॉकेट बंद है और स्थानीय है
जिस पते पर वस्तु बंधी थी उसे अन्य अनुप्रयोगों के लिए उपलब्ध कराया जाता है। नहीं
आगे के संचालन (क्लोज विधि के लिए आगे की कॉल को छोड़कर) की अनुमति है
बंद सॉकेट.

तर्क

· सॉकेट (क्लास_सॉकेट) -- हेरफेर किया गया सॉकेट है।

ध्यान दें: सभी उपयोग किए गए सॉकेट को तब से बंद करना महत्वपूर्ण है जब उनकी आवश्यकता न हो
कई सिस्टम, प्रत्येक सॉकेट एक फ़ाइल डिस्क्रिप्टर का उपयोग करता है, जो सीमित सिस्टम हैं
संसाधन। कचरा-एकत्रित वस्तुएं नष्ट होने से पहले स्वचालित रूप से बंद हो जाती हैं,
हालांकि।

सॉकेट.कनेक्ट(सॉकेट, पता[, पत्तन])
सॉकेट ऑब्जेक्ट को दूरस्थ होस्ट से कनेक्ट करने का प्रयास।

त्रुटि के मामले में, विधि शून्य लौटाती है और उसके बाद त्रुटि का वर्णन करने वाली एक स्ट्रिंग आती है।
सफलता के मामले में, विधि 1 लौटाती है।

तर्क

· सॉकेट (क्लास_सॉकेट) -- हेरफेर किया गया सॉकेट है।

· पता (स्ट्रिंग) -- एक आईपी पता या होस्ट नाम हो सकता है। के लिए नीचे देखें
अधिक जानकारी।

· बंदरगाह (पूर्णांक) -- [1..64K] श्रेणी में एक पूर्णांक संख्या होनी चाहिए।

रिटर्न
1 या शून्य.

एक पता फ़ील्ड एक्सटेंशन कनेक्ट करने के लिए कनेक्ट() फ़ंक्शन का उपयोग करने की अनुमति देता है
टीसीपी के अलावा अन्य धारा। सिंपलआईपीवी4 या आईपीवी6 एड्रेस वाला सिंटैक्स है
मूलतः अपेक्षित प्रारूप. इस प्रारूप के लिए पोर्ट की आवश्यकता होती है.

स्वीकृत अन्य प्रारूप "/सॉकेट/पथ" जैसे सॉकेट पथ हैं, यह कनेक्ट करने की अनुमति देता है
एक सॉकेट के लिए. अमूर्त नामस्थान उपसर्ग "abns@", और अंतिम रूप से समर्थित हैं
एक फाइलएस्क्रियोट्र को उपसर्ग "fd@" के साथ पारित किया जा सकता है। उपसर्ग "ipv4@", "ipv6@"
और "unix@" भी समर्थित हैं। पोर्ट को स्ट्रिंग में पास किया जा सकता है। वाक्यविन्यास
"127.0.0.1:1234" मान्य है। इस मामले में, पैरामीटर बंदरगाह नजरअंदाज कर दिया है।

सॉकेट.कनेक्ट_एसएसएल(सॉकेट, पता, पोर्ट)
फ़ंक्शन सॉकेट से समान व्यवहार: कनेक्ट, लेकिन एसएसएल का उपयोग करता है।

तर्क

· सॉकेट (क्लास_सॉकेट) -- हेरफेर किया गया सॉकेट है।

रिटर्न
1 या शून्य.

सॉकेट.getpeername(सॉकेट)
किसी कनेक्टेड क्लाइंट ऑब्जेक्ट के दूरस्थ पक्ष के बारे में जानकारी लौटाता है।

सहकर्मी के आईपी पते के साथ एक स्ट्रिंग लौटाता है, उसके बाद पोर्ट नंबर देता है
सहकर्मी कनेक्शन के लिए उपयोग कर रहा है. त्रुटि के मामले में, विधि शून्य लौटाती है।

तर्क

· सॉकेट (क्लास_सॉकेट) -- हेरफेर किया गया सॉकेट है।

रिटर्न
सर्वर जानकारी वाली एक स्ट्रिंग।

सॉकेट.गेटसॉकनाम(सॉकेट)
ऑब्जेक्ट से संबंधित स्थानीय पते की जानकारी लौटाता है।

विधि स्थानीय आईपी पते के साथ एक स्ट्रिंग और पोर्ट के साथ एक संख्या लौटाती है। में
त्रुटि की स्थिति में, विधि शून्य लौटाती है।

तर्क

· सॉकेट (क्लास_सॉकेट) -- हेरफेर किया गया सॉकेट है।

रिटर्न
क्लाइंट जानकारी वाली एक स्ट्रिंग।

सॉकेट.प्राप्त(सॉकेट[, नमूना[, उपसर्ग]])
निर्दिष्ट रीड पैटर्न के अनुसार क्लाइंट ऑब्जेक्ट से डेटा पढ़ता है। पैटर्न्स
लुआ फ़ाइल I/O प्रारूप का पालन करें, और सभी के बीच प्रदर्शन में अंतर
पैटर्न नगण्य है.

तर्क

· सॉकेट (क्लास_सॉकेट) -- हेरफेर किया गया सॉकेट है।

· पैटर्न (स्ट्रिंग|पूर्णांक) -- वर्णन करें कि क्या आवश्यक है (नीचे देखें)।

· उपसर्ग (स्ट्रिंग) - एक स्ट्रिंग जो लौटाए गए डेटा के उपसर्ग होगी।

रिटर्न
एक स्ट्रिंग जिसमें आवश्यक डेटा या शून्य है।

पैटर्न निम्नलिखित में से कोई भी हो सकता है:

·

`*ए`: पढ़ता से la सॉकेट जब तक la संबंध is बन्द है। नहीं
अंत-पंक्ति अनुवाद किया जाता है;

·

`*एल`: पढ़ता a line of टेक्स्ट से la सॉकेट। RSI line is समाप्त by a
एलएफ वर्ण (एएससीआईआई 10), वैकल्पिक रूप से पहले एक सीआर वर्ण (एएससीआईआई 13) होता है।
सीआर और एलएफ वर्ण लौटाई गई पंक्ति में शामिल नहीं हैं। वास्तव में,
सभी सीआर वर्णों को पैटर्न द्वारा अनदेखा कर दिया जाता है। यह डिफ़ॉल्ट पैटर्न है.

·

संख्या: का कारण बनता है la तरीका सेवा मेरे पढ़ना a विनिर्दिष्ट संख्या of बाइट्स से la
सॉकेट. उपसर्ग एक वैकल्पिक स्ट्रिंग है जिसे शुरुआत में जोड़ा जाना है
वापसी से पहले किसी भी प्राप्त डेटा का।

· खाली: यदि पैटर्न खाली छोड़ दिया जाता है, तो डिफ़ॉल्ट विकल्प है *l.

सफल होने पर, विधि प्राप्त पैटर्न लौटा देती है। त्रुटि के मामले में,
विधि शून्य लौटाती है जिसके बाद एक त्रुटि संदेश आता है जिसमें स्ट्रिंग 'बंद' हो सकती है
यदि ट्रांसमिशन पूरा होने या स्ट्रिंग से पहले कनेक्शन बंद कर दिया गया था
ऑपरेशन के दौरान टाइमआउट होने की स्थिति में 'टाइमआउट'। साथ ही, त्रुटि के बाद
संदेश, फ़ंक्शन ट्रांसमिशन का आंशिक परिणाम लौटाता है।

महत्वपूर्ण नोट: इस फ़ंक्शन को गंभीर रूप से बदल दिया गया था। यह मल्टीपल को सपोर्ट करता था
पैटर्न (लेकिन मैंने इस सुविधा का उपयोग कभी नहीं देखा) और अब यह नहीं है।
आंशिक परिणाम सफल परिणामों की तरह ही लौटाए जाते थे। यह
अंतिम सुविधा ने इस विचार का उल्लंघन किया कि सभी कार्यों को त्रुटि पर शून्य लौटना चाहिए। इस प्रकार
इसे भी बदल दिया गया.

सॉकेट.सेंड(सॉकेट, डेटा[, शुरू करना[, अंत]])
क्लाइंट ऑब्जेक्ट के माध्यम से डेटा भेजता है।

तर्क

· सॉकेट (क्लास_सॉकेट) -- हेरफेर किया गया सॉकेट है।

· तिथि (स्ट्रिंग) -- जो डेटा भेजा जाएगा.

· प्रारंभ (पूर्णांक) -- डेटा के बफ़र में प्रारंभ स्थिति जो होगी
भेजा गया।

· समाप्त (पूर्णांक) -- डेटा के बफ़र में अंतिम स्थिति जो होगी
भेज दिया।

रिटर्न
निचे देखो।

डेटा भेजा जाने वाला स्ट्रिंग है. वैकल्पिक तर्क i और j बिल्कुल वैसे ही काम करते हैं
सबस्ट्रिंग के चयन को भेजने की अनुमति देने के लिए मानक स्ट्रिंग.सब लुआ फ़ंक्शन।

सफल होने पर, विधि [प्रारंभ, अंत] के भीतर अंतिम बाइट का सूचकांक लौटाती है
वह भेज दिया गया है. ध्यान दें, यदि प्रारंभ 1 या अनुपस्थित है, तो यह प्रभावी रूप से है
भेजे गए बाइट्स की कुल संख्या. त्रुटि के मामले में, विधि शून्य लौटाती है, उसके बाद
एक त्रुटि संदेश, उसके बाद [प्रारंभ, अंत] के भीतर अंतिम बाइट का सूचकांक
भेज दिया गया है। हो सकता है कि आप उसके बाद बाइट से पुनः प्रयास करना चाहें। त्रुटि
यदि ट्रांसमिशन से पहले कनेक्शन बंद कर दिया गया था तो संदेश 'बंद' किया जा सकता है
पूरा हो गया था या स्ट्रिंग 'टाइमआउट' के दौरान कोई टाइमआउट होने की स्थिति में
ऑपरेशन।

नोट: आउटपुट बफ़र नहीं किया गया है। छोटे तारों के लिए, संयोजित करना हमेशा बेहतर होता है
उन्हें लुआ में ('..' ऑपरेटर के साथ) और इसके बजाय एक कॉल में परिणाम भेजें
विधि को कई बार कॉल करना।

सॉकेट.सेटऑप्शन(सॉकेट, विकल्प[, कीमत])
केवल अनुकूलता के लिए लागू किया गया, यह कैल कुछ नहीं करता।

सॉकेट.सेटटाइमआउट(सॉकेट, कीमत[, तरीका])
ऑब्जेक्ट के लिए टाइमआउट मान बदलता है। सभी I/O परिचालन अवरुद्ध हो रहे हैं. वह
है, भेजने, प्राप्त करने और स्वीकार करने के तरीकों पर कोई भी कॉल अनिश्चित काल के लिए अवरुद्ध हो जाएगी,
जब तक ऑपरेशन पूरा नहीं हो जाता. सेटटाइमआउट विधि राशि पर एक सीमा परिभाषित करती है
I/O विधियाँ कितने समय को अवरुद्ध कर सकती हैं। जब एक टाइमआउट समय बीत चुका है, तो प्रभावित
विधियाँ हार मान लेती हैं और त्रुटि कोड के साथ विफल हो जाती हैं।

प्रतीक्षा करने के समय की मात्रा को सेकंड में मान पैरामीटर के रूप में निर्दिष्ट किया जाता है।

टाइमआउट मोड बॉट कार्यान्वित हैं, एकमात्र निपटान योग्य टाइमआउट निष्क्रियता है
आंतरिक बफ़र भेजने के पूरा होने की प्रतीक्षा करने या डेटा प्राप्त करने की प्रतीक्षा करने का समय।

तर्क

· सॉकेट (क्लास_सॉकेट) -- हेरफेर किया गया सॉकेट है।

· मूल्य (पूर्णांक) -- टाइमआउट मान.

कक्षा नक्शा()
यह वर्ग HAProxy मानचित्रों में कुछ लुकअप करने की अनुमति देता है। घोषित मानचित्र हो सकते हैं
HAProxy प्रबंधन सॉकेट के माध्यम से रनटाइम के दौरान संशोधित किया गया।

डिफ़ॉल्ट = "यूएसए"

- मानचित्र बनाएं और लोड करें
जियो = मैप.न्यू("जियो.मैप", मैप.आईपी);

- नया फ़ेच बनाएं जो उपयोगकर्ता का देश लौटाए
core.register_fetches("देश", फ़ंक्शन(txn)
स्थानीय स्रोत;
स्थानीय स्थान;

src = txn.f:fhdr('x-forwarded-for');
यदि (src == शून्य) तो
src = txn.f:src()
यदि (src == शून्य) तो
डिफ़ॉल्ट वापसी;
समाप्त
समाप्त

-- लुकअप करें
स्थान = भू:लुकअप(src);

यदि (loc == शून्य) तो
डिफ़ॉल्ट वापसी;
समाप्त

वापसी स्थान;
अंत);

मानचित्र.int
HAProxy कॉन्फ़िगरेशन.txt फ़ाइल देखें, अध्याय "ACL का उपयोग करना और नमूने लाना"
इस पैटर्न मिलान विधि को समझने के लिए उपअध्याय "एसीएल मूल बातें"।

मानचित्र.आईपी HAProxy कॉन्फ़िगरेशन.txt फ़ाइल देखें, अध्याय "ACL का उपयोग करना और नमूने लाना"
इस पैटर्न मिलान विधि को समझने के लिए उपअध्याय "एसीएल मूल बातें"।

मानचित्र.str
HAProxy कॉन्फ़िगरेशन.txt फ़ाइल देखें, अध्याय "ACL का उपयोग करना और नमूने लाना"
इस पैटर्न मिलान विधि को समझने के लिए उपअध्याय "एसीएल मूल बातें"।

नक्शा.भीख
HAProxy कॉन्फ़िगरेशन.txt फ़ाइल देखें, अध्याय "ACL का उपयोग करना और नमूने लाना"
इस पैटर्न मिलान विधि को समझने के लिए उपअध्याय "एसीएल मूल बातें"।

मानचित्र.उप
HAProxy कॉन्फ़िगरेशन.txt फ़ाइल देखें, अध्याय "ACL का उपयोग करना और नमूने लाना"
इस पैटर्न मिलान विधि को समझने के लिए उपअध्याय "एसीएल मूल बातें"।

नक्शा.डीआईआर
HAProxy कॉन्फ़िगरेशन.txt फ़ाइल देखें, अध्याय "ACL का उपयोग करना और नमूने लाना"
इस पैटर्न मिलान विधि को समझने के लिए उपअध्याय "एसीएल मूल बातें"।

मैप.डोम
HAProxy कॉन्फ़िगरेशन.txt फ़ाइल देखें, अध्याय "ACL का उपयोग करना और नमूने लाना"
इस पैटर्न मिलान विधि को समझने के लिए उपअध्याय "एसीएल मूल बातें"।

मानचित्र अंत
HAProxy कॉन्फ़िगरेशन.txt फ़ाइल देखें, अध्याय "ACL का उपयोग करना और नमूने लाना"
इस पैटर्न मिलान विधि को समझने के लिए उपअध्याय "एसीएल मूल बातें"।

नक्शा.रेग
HAProxy कॉन्फ़िगरेशन.txt फ़ाइल देखें, अध्याय "ACL का उपयोग करना और नमूने लाना"
इस पैटर्न मिलान विधि को समझने के लिए उपअध्याय "एसीएल मूल बातें"।

मानचित्र.नया(फ़ाइल, तरीका)
मानचित्र बनाएं और लोड करें.

तर्क

· पट्टिका (स्ट्रिंग) -- क्या फ़ाइल में मानचित्र है।

· तरीका (पूर्णांक) -- मानचित्र पैटर्न मिलान विधि है। गुण देखें
मानचित्र वर्ग का.

रिटर्न
एक क्लास मैप ऑब्जेक्ट।

देख मानचित्र विशेषताएँ.

मानचित्र.लुकअप(मानचित्र, एसटीआर)
मानचित्र में लुकअप करें.

तर्क

· नक्शा (क्लास_मैप) -- क्लास मैप ऑब्जेक्ट है।

· str (स्ट्रिंग) -- क्या स्ट्रिंग का उपयोग कुंजी के रूप में किया जाता है।

रिटर्न
एक स्ट्रिंग जिसमें परिणाम हो या यदि कोई मिलान न हो तो शून्य।

Map.slookup(मानचित्र, एसटीआर)
मानचित्र में लुकअप करें.

तर्क

· नक्शा (क्लास_मैप) -- क्लास मैप ऑब्जेक्ट है।

· str (स्ट्रिंग) -- क्या स्ट्रिंग का उपयोग कुंजी के रूप में किया जाता है।

रिटर्न
एक स्ट्रिंग जिसमें परिणाम हो या यदि कोई मिलान न हो तो खाली स्ट्रिंग।

कक्षा AppletHTTP()
इस वर्ग का उपयोग उन एप्लेट्स के साथ किया जाता है जिनके लिए 'http' मोड की आवश्यकता होती है। http एप्लेट कर सकता है
के साथ पंजीकृत हों कोर.रजिस्टर_सेवा() समारोह। इनका उपयोग किया जाता है
HAProxy के पीछे एक सर्वर की तरह http अनुरोध को संसाधित करना।

यह एक हैलो वर्ल्ड नमूना कोड है:

core.register_service("हैलो-वर्ल्ड", "http", फ़ंक्शन(एप्लेट)
स्थानीय प्रतिक्रिया = "हैलो वर्ल्ड!"
एप्लेट:set_status(200)
एप्लेट: add_header ("सामग्री-लंबाई", स्ट्रिंग.लेन (प्रतिक्रिया))
एप्लेट: add_header ("सामग्री-प्रकार", "पाठ/सादा")
एप्लेट:start_response()
एप्लेट:भेजें(प्रतिक्रिया)
समाप्त)

AppletHTTP.c

रिटर्न
A कन्वर्टर्स कक्षा

इस विशेषता में कन्वर्टर्स क्लास ऑब्जेक्ट शामिल है।

AppletHTTP.sc

रिटर्न
A कन्वर्टर्स कक्षा

इस विशेषता में कन्वर्टर्स क्लास ऑब्जेक्ट शामिल है। इस वस्तु के कार्य
हमेशा एक स्ट्रिंग लौटाता है।

AppletHTTP.f

रिटर्न
A फ़ेच कक्षा

इस विशेषता में एक Fetches क्लास ऑब्जेक्ट शामिल है। ध्यान दें कि एप्लेट निष्पादन
स्थान वैध HAProxy कोर HTTP लेनदेन तक नहीं पहुंच सकता है, इसलिए कुछ नमूना
HTTP पर निर्भर मानों (एचडीआर, पथ,...) से संबंधित जानकारी उपलब्ध नहीं हैं।

AppletHTTP.sf

रिटर्न
A फ़ेच कक्षा

इस विशेषता में एक Fetches क्लास ऑब्जेक्ट शामिल है। इस वस्तु के कार्य
हमेशा एक स्ट्रिंग लौटाता है। ध्यान दें कि एप्लेट निष्पादन स्थान तक नहीं पहुंच सकता
वैध HAProxy कोर HTTP लेनदेन, इसलिए HTTP से संबंधित कुछ नमूना फ़ेक्चेस
आश्रित मान (एचडीआर, पथ, ...) उपलब्ध नहीं हैं।

AppletHTTP.विधि

रिटर्न
स्ट्रिंग

विशेषता विधि HTTP विधि वाली एक स्ट्रिंग लौटाती है।

AppletHTTP.संस्करण

रिटर्न
स्ट्रिंग

विशेषता संस्करण, HTTP अनुरोध संस्करण वाली एक स्ट्रिंग लौटाता है।

AppletHTTP.पथ

रिटर्न
स्ट्रिंग

विशेषता पथ HTTP अनुरोध पथ वाली एक स्ट्रिंग लौटाता है।

AppletHTTP.qs

रिटर्न
स्ट्रिंग

विशेषता qs HTTP अनुरोध क्वेरी स्ट्रिंग वाली एक स्ट्रिंग लौटाती है।

AppletHTTP.लंबाई

रिटर्न
पूर्णांक

विशेषता लंबाई HTTP बॉडी लंबाई वाला एक पूर्णांक लौटाती है।

AppletHTTP.हेडर

रिटर्न
सरणी

विशेषता हेडर HTTP हेडर युक्त एक सरणी लौटाता है। हेडर
नाम हमेशा छोटे अक्षरों में होते हैं। जैसे कि हेडर नाम से अधिक का सामना किया जा सकता है
प्रत्येक अनुरोध में एक बार, मान को पहले सूचकांक मान के रूप में 0 के साथ अनुक्रमित किया जाता है। सरणी
यह फ़ॉर्म है:

AppletHTTP.headers[' '][ ] = " "

AppletHTTP.headers["host"][0] = "www.test.com"
AppletHTTP.headers["स्वीकार करें"][0] = "ऑडियो/बेसिक q=1"
AppletHTTP.headers["स्वीकार करें"][1] = "ऑडियो/*, q=0.2"
AppletHTTP.headers["स्वीकार"][2] = "*/*, q=0.1"

AppletHTTP.हेडर
इसमें सभी अनुरोध शीर्षलेखों वाली एक सरणी शामिल है।

AppletHTTP.set_status(एप्लेट, कोड)
यह फ़ंक्शन प्रतिक्रिया के लिए HTTP स्थिति कोड सेट करता है। अनुमत कोड से हैं
100 को 599.

तर्क

· एप्लेट (class_AppleHTTP) -- एक AppletHTTP कक्षा

· कोड (पूर्णांक)--स्टेटस कोड क्लाइंट को लौटा दिया गया।

AppletHTTP.add_header(एप्लेट, नाम, मूल्य)
यह फ़ंक्शन प्रतिक्रिया में एक हेडर जोड़ता है। डुप्लिकेट किए गए हेडर संक्षिप्त नहीं किए गए हैं.
विशेष शीर्षलेख कंटेंट की लम्बाई प्रतिक्रिया की लंबाई निर्धारित करने के लिए उपयोग किया जाता है। अगर यह
मौजूद नहीं है, ए स्थानांतरण-एन्कोडिंग: ठगा हुआ सेट है, और फ़ंक्शन से सभी लेखन
AppletHTTP:भेजें() एक टुकड़ा बन जाओ.

तर्क

· एप्लेट (class_AppleHTTP) -- एक AppletHTTP कक्षा

· नाम (स्ट्रिंग) -- हेडर नाम

· मूल्य (स्ट्रिंग) -- हेडर मान

AppletHTTP.start_response(एप्लेट)
यह फ़ंक्शन HTTP इंजन को इंगित करता है कि वह प्रोसेस कर सकता है और भेज सकता है
प्रतिक्रिया शीर्षलेख. इस कॉल के बाद हम प्रतिक्रिया में हेडर नहीं जोड़ सकते; हम
उपयोग नहीं कर सकते AppletHTTP:भेजें() कार्य करें यदि AppletHTTP:start_response() नहीं है
बुलाया।

तर्क

· एप्लेट (class_AppleHTTP) -- एक AppletHTTP कक्षा

AppletHTTP.getline(एप्लेट)
यह फ़ंक्शन http बॉडी से एक पंक्ति वाली एक स्ट्रिंग लौटाता है। यदि डेटा
लौटाए गए डेटा में अंतिम '\n' शामिल नहीं है, इसे अंतिम उपलब्ध डेटा की तुलना में माना जाता है
स्ट्रीम ख़त्म होने से पहले.

तर्क

· एप्लेट (class_AppleHTTP) -- एक AppletHTTP कक्षा

रिटर्न
एक स्ट्रिंग। यदि हम स्ट्रीम के अंत तक पहुँचते हैं तो स्ट्रिंग खाली हो सकती है।

AppletHTTP.प्राप्त(एप्लेट[, आकार])
निर्दिष्ट रीड के अनुसार HTTP बॉडी से डेटा पढ़ता है आकार। अगर आकार is
गायब होने पर, फ़ंक्शन स्ट्रीम की सभी सामग्री को अंत तक पढ़ने का प्रयास करता है। अगर
la आकार http बॉडी से बड़ा है, यह उपलब्ध डेटा की मात्रा लौटाता है।

तर्क

· एप्लेट (class_AppleHTTP) -- एक AppletHTTP कक्षा

· आकार (पूर्णांक) -- आवश्यक पढ़ने का आकार।

रिटर्न
हमेशा एक स्ट्रिंग लौटाएं, कनेक्शन बंद होने पर स्ट्रिंग खाली हो सकती है।

AppletHTTP.send(एप्लेट, संदेश)
संदेश भेजें msg http अनुरोध निकाय पर.

तर्क

· एप्लेट (class_AppleHTTP) -- एक AppletHTTP कक्षा

· msg (स्ट्रिंग)--भेजने के लिए संदेश.

कक्षा AppletTCP()
इस वर्ग का उपयोग उन एप्लेट्स के साथ किया जाता है जिनके लिए 'tcp' मोड की आवश्यकता होती है। टीसीपी एप्लेट हो सकता है
के साथ पंजीकृत है कोर.रजिस्टर_सेवा() समारोह। इनका उपयोग प्रसंस्करण के लिए किया जाता है
HAProxy के पीछे एक सर्वर की तरह एक टीसीपी स्ट्रीम।

AppletTCP.c

रिटर्न
A कन्वर्टर्स कक्षा

इस विशेषता में कन्वर्टर्स क्लास ऑब्जेक्ट शामिल है।

AppletTCP.sc

रिटर्न
A कन्वर्टर्स कक्षा

इस विशेषता में कन्वर्टर्स क्लास ऑब्जेक्ट शामिल है। इस वस्तु के कार्य
हमेशा एक स्ट्रिंग लौटाता है।

AppletTCP.f

रिटर्न
A फ़ेच कक्षा

इस विशेषता में एक Fetches क्लास ऑब्जेक्ट शामिल है।

AppletTCP.sf

रिटर्न
A फ़ेच कक्षा

इस विशेषता में एक Fetches क्लास ऑब्जेक्ट शामिल है।

AppletTCP.getline(एप्लेट)
यह फ़ंक्शन स्ट्रीम से एक पंक्ति वाली एक स्ट्रिंग लौटाता है। यदि डेटा
लौटाए गए डेटा में अंतिम '\n' शामिल नहीं है, इसे अंतिम उपलब्ध डेटा की तुलना में माना जाता है
स्ट्रीम ख़त्म होने से पहले.

तर्क

· एप्लेट (क्लास_एप्लेटटीसीपी) -- एक AppletTCP कक्षा

रिटर्न
एक स्ट्रिंग। यदि हम स्ट्रीम के अंत तक पहुँचते हैं तो स्ट्रिंग खाली हो सकती है।

AppletTCP.प्राप्त(एप्लेट[, आकार])
निर्दिष्ट रीड के अनुसार, टीसीपी स्ट्रीम से डेटा पढ़ता है आकार। अगर आकार
गायब है, तो फ़ंक्शन स्ट्रीम की सभी सामग्री को अंत तक पढ़ने का प्रयास करता है।

तर्क

· एप्लेट (क्लास_एप्लेटटीसीपी) -- एक AppletTCP कक्षा

· आकार (पूर्णांक) -- आवश्यक पढ़ने का आकार।

रिटर्न
हमेशा एक स्ट्रिंग लौटाएं, कनेक्शन बंद होने पर स्ट्रिंग खाली हो सकती है।

AppletTCP.भेजें(एप्लेटएमएसजी)
स्ट्रीम पर संदेश भेजें.

तर्क

· एप्लेट (क्लास_एप्लेटटीसीपी) -- एक AppletTCP कक्षा

· msg (स्ट्रिंग)--भेजने के लिए संदेश.

बहुत सारी उपयोगी लुआ लाइब्रेरी यहां पाई जा सकती हैं:

· https://lua-toolbox.com/

रेडिस पहुँच:

· https://github.com/nrk/redis-lua

यह HAProxy के साथ Redis लाइब्रेरी के उपयोग के बारे में एक उदाहरण है। ध्यान दें कि प्रत्येक कॉल
यदि सॉकेट कनेक्शन विफल हो जाता है तो इस लाइब्रेरी का कोई भी फ़ंक्शन त्रुटि उत्पन्न कर सकता है।

- रेडिस लाइब्रेरी लोड करें
स्थानीय रेडिस = आवश्यकता ("रेडिस");

फ़ंक्शन do_something(txn)

- नया टीसीपी सॉकेट बनाएं और कनेक्ट करें
स्थानीय टीसीपी = कोर.टीसीपी();
टीसीपी:सेटटाइमआउट; (1)
टीसीपी: कनेक्ट ("127.0.0.1", 6379);

- इस नए सॉकेट के साथ रेडिस लाइब्रेरी का उपयोग करें
स्थानीय ग्राहक = redis.connect({socket=tcp});
ग्राहक:पिंग();

समाप्त

ओपनएसएसएल:

· http://mkottman.github.io/luacrypto/index.html

· https://github.com/brunoos/luasec/wiki

onworks.net सेवाओं का उपयोग करके ऑनलाइन haproxy-lua का उपयोग करें



नवीनतम Linux और Windows ऑनलाइन प्रोग्राम