انگلیسیفرانسویاسپانیایی

Ad


فاویکون OnWorks

haproxy-lua - آنلاین در ابر

اجرای haproxy-lua در ارائه دهنده هاست رایگان OnWorks از طریق Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS

این دستور haproxy-lua است که می تواند در ارائه دهنده میزبانی رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.

برنامه:

نام


haproxy-lua - هاپروکسی-lua مستندات

خوشبختی LUA دویدن زمینه ها


کد Lua اجرا شده در HAProxy را می توان در 2 حالت اصلی پردازش کرد. اولین مورد است
راه اندازی اولیه حالت، و دوم این است زمان اجرا حالت.

· در راه اندازی اولیه حالت، ما می توانیم حل های DNS را انجام دهیم، اما نمی توانیم سوکت I/O را انجام دهیم.
در این حالت اولیه، HAProxy همچنان در طول اجرای Lua مسدود می شود
برنامه است.

· در زمان اجرا حالت، ما نمی توانیم حل های DNS را انجام دهیم، اما می توانیم از سوکت ها استفاده کنیم. در
اجرای کد Lua با پردازش درخواست ها چندگانه می شود، بنابراین کد Lua
به نظر می رسد در مسدود کردن اجرا می شود، اما اینطور نیست.

کد Lua در یک یا چند فایل بارگذاری می شود. این فایل ها حاوی کد اصلی و توابع هستند.
Lua دارای 6 زمینه اعدام است.

1. فایل Lua بدن زمینه. در حین بارگذاری فایل Lua در
HAProxy [جهانی] بخش با بخشنامه lua-load. در مقداردهی اولیه اجرا می شود
حالت این بخش برای پیکربندی اتصالات Lua در HAProxy استفاده می شود.

2. لوا init انجام زمینه. این یک تابع Lua است که درست بعد از HAProxy اجرا می شود
تجزیه پیکربندی اجرا در حالت اولیه است. در این زمینه
محیط HAProxy در حال حاضر مقداردهی اولیه شده است. برای بررسی پیکربندی مفید است
راه اندازی اتصالات یا وظایف سوکت. این وظایف در بدن اعلام می شود
زمینه با تابع Lua core.register_init(). نمونه اولیه تابع a است
تابع ساده بدون مقدار بازگشتی و بدون پارامتر، مانند این: تابع fcn().

3. لوا کار زمینه. این یک تابع Lua است که پس از شروع HAProxy اجرا می شود
زمانبند، و درست پس از اعلام کار با تابع Lua
core.register_task(). این زمینه می تواند همزمان با پردازش ترافیک باشد. این است
در حالت زمان اجرا اجرا می شود. نمونه اولیه تابع یک تابع ساده بدون آن است
مقدار بازگشتی و بدون پارامتر، مانند این: تابع fcn().

4. اقدام زمینه. این یک تابع Lua است که به صورت مشروط اجرا می شود. این اقدامات هستند
ثبت شده توسط دستورالعمل های Lua "core.register_action()". نمونه اولیه Lua
تابع نامیده می شود تابعی است که چیزی را برمی گرداند و یک شی از را می گیرد
کلاس TXN به عنوان ورودی. تابع fcn(txn).

5. واکشی نمونه زمینه. این تابع یک شی TXN را به عنوان آرگومان ورودی می گیرد و
یک رشته را برمی گرداند. این نوع توابع نمی توانند هیچ تابع مسدود کننده ای را اجرا کنند. آنها
برای جمع آوری برخی از نمونه برداری های اصلی HAProxy و بازگرداندن نتیجه مفید هستند.
نمونه اولیه تابع است تابع رشته fcn(txn). این توابع می توانند باشند
با تابع Lua ثبت شده است core.register_fetches(). هر نمونه واکشی اعلام شده است
با پیشوند رشته "lua.".

توجه داشته باشید: ممکن است این تابع نتواند داده های مورد نیاز را در نسخه اصلی پیدا کند
HAProxy نمونه واکشی می کند، در این حالت، نمی تواند نتیجه را برگرداند. این مورد هنوز نیست
پشتیبانی

6. مبدل زمینه. این یک تابع Lua است که یک رشته را به عنوان ورودی می گیرد و برمی گرداند
یک رشته دیگر به عنوان خروجی این نوع توابع بدون حالت هستند و نمی توانند به آن دسترسی داشته باشند
هر زمینه آنها هیچ عملکرد مسدود کننده ای را اجرا نمی کنند. نمونه اولیه تماس است تابع
رشته fcn (رشته). این تابع را می توان با تابع Lua ثبت کرد
core.register_converters(). هر مبدل اعلام شده با رشته "lua" پیشوند می شود.

خوشبختی LUA سلام جهان


فایل پیکربندی HAProxy (hello_world.conf):

جهانی
lua-load hello_world.lua

پروکسی گوش کن
bind 127.0.0.1:10001
tcp-request inspect-delay 1s
tcp-درخواست محتوا use-service lua.hello_world

فایل HAProxy Lua (hello_world.lua):

core.register_service("hello_world"، "tcp"، function(applet)
applet:send("سلام دنیا\n")
پایان)

نحوه راه اندازی HAProxy برای آزمایش این پیکربندی:

./haproxy -f hello_world.conf

در پایانه های دیگر، می توانید با telnet تست کنید:

#:~ telnet 127.0.0.1 10001
سلام جهان

کلاس هسته()
کلاس "core" شامل تمام توابع هسته HAProxy است. این عملکردها مفید هستند
برای کنترل جریان اجرا، ثبت هوک ها، دستکاری نقشه های جهانی
یا ACL، ...

کلاس "core" اساساً با HAProxy ارائه می شود. خیر نیاز خط مورد نیاز است
از این توابع استفاده می کند.

کلاس "core" ثابت است، امکان ایجاد یک شی جدید از این نوع وجود ندارد.

core.emerge

بازده
عدد صحیح

این ویژگی یک عدد صحیح است، حاوی مقدار loglevel "emergency" است.
(0).

core.alert

بازده
عدد صحیح

این ویژگی یک عدد صحیح است، حاوی مقدار سطح loglevel "alert" (1) است.

core.crit

بازده
عدد صحیح

این ویژگی یک عدد صحیح است، حاوی مقدار loglevel "critical" (2) است.

هسته.اشتباه

بازده
عدد صحیح

این ویژگی یک عدد صحیح است، حاوی مقدار "خطا" (3) سطح loglevel است.

هسته.هشدار

بازده
عدد صحیح

این ویژگی یک عدد صحیح است، حاوی مقدار "warning" (4) سطح loglevel است.

هسته.توجه کنید

بازده
عدد صحیح

این ویژگی یک عدد صحیح است، حاوی مقدار "Notice" (5) سطح loglevel است.

core.info

بازده
عدد صحیح

این ویژگی یک عدد صحیح است، حاوی مقدار loglevel "info" (6) است.

core.debug

بازده
عدد صحیح

این ویژگی یک عدد صحیح است، حاوی مقدار loglevel "debug" (7) است.

core.log(loglevel, پیام)
زمینه: بدنه، آغازین، وظیفه، عمل، واکشی نمونه، مبدل

این تابع یک گزارش ارسال می کند. گزارش، مطابق با HAProxy ارسال می شود
فایل پیکربندی، در سرور syslog پیش‌فرض اگر پیکربندی شده باشد و روی
stderr اگر مجاز باشد.

استدلال

· سطح ورود (عدد صحیح) -- آیا سطح گزارش مربوط به پیام است. این هست یک
عدد بین 0 تا 7

· MSG (رشته) -- محتوای گزارش.

دیدن core.emerg، core.alert، core.crit، core.err، core.warning، core.notice،
core.info، core.debug (تعریف سطح ورود)

دیدن کد. اشکال زدایی

دیدن هسته.اطلاعات

دیدن هسته.هشدار

دیدن هسته.هشدار

هسته.اشکال زدایی(پیام)
زمینه: بدنه، آغازین، وظیفه، عمل، واکشی نمونه، مبدل

استدلال

· MSG (رشته) -- محتوای گزارش.

دیدن ورود به سیستم

کار مشابهی را انجام می دهد:

تابع اشکال زدایی کردن(پیام)
core.log (core.debug، msg)
پایان

هسته.اطلاعات(پیام)
زمینه: بدنه، آغازین، وظیفه، عمل، واکشی نمونه، مبدل

استدلال

· MSG (رشته) -- محتوای گزارش.

دیدن ورود به سیستم

تابع اطلاعات(پیام)
core.log (core.info، پیام)
پایان

هسته.هشدار(پیام)
زمینه: بدنه، آغازین، وظیفه، عمل، واکشی نمونه، مبدل

استدلال

· MSG (رشته) -- محتوای گزارش.

دیدن ورود به سیستم

تابع هشدار(پیام)
core.log (core.warning, msg)
پایان

هسته.هشدار(پیام)
زمینه: بدنه، آغازین، وظیفه، عمل، واکشی نمونه، مبدل

استدلال

· MSG (رشته) -- محتوای گزارش.

دیدن ورود به سیستم

تابع هوشیار(پیام)
core.log (core.alert، msg)
پایان

core.add_acl(نام فایل، کلید)
زمینه: init, task, action, sample-fetch, converter

ACL را اضافه کنید کلید در لیست ACL ها که فایل به آن ارجاع می دهد نام فایل.

استدلال

· نام فایل (رشته) -- نام فایلی که به ورودی های ACL اشاره می کند.

· کلید (رشته) -- کلیدی که اضافه خواهد شد.

core.del_acl(نام فایل، کلید)
زمینه: init, task, action, sample-fetch, converter

ورودی ACL را که با کلید ارجاع داده شده است حذف کنید کلید در لیست ACL های ارجاع شده توسط
نام فایل.

استدلال

· نام فایل (رشته) -- نام فایلی که به ورودی های ACL اشاره می کند.

· کلید (رشته) -- کلیدی که حذف می شود.

core.del_map(نام فایل، کلید)
زمینه: init, task, action, sample-fetch, converter

ورودی نقشه نمایه شده با کلید مشخص شده در لیست نقشه های ارجاع شده را حذف کنید
با نام فایل او

استدلال

· نام فایل (رشته) -- نام فایلی که به ورودی های نقشه اشاره دارد.

· کلید (رشته) -- کلیدی که حذف می شود.

core.msleep(میلی ثانیه)
زمینه: بدن، آغاز، وظیفه، عمل

La core.msleep() اجرای Lua را بین میلی ثانیه های مشخص شده متوقف می کند.

استدلال

· میلی ثانیه (عدد صحیح) -- میلی ثانیه مورد نیاز.

core.register_action(نام، اقدامات، تابع)
زمینه: بدن

یک تابع Lua را که به عنوان عمل اجرا شده است، ثبت کنید. تمام اقدامات ثبت شده قابل استفاده است
در HAProxy با پیشوند "lua.". یک عمل یک کلاس شی TXN را به عنوان ورودی دریافت می کند.

استدلال

· نام (رشته) -- نام مبدل است.

· اقدامات (جدول) -- یک جدول رشته ای است که اقدامات HAProxy را توصیف می کند
می خواهم ثبت نام کنم اقدامات مورد انتظار عبارتند از 'tcp-req'، 'tcp-res'،
'http-req' یا 'http-res'.

· عملکرد (تابع) -- تابع Lua است که برای کار به عنوان مبدل فراخوانی می شود.

نمونه اولیه تابع Lua که به عنوان آرگومان استفاده می شود عبارت است از:

تابع (txn)

·

txn (TXN کلاس): این is a TXN هدف استفاده برای دستکاری کردن la
درخواست فعلی یا جریان TCP.

در اینجا، یک نمونه از ثبت نام اقدام. عمل فقط ارسال "سلام جهان" در
سیاهههای مربوط

core.register_action("hello-world", { "tcp-req", "http-req" }, function(txn)
txn:Info ("سلام دنیا")
پایان)
این کد مثال در پیکربندی HAproxy به صورت زیر استفاده می شود:

جلویی tcp_frt
حالت tcp
tcp-درخواست محتوای lua.hello-world

پیشانی http_frt
حالت http
http-درخواست lua.hello-world

core.register_converters(نام، تابع)
زمینه: بدن

یک تابع Lua که به عنوان مبدل اجرا شده است را ثبت کنید. تمام مبدل های ثبت شده می توانند باشند
در HAProxy با پیشوند "lua." استفاده می شود. یک مبدل یک رشته را به عنوان ورودی دریافت می کند و
یک رشته را به عنوان خروجی برگردانید. تابع ثبت شده می تواند تا 9 مقدار به عنوان
پارامتر. تمام مقادیر رشته هستند.

استدلال

· نام (رشته) -- نام مبدل است.

· عملکرد (تابع) -- تابع Lua است که برای کار به عنوان مبدل فراخوانی می شود.

نمونه اولیه تابع Lua که به عنوان آرگومان استفاده می شود عبارت است از:

تابع (str، [p1 [، p2 [، ... [، p5]]]])

· خ (رشته): این مقدار ورودی است که به صورت خودکار به رشته تبدیل می شود.

· p1 .. p5 (رشته): این لیستی از آرگومان های رشته ای است که در هاروکسی اعلام شده است
فایل پیکربندی. تعداد آرگومان ها از 5 تجاوز نمی کند. ترتیب و
ماهیت اینها به طور معمول توسط توسعه دهنده انتخاب می شود.

core.register_fetches(نام، تابع)
زمینه: بدن

یک تابع Lua را که به عنوان واکشی نمونه اجرا شده است، ثبت کنید. همه نمونه های ثبت شده واکشی می شوند
می توان در HAProxy با پیشوند "lua" استفاده کرد. یک نمونه Lua یک رشته را برمی گرداند
به عنوان خروجی تابع ثبت شده می تواند تا 9 مقدار را به عنوان پارامتر بگیرد. همه
مقدار رشته ها هستند.

استدلال

· نام (رشته) -- نام مبدل است.

· عملکرد (تابع) -- تابع Lua است که برای کار به عنوان واکشی نمونه فراخوانی می شود.

نمونه اولیه تابع Lua که به عنوان آرگومان استفاده می شود عبارت است از:

تابع رشته (txn، [p1 [، p2 [، ... [، p5]]]])

· txn (TXN کلاس): این شیء txn است که با درخواست فعلی مرتبط است.

· p1 .. p5 (رشته): این لیستی از آرگومان های رشته ای است که در هاروکسی اعلام شده است
فایل پیکربندی. تعداد آرگومان ها از 5 تجاوز نمی کند. ترتیب و
ماهیت اینها به طور معمول توسط توسعه دهنده انتخاب می شود.

· بازده: رشته ای که حاوی مقداری داده است، اگر اکنون نمی توان مقدار را برگرداند، هیچ.

کد نمونه lua:

core.register_fetches("hello", function(txn)
بازگشت "سلام"
پایان)
پیکربندی نمونه HAProxy:

نمونه جلویی
http-درخواست تغییر مسیر مکان /%[lua.hello]

core.register_service(نام، حالت ، تابع)
زمینه: بدن

یک تابع Lua را که به عنوان یک سرویس اجرا شده است، ثبت کنید. تمام خدمات ثبت شده می تواند باشد
در HAProxy با پیشوند "lua." استفاده می شود. یک سرویس یک کلاس شی به عنوان ورودی دریافت می کند
مطابق با حالت مورد نیاز

استدلال

· نام (رشته) -- نام مبدل است.

· حالت (رشته) -- رشته ای است که حالت مورد نیاز را توصیف می کند. فقط 'tcp' یا
'http' مجاز هستند.

· عملکرد (تابع) -- تابع Lua است که برای کار به عنوان مبدل فراخوانی می شود.

نمونه اولیه تابع Lua که به عنوان آرگومان استفاده می شود عبارت است از:

تابع (ابزار)

· اپلت اپلت خواهد بود AppletTCP کلاس یا یک AppletHTTP کلاس. بستگی به نوعش داره
اپلت ثبت شده یک اپلت ثبت شده با مقدار 'http' برای حالت
پارامتر a می شود AppletHTTP کلاس. اگر حالت مقدار 'tcp' است، اپلت خواهد کرد
می شود AppletTCP کلاس.

هشدار: اپلت های نوع 'http' را نمی توان از 'tcp- فراخوانی کرد' مجموعه قوانین تنها la http-'
مجموعه قوانین مجاز هستند، به این معنی که امکان فراخوانی یک اپلت HTTP از a وجود ندارد
پروکسی در حالت tcp. اپلت های نوع 'tcp' را می توان از هر جایی فراخوانی کرد.

در اینجا، یک نمونه از ثبت نام خدمات. این سرویس فقط یک "سلام جهان" را به عنوان یک ارسال می کند
پاسخ http.

core.register_service("hello-world"، "http"، function(applet)
پاسخ محلی = "سلام جهان!"
اپلت:set_status(200)
applet:add_header("طول محتوا"، string.len(پاسخ))
applet:add_header("نوع محتوا"، "متن/ساده")
applet:start_response()
applet:send (پاسخ)
پایان)
این کد مثال در پیکربندی HAproxy به صورت زیر استفاده می شود:

نمونه جلویی
http-درخواست use-service lua.hello-world

core.register_init(func)
زمینه: بدن

یک تابع اجرا شده پس از تجزیه پیکربندی را ثبت کنید. این مفید است برای
هر پارامتری را بررسی کنید

استدلال

· عملکرد (تابع) -- تابع Lua است که برای کار به عنوان آغازگر فراخوانی می شود.

نمونه اولیه تابع Lua که به عنوان آرگومان استفاده می شود عبارت است از:

عملکرد()
هیچ ورودی نمی گیرد و خروجی هم انتظار نمی رود.

core.register_task(func)
زمینه: بدنه، آغازین، وظیفه، عمل، واکشی نمونه، مبدل

ثبت نام کنید و کار مستقل را شروع کنید. کار زمانی شروع می شود که HAProxy اصلی باشد
زمانبندی شروع می شود به عنوان مثال این نوع وظایف را می توان برای انجام پیچیده اجرا کرد
بررسی های بهداشتی

استدلال

· عملکرد (تابع) -- تابع Lua است که برای کار به عنوان آغازگر فراخوانی می شود.

نمونه اولیه تابع Lua که به عنوان آرگومان استفاده می شود عبارت است از:

عملکرد()
هیچ ورودی نمی گیرد و خروجی هم انتظار نمی رود.

core.set_nice (خوب)
زمینه: وظیفه، اقدام، واکشی نمونه، مبدل

زیبایی کار فعلی یا جلسه فعلی را تغییر دهید.

استدلال

· خوب (عدد صحیح) -- مقدار خوب، باید بین -1024 و 1024 باشد.

core.set_map(نام فایل، کلیدی مقدار)
زمینه: init, task, action, sample-fetch, converter

مقدار را تنظیم کنید ارزش مرتبط با کلید کلید در نقشه اشاره شده توسط نام فایل.

استدلال

· نام فایل (رشته) -- مرجع نقشه

· کلید (رشته) -- کلید تنظیم یا تعویض

· ارزش (رشته) -- مقدار مرتبط

core.sleep(int ثانیه)
زمینه: بدن، آغاز، وظیفه، عمل

La core.sleep() توابع اجرای Lua را بین ثانیه های مشخص شده متوقف می کنند.

استدلال

· ثانیه (عدد صحیح) -- ثانیه های مورد نیاز.

core.tcp()
زمینه: آغاز، وظیفه، عمل

این تابع یک شی جدید از a را برمی گرداند پریز کلاس.

بازده
A پریز کلاس هدف - شی.

core.done(داده)
زمینه: بدنه، آغازین، وظیفه، عمل، واکشی نمونه، مبدل

استدلال

· داده ها (هر) -- برخی از داده ها را برای تماس گیرنده برگردانید. مفید است با
واکشی نمونه و مبدل نمونه.

بلافاصله اجرای Lua فعلی را متوقف می کند و به تماس گیرنده که ممکن است باشد باز می گردد
یک نمونه واکشی، یک مبدل یا یک عمل و مقدار مشخص شده را برمی گرداند (نادیده گرفته شده است
برای اقدامات). زمانی استفاده می شود که فرآیند LUA کار خود را تمام کند و بخواهد بدهد
بدون اجرای کد باقیمانده، کنترل را به HAProxy برگردانید. می توان آن را به عنوان مشاهده کرد
یک "بازگشت" چند سطحی.

core.yield()
زمینه: وظیفه، اقدام، واکشی نمونه، مبدل

به زمان‌بندی HAProxy دست بدهید. در هنگام پردازش LUA استفاده می شود
زمان پردازش زیادی را مصرف می کند.

کلاس واکشی ()
این کلاس حاوی تعداد زیادی واکشی نمونه داخلی HAProxy است. HAProxy را ببینید
اسناد "configuration.txt" برای اطلاعات بیشتر در مورد استفاده از او. آن ها هستند
فصل های 7.3.2 تا 7.3.6.

هشدار برخی از واکشی‌های نمونه در برخی زمینه‌ها در دسترس نیستند. این محدودیت ها
در مواقعی که مفید هستند در این مستندات مشخص می شوند.

دیدن TXN.f

دیدن TXN.sf

واکشی برای موارد زیر مفید است:

· دریافت زمان سیستم،

· دریافت متغیر محیطی،

· دریافت اعداد تصادفی،

· وضعیت باطن شناخته شده مانند تعداد کاربران در صف یا تعداد
ارتباطات ایجاد شده،

· اطلاعات مشتری مانند منبع IP یا مقصد،

· برخورد با میزهای چوبی،

· اطلاعات SSL ایجاد شده،

· اطلاعات HTTP مانند هدر یا روش.

عملکرد تابع (txn)
-- دریافت IP منبع
مشتری محلی = txn.f:src()
پایان

کلاس مبدل ()
این کلاس حاوی تعداد زیادی مبدل نمونه داخلی HAProxy است. HAProxy را ببینید
مستندات "configuration.txt" برای اطلاعات بیشتر در مورد استفاده از او. آن است
فصل 7.3.1.

دیدن TXN.c

دیدن TXN.sc

مبدل ها تبدیل حالت کامل را فراهم می کند. آنها برای موارد زیر مفید هستند:

· تبدیل ورودی به base64،

· اعمال هش در رشته ورودی (djb2، crc32، sdbm، wt6)،

· تاریخ قالب،

· فرار جیسون،

· استخراج زبان ترجیحی با مقایسه دو لیست،

· چرخش به نویسه های پایین یا بالا،

· برخورد با میزهای چوبی.

کلاس کانال ()
HAProxy از دو بافر برای پردازش درخواست ها استفاده می کند. اولی استفاده می شود
با داده های درخواست (از مشتری به سرور) و دوم برای استفاده می شود
داده های پاسخ (از سرور به مشتری).

هر بافر شامل دو نوع داده است. نوع اول، انتظار داده های ورودی است
برای یک پردازش بخش دوم داده های خروجی است که قبلاً پردازش شده است. معمولا،
داده های ورودی پس از برچسب گذاری به عنوان داده های خروجی پردازش می شوند و در نهایت آن ها
فرستاده شد. توابع زیر ابزارهایی را برای دستکاری این داده ها در الف فراهم می کند
بافر شده است.

نمودار زیر نشان می دهد که در کجا تابع کلاس کانال اعمال می شود.

هشدار: خواندن از پاسخ در عمل درخواست امکان پذیر نیست و همینطور است
امکان خواندن برای کانال درخواست در اقدام پاسخ وجود ندارد.
[تصویر]

Channel.dup (کانال)
این تابع رشته ای را برمی گرداند که شامل کل بافر است. داده ها نیست
از بافر حذف شود و بعداً قابل پردازش مجدد باشد.

اگر بافر نتواند داده های بیشتری را دریافت کند، مقدار "nil" برگردانده می شود.

استدلال

· کانال (class_channel) -- کانال دستکاری شده.

بازده
رشته ای حاوی تمام داده های موجود یا صفر.

Channel.get (کانال)
این تابع رشته ای را برمی گرداند که شامل کل بافر است. داده مصرف می شود
از بافر

اگر بافر نتواند داده های بیشتری را دریافت کند، مقدار "nil" برگردانده می شود.

استدلال

· کانال (class_channel) -- کانال دستکاری شده.

بازده
رشته ای حاوی تمام داده های موجود یا صفر.

Channel.getline (کانال)
این تابع رشته ای را برمی گرداند که شامل اولین خط بافر است. داده
مصرف می شود. اگر داده های بازگردانده شده حاوی یک "n" نهایی نباشد، فرض شده است
آخرین داده های موجود در بافر

اگر بافر نتواند داده های بیشتری را دریافت کند، مقدار "nil" برگردانده می شود.

استدلال

· کانال (class_channel) -- کانال دستکاری شده.

بازده
یک رشته حاوی خط موجود یا صفر.

Channel.set(channel, رشته)
این تابع با رشته جایگزین محتوای بافر می شود. تابع برمی گردد
طول کپی شده، در غیر این صورت، -1 را برمی گرداند.

مجموعه داده های این تابع ارسال نمی شود. آنها منتظر پایان HAProxy هستند
پردازش، بنابراین بافر می تواند پر شود.

استدلال

· کانال (class_channel) -- کانال دستکاری شده.

· رشته (رشته) -- داده هایی که ارسال خواهد شد.

بازده
یک عدد صحیح حاوی مقدار بایت کپی شده یا -1.

Channel.append(channel, رشته)
این تابع آرگومان رشته را به محتوای بافر اضافه می کند. کارکرد
طول کپی شده را برمی گرداند، در غیر این صورت، -1 را برمی گرداند.

مجموعه داده های این تابع ارسال نمی شود. آنها منتظر پایان HAProxy هستند
پردازش، بنابراین بافر می تواند پر شود.

استدلال

· کانال (class_channel) -- کانال دستکاری شده.

· رشته (رشته) -- داده هایی که ارسال خواهد شد.

بازده
یک عدد صحیح حاوی مقدار بایت کپی شده یا -1.

Channel.send(کانال، رشته)
این تابع نیاز به ارسال فوری داده ها داشت. مگر اینکه اتصال باشد
بسته شود، بافر مرتباً شستشو می شود و تمام رشته ها می توانند ارسال شوند.

استدلال

· کانال (class_channel) -- کانال دستکاری شده.

· رشته (رشته) -- داده هایی که ارسال خواهد شد.

بازده
یک عدد صحیح حاوی مقدار بایت کپی شده یا -1.

Channel.get_in_length(channel)
این تابع طول قسمت ورودی بافر را برمی گرداند.

استدلال

· کانال (class_channel) -- کانال دستکاری شده.

بازده
یک عدد صحیح حاوی مقدار بایت های موجود.

Channel.get_out_length(کانال)
این تابع طول قسمت خروجی بافر را برمی گرداند.

استدلال

· کانال (class_channel) -- کانال دستکاری شده.

بازده
یک عدد صحیح حاوی مقدار بایت های موجود.

Channel.forward(channel, بین المللی)
این تابع بایت ها را از قسمت ورودی بافر به قسمت خروجی منتقل می کند.

استدلال

· کانال (class_channel) -- کانال دستکاری شده.

· INT (عدد صحیح) -- مقدار داده ای که ارسال می شود.

کلاس HTTP()
این کلاس شامل تمام توابع دستکاری HTTP است.

HTTP.req_get_headers(http)
یک آرایه حاوی تمام سرصفحه های درخواست را برمی گرداند.

استدلال

· HTTP (class_http) -- شی http مرتبط.

بازده
آرایه ای از هدرها

دیدن HTTP.res_get_headers()

این شکل آرایه برگشتی است:

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

hdr محلی = HTTP:req_get_headers()
hdr["host"][0] = "www.test.com"
hdr["accept"][0] = "صوتی/اصلی q=1"
hdr["accept"][1] = "صوتی/*، q=0.2"
hdr["accept"][2] = "*/*، q=0.1"

HTTP.res_get_headers(http)
یک آرایه حاوی تمام سرصفحه های پاسخ را برمی گرداند.

استدلال

· HTTP (class_http) -- شی http مرتبط.

بازده
آرایه ای از هدرها

دیدن HTTP.req_get_headers()

این شکل آرایه برگشتی است:

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

hdr محلی = HTTP:req_get_headers()
hdr["host"][0] = "www.test.com"
hdr["accept"][0] = "صوتی/اصلی q=1"
hdr["accept"][1] = "صوتی/*، q=0.2"
hdr["accept"][2] = "*.*، q=0.1"

HTTP.req_add_header(http, نام، مقدار)
یک فیلد هدر HTTP را در درخواست اضافه می کند که نام آن در "name" مشخص شده است و
که مقدار آن در "ارزش" تعریف شده است.

استدلال

· HTTP (class_http) -- شی http مرتبط.

· نام (رشته) -- نام سرصفحه.

· ارزش (رشته) -- مقدار سرصفحه.

دیدن HTTP.res_add_header()

HTTP.res_add_header(http, نام، مقدار)
یک فیلد هدر HTTP را در پاسخ اضافه می کند که نام آن در "name" مشخص شده است و
که مقدار آن در "ارزش" تعریف شده است.

استدلال

· HTTP (class_http) -- شی http مرتبط.

· نام (رشته) -- نام سرصفحه.

· ارزش (رشته) -- مقدار سرصفحه.

دیدن HTTP.req_add_header()

HTTP.req_del_header(http, نام)
تمام فیلدهای هدر HTTP را در درخواستی که نام آن در "name" مشخص شده است، حذف می کند.

استدلال

· HTTP (class_http) -- شی http مرتبط.

· نام (رشته) -- نام سرصفحه.

دیدن HTTP.res_del_header()

HTTP.res_del_header(http, نام)
تمام فیلدهای هدر HTTP را در پاسخی که نام آن در "name" مشخص شده است، حذف می کند.

استدلال

· HTTP (class_http) -- شی http مرتبط.

· نام (رشته) -- نام سرصفحه.

دیدن HTTP.req_del_header()

HTTP.req_set_header(http, نام، مقدار)
این متغیر جایگزین تمام رخدادهای هدر "name" می شود، تنها با یکی حاوی
ارزش".

استدلال

· HTTP (class_http) -- شی http مرتبط.

· نام (رشته) -- نام سرصفحه.

· ارزش (رشته) -- مقدار سرصفحه.

دیدن HTTP.res_set_header()

این تابع مانند کد زیر عمل می کند:

تابع fcn(txn)
TXN.http:req_del_header("header")
TXN.http:req_add_header("header"، "value")
پایان

HTTP.res_set_header(http, نام، مقدار)
این متغیر جایگزین تمام رخدادهای هدر "name" می شود، تنها با یکی حاوی
ارزش".

استدلال

· HTTP (class_http) -- شی http مرتبط.

· نام (رشته) -- نام سرصفحه.

· ارزش (رشته) -- مقدار سرصفحه.

دیدن HTTP.req_rep_header()

HTTP.req_rep_header(http, نام، رژکس، جایگزین کردن)
مطابق با عبارت منظم در همه موارد فیلد هدر "name" است
به "regex"، و آنها را با آرگومان "replace" جایگزین می کند. ارزش جایگزینی
می تواند حاوی مراجع برگشتی مانند 1، 2، ... باشد. این تابع با درخواست کار می کند.

استدلال

· HTTP (class_http) -- شی http مرتبط.

· نام (رشته) -- نام سرصفحه.

· regex (رشته) -- عبارت منظم مطابقت.

· جایگزین کردن (رشته) -- ارزش جایگزینی.

دیدن HTTP.res_rep_header()

HTTP.res_rep_header(http, نام، رژکس، رشته)
مطابق با عبارت منظم در همه موارد فیلد هدر "name" است
به "regex"، و آنها را با آرگومان "replace" جایگزین می کند. ارزش جایگزینی
می تواند حاوی مراجع برگشتی مانند 1، 2، ... باشد. این تابع با درخواست کار می کند.

استدلال

· HTTP (class_http) -- شی http مرتبط.

· نام (رشته) -- نام سرصفحه.

· regex (رشته) -- عبارت منظم مطابقت.

· جایگزین کردن (رشته) -- ارزش جایگزینی.

دیدن HTTP.req_replace_header()

HTTP.req_replace_value(http, نام، رژکس، جایگزین کردن)
مانند "HTTP.req_replace_header()" عمل می کند با این تفاوت که با regex مطابقت دارد
هر مقدار محدود شده با کاما فیلد هدر "name" به جای کل
سرتیتر.

استدلال

· HTTP (class_http) -- شی http مرتبط.

· نام (رشته) -- نام سرصفحه.

· regex (رشته) -- عبارت منظم مطابقت.

· جایگزین کردن (رشته) -- ارزش جایگزینی.

دیدن HTTP.req_replace_header()

دیدن HTTP.res_replace_value()

HTTP.res_replace_value(http, نام، رژکس، جایگزین کردن)
مانند "HTTP.res_replace_header()" عمل می کند با این تفاوت که با regex مطابقت دارد
هر مقدار محدود شده با کاما فیلد هدر "name" به جای کل
سرتیتر.

استدلال

· HTTP (class_http) -- شی http مرتبط.

· نام (رشته) -- نام سرصفحه.

· regex (رشته) -- عبارت منظم مطابقت.

· جایگزین کردن (رشته) -- ارزش جایگزینی.

دیدن HTTP.res_replace_header()

دیدن HTTP.req_replace_value()

HTTP.req_set_method(http, روش)
روش درخواست را با پارامتر "method" بازنویسی می کند.

استدلال

· HTTP (class_http) -- شی http مرتبط.

· روش (رشته) -- روش جدید.

HTTP.req_set_path(http, مسیر)
مسیر درخواست را با پارامتر "path" بازنویسی می کند.

استدلال

· HTTP (class_http) -- شی http مرتبط.

· مسیر (رشته) -- مسیر جدید.

HTTP.req_set_query(http, پرس و جو)
رشته پرس و جو درخواست را که بعد از اولین علامت سوال ظاهر می شود دوباره می نویسد
("?") با پارامتر "پرس و جو".

استدلال

· HTTP (class_http) -- شی http مرتبط.

· پرس و جو (رشته) -- پرس و جو جدید.

HTTP.req_set_uri(http, اوری)
URI درخواست را با پارامتر "uri" بازنویسی می کند.

استدلال

· HTTP (class_http) -- شی http مرتبط.

· URI (رشته) -- اوری جدید.

HTTP.res_set_status(http, وضعیت)
کد وضعیت پاسخ را با پارامتر "کد" بازنویسی می کند. توجه داشته باشید که دلیل
به طور خودکار با کد جدید تطبیق داده می شود.

استدلال

· HTTP (class_http) -- شی http مرتبط.

· وضعیت (عدد صحیح) -- کد وضعیت پاسخ جدید.

کلاس TXN()
کلاس txn شامل تمام توابع مربوط به تراکنش http یا tcp است
(توجه داشته باشید که یک جریان tcp مشابه تراکنش tcp است، اما یک تراکنش HTTP است
با یک جریان tcp یکسان نیست).

استفاده از این کلاس امکان بازیابی داده ها از درخواست ها، تغییر آن و
بفرستش.

تمام توابع ارائه شده توسط این کلاس در زمینه موجود هستند
واکشی نمونه و اقدامات.

TXN.c

بازده
An مبدل کلاس.

این ویژگی شامل یک شی کلاس Converters است.

TXN.sc

بازده
An مبدل کلاس.

این ویژگی شامل یک شی کلاس Converters است. توابع این شی
همیشه یک رشته را برمی گرداند.

TXN.f

بازده
An واکشی ها کلاس.

این ویژگی شامل یک شی کلاس Fetches است.

TXN.sf

بازده
An واکشی ها کلاس.

این ویژگی شامل یک شی کلاس Fetches است. توابع این شی
همیشه یک رشته را برمی گرداند.

TXN.req

بازده
An کانال کلاس.

این ویژگی حاوی یک شی کلاس کانال برای بافر درخواست است.

TXN.res

بازده
An کانال کلاس.

این ویژگی شامل یک شی کلاس کانال برای بافر پاسخ است.

TXN.http

بازده
An HTTP کلاس.

این ویژگی شامل یک شی کلاس HTTP است. فقط در صورتی در دسترس است که پروکسی داشته باشد
حالت http فعال شد.

TXN.log(TXN لول لول، پیام)
این تابع یک گزارش ارسال می کند. گزارش، مطابق با HAProxy ارسال می شود
فایل پیکربندی، در سرور syslog پیش‌فرض اگر پیکربندی شده باشد و روی
stderr اگر مجاز باشد.

استدلال

· txn (class_txn) -- شی کلاس txn حاوی داده ها.

· سطح ورود (عدد صحیح) -- آیا سطح گزارش مربوط به پیام است. این هست یک
عدد بین 0 تا 7

· MSG (رشته) -- محتوای گزارش.

دیدن core.emerg، core.alert، core.crit، core.err، core.warning، core.notice،
core.info، core.debug (تعریف سطح ورود)

دیدن TXN.deflog

دیدن TXN.Debug

دیدن TXN.Info

دیدن TXN.Warning

دیدن TXN.Alert

TXN.deflog(TXN، پیام)
یک خط ورود به سیستم با loglevel پیش فرض برای پروکسی مرتبط با آن ارسال می کند
معامله.

استدلال

· txn (class_txn) -- شی کلاس txn حاوی داده ها.

· MSG (رشته) -- محتوای گزارش.

دیدن TXN.log

TXN.Debug(txn, پیام)

استدلال

· txn (class_txn) -- شی کلاس txn حاوی داده ها.

· MSG (رشته) -- محتوای گزارش.

دیدن TXN.log

کار مشابهی را انجام می دهد:

عملکرد اشکال زدایی (txn، msg)
TXN.log (txn، core.debug، msg)
پایان

TXN.Info(txn, پیام)

استدلال

· txn (class_txn) -- شی کلاس txn حاوی داده ها.

· MSG (رشته) -- محتوای گزارش.

دیدن TXN.log

عملکرد اشکال زدایی (txn، msg)
TXN.log (txn، core.info، msg)
پایان

TXN.Warning(txn پیام)

استدلال

· txn (class_txn) -- شی کلاس txn حاوی داده ها.

· MSG (رشته) -- محتوای گزارش.

دیدن TXN.log

عملکرد اشکال زدایی (txn، msg)
TXN.log (txn، core.warning، msg)
پایان

TXN.Alert(txn, پیام)

استدلال

· txn (class_txn) -- شی کلاس txn حاوی داده ها.

· MSG (رشته) -- محتوای گزارش.

دیدن TXN.log

عملکرد اشکال زدایی (txn، msg)
TXN.log (txn، core.alert، msg)
پایان

TXN.get_priv(txn)
داده های Lua ذخیره شده در تراکنش فعلی را برگردانید (با TXN.set_priv())
عملکرد. اگر هیچ داده ای ذخیره نشود، مقدار صفر را برمی گرداند.

استدلال

· txn (class_txn) -- شی کلاس txn حاوی داده ها.

بازده
داده‌های غیر شفافی که قبلاً ذخیره شده‌اند، یا اگر چیزی در دسترس نباشد صفر.

TXN.set_priv(txn, داده ها)
هر گونه داده را در تراکنش فعلی HAProxy ذخیره کنید. این عمل جایگزین قدیمی می شود
اطلاعات ذخیره شده.

استدلال

· txn (class_txn) -- شی کلاس txn حاوی داده ها.

· داده ها (مات) -- داده هایی که در تراکنش ذخیره می شود.

TXN.set_var(TXN، var، مقدار)
یک نوع Lua را به نوع HAProxy تبدیل می کند و آن را در یک متغیر ذخیره می کند .

استدلال

· txn (class_txn) -- شی کلاس txn حاوی داده ها.

· VAR (رشته) -- نام متغیر مطابق با متغیر HAProxy
نحو.

· ارزش (مات) -- داده ای که در متغیر ذخیره می شود.

TXN.get_var(TXN، var)
داده های ذخیره شده در مبدل متغیر در نوع Lua را برمی گرداند .

استدلال

· txn (class_txn) -- شی کلاس txn حاوی داده ها.

· VAR (رشته) -- نام متغیر مطابق با متغیر HAProxy
نحو.

TXN.get_headers(txn)
این تابع آرایه ای از هدرها را برمی گرداند.

استدلال

· txn (class_txn) -- شی کلاس txn حاوی داده ها.

بازده
آرایه ای از هدرها

TXN.done(txn)
این تابع پردازش تراکنش و جلسه مربوطه را خاتمه می دهد.
هنگامی که یک خطای بحرانی شناسایی می شود یا برای پایان دادن به پردازش پس از آن می توان از آن استفاده کرد
برخی از داده ها به مشتری بازگردانده شده است (به عنوان مثال: تغییر مسیر).

استدلال

· txn (class_txn) -- شی کلاس txn حاوی داده ها.

TXN.set_loglevel(txn، سطح log)
برای تغییر سطح گزارش درخواست فعلی استفاده می شود. "loglevel" باید یک باشد
عدد صحیح بین 0 تا 7

استدلال

· txn (class_txn) -- شی کلاس txn حاوی داده ها.

· سطح ورود (عدد صحیح) -- سطح گزارش مورد نیاز. این متغیر می تواند یکی از

دیدن هسته.

TXN.set_tos(txn، توس)
برای تنظیم مقدار فیلد TOS یا DSCP بسته هایی که به مشتری ارسال می شوند، استفاده می شود
مقدار به "tos" در سیستم عامل هایی که از این پشتیبانی می کنند منتقل می شود.

استدلال

· txn (class_txn) -- شی کلاس txn حاوی داده ها.

· به فرم خوانده شده (عدد صحیح) -- سیستم عامل جدید TOS DSCP.

TXN.set_mark(txn علامت گذاری)
برای تنظیم Netfilter MARK در تمام بسته های ارسال شده به مشتری به مقدار استفاده می شود
در پلتفرم‌هایی که از آن پشتیبانی می‌کنند به علامت "مارک" منتقل می‌شود.

استدلال

· txn (class_txn) -- شی کلاس txn حاوی داده ها.

· علامت (عدد صحیح) -- ارزش علامت.

کلاس سوکت ()
این کلاس باید با کلاس Lua Socket سازگار باشد. فقط "مشتری"
توابع در دسترس هستند. مستندات Lua Socket را ببینید:

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

Socket.close(سوکت)
یک شی TCP را می بندد. سوکت داخلی مورد استفاده توسط شی بسته و محلی است
آدرسی که شی به آن متصل شده است در دسترس سایر برنامه ها قرار می گیرد. خیر
عملیات بیشتر (به جز برای فراخوانی بیشتر به روش بسته) در a مجاز است
سوکت بسته

استدلال

· پریز (کلاس_سوکت) -- سوکت دستکاری شده است.

توجه: مهم است که تمام سوکت های استفاده شده را هنگامی که نیازی به آنها نیست، ببندید، زیرا، در
بسیاری از سیستم ها، هر سوکت از یک توصیفگر فایل استفاده می کند که سیستم محدود است
منابع اشیاء جمع آوری شده زباله به طور خودکار قبل از تخریب بسته می شوند.
گرچه.

Socket.connect(سوکت، نشانی[، بندر])
تلاش برای اتصال یک شی سوکت به یک میزبان راه دور.

در صورت بروز خطا، متد صفر را برمی گرداند و به دنبال آن یک رشته خطا را توصیف می کند.
در صورت موفقیت روش 1 را برمی گرداند.

استدلال

· پریز (کلاس_سوکت) -- سوکت دستکاری شده است.

· نشانی (رشته) -- می تواند یک آدرس IP یا یک نام میزبان باشد. زیر را ببینید
اطلاعات بیشتر.

· بندر (عدد صحیح) -- باید یک عدد صحیح در محدوده [1..64K] باشد.

بازده
1 یا صفر

یک پسوند فیلد آدرس اجازه استفاده از تابع connect() را برای اتصال به آن می دهد
جریانی غیر از TCP سینتکس حاوی یک آدرس simpleipv4 یا ipv6 است
اساسا قالب مورد انتظار این فرمت به پورت نیاز دارد.

فرمت دیگری که پذیرفته شده است یک مسیر سوکت مانند "/socket/path" است که اجازه اتصال را می دهد
به یک سوکت فضاهای نام انتزاعی با پیشوند "abns@" پشتیبانی می شوند و در نهایت
یک filedescriotr را می توان با پیشوند "fd@" ارسال کرد. پیشوند "ipv4@"، "ipv6@"
و "unix@" نیز پشتیبانی می شوند. پورت را می توان در رشته ارسال کرد. نحو
"127.0.0.1:1234" معتبر است. در این مورد، پارامتر بندر نادیده گرفته می شود

Socket.connect_ssl(سوکت، نشانی، پورت)
رفتار مشابه سوکت تابع: اتصال، اما از SSL استفاده می کند.

استدلال

· پریز (کلاس_سوکت) -- سوکت دستکاری شده است.

بازده
1 یا صفر

Socket.getpeername(socket)
اطلاعات مربوط به سمت راه دور یک شی مشتری متصل را برمی گرداند.

رشته ای را با آدرس IP همتا و به دنبال آن شماره پورت آن را برمی گرداند
peer برای اتصال استفاده می کند. در صورت بروز خطا، متد صفر را برمی گرداند.

استدلال

· پریز (کلاس_سوکت) -- سوکت دستکاری شده است.

بازده
رشته ای حاوی اطلاعات سرور

Socket.getsockname(سوکت)
اطلاعات آدرس محلی مرتبط با شی را برمی گرداند.

این روش یک رشته با آدرس IP محلی و یک عدد با پورت را برمی گرداند. که در
در صورت بروز خطا، روش صفر را برمی‌گرداند.

استدلال

· پریز (کلاس_سوکت) -- سوکت دستکاری شده است.

بازده
رشته ای حاوی اطلاعات مشتری

Socket.receive(Socket[, الگو[، پیشوند]])
داده ها را از یک شی مشتری، مطابق الگوی خواندن مشخص شده می خواند. الگوها
فرمت I/O فایل Lua و تفاوت عملکرد بین همه را دنبال کنید
الگوها ناچیز است

استدلال

· پریز (کلاس_سوکت) -- سوکت دستکاری شده است.

· الگو (رشته|عدد صحیح) -- آنچه مورد نیاز است را شرح دهید (به زیر مراجعه کنید).

· پیشوند (رشته) -- رشته ای که پیشوند داده های برگشتی خواهد بود.

بازده
رشته ای حاوی داده های مورد نیاز یا صفر.

الگو می تواند یکی از موارد زیر باشد:

·

"*a": می خواند از جانب la پریز تا la ارتباط is بسته نه
ترجمه پایان خط انجام می شود.

·

"*l": می خواند a خط of متن از جانب la سوکت. La خط is خاتمه داد by a
نویسه LF (ASCII 10)، که به صورت اختیاری با یک نویسه CR (ASCII 13) جلو می رود.
کاراکترهای CR و LF در خط برگشتی گنجانده نشده اند. در حقیقت،
همه کاراکترهای CR توسط الگو نادیده گرفته می شوند. این الگوی پیش فرض است.

·

عدد: علل la روش به خواندن a مشخص شده عدد of بایت از جانب la
سوکت. پیشوند یک رشته اختیاری است که باید به ابتدا متصل شود
از هر گونه داده دریافتی قبل از بازگشت

· خالی: اگر الگو خالی بماند، گزینه پیش فرض است *l.

در صورت موفقیت آمیز بودن، روش الگوی دریافتی را برمی گرداند. در صورت بروز خطا،
متد صفر را برمی گرداند و به دنبال آن یک پیغام خطایی که می تواند رشته "بسته" باشد را برمی گرداند
در مورد اتصال قبل از تکمیل انتقال یا رشته بسته شده است
"تایم اوت" در صورتی که در حین عملیات تایم اوت وجود داشته باشد. همچنین پس از خطا
پیام، تابع نتیجه جزئی انتقال را برمی گرداند.

نکته مهم: این عملکرد به شدت تغییر کرده است. قبلاً چندین مورد را پشتیبانی می کرد
الگوها (اما من هرگز ندیده ام که از این ویژگی استفاده شود) و اکنون دیگر استفاده نمی شود.
نتایج جزئی به همان روشی که نتایج موفقیت آمیز بود بازگردانده می شد. این
آخرین ویژگی این ایده را نقض کرد که همه توابع باید صفر را در صورت خطا برگردانند. بدین ترتیب
آن هم عوض شد

Socket.send(سوکت، داده ها[، شروع[، پایان]])
داده ها را از طریق شی مشتری ارسال می کند.

استدلال

· پریز (کلاس_سوکت) -- سوکت دستکاری شده است.

· داده ها (رشته) -- داده هایی که ارسال خواهد شد.

· شروع (عدد صحیح) -- موقعیت شروع در بافر داده که خواهد شد
ارسال شود.

· پایان (عدد صحیح) -- موقعیت انتهایی در بافر داده که خواهد بود
ارسال شد.

بازده
به زیر مراجعه کنید

داده رشته ای است که باید ارسال شود. آرگومان های اختیاری i و j دقیقاً شبیه به کار می کنند
تابع استاندارد string.sub Lua اجازه می دهد تا انتخاب رشته فرعی ارسال شود.

در صورت موفقیت آمیز بودن، این روش فهرست آخرین بایت را در [شروع، پایان] برمی گرداند.
که ارسال شده است. توجه داشته باشید که اگر شروع 1 باشد یا وجود نداشته باشد، این در واقع همان است
تعداد کل بایت های ارسال شده در صورت بروز خطا، متد صفر را برمی‌گرداند و به دنبال آن
یک پیام خطا، به دنبال آن فهرست آخرین بایت در [شروع، پایان] آن
فرستاده شده است. ممکن است بخواهید دوباره از بایت زیر آن را امتحان کنید. خطا
در صورتی که اتصال قبل از ارسال بسته شده باشد، پیام را می توان "بسته" کرد
تکمیل شد و یا رشته "تایم اوت" در صورتی که در طول زمان وقفه ای وجود داشت
عمل.

توجه: خروجی بافر نیست. برای رشته های کوچک، همیشه بهتر است به هم متصل شوند
آنها را در Lua (با اپراتور '..') و نتیجه را در یک تماس به جای ارسال ارسال کنید
چند بار فراخوانی متد

Socket.setoption(سوکت، گزینه[، مقدار])
فقط برای سازگاری پیاده سازی شده است، این cal هیچ کاری نمی کند.

Socket.settimeout(سوکت، مقدار[، حالت])
مقادیر تایم اوت شی را تغییر می دهد. تمام عملیات ورودی/خروجی مسدود شده است. که
است، هر تماسی با روش های ارسال، دریافت و پذیرش به طور نامحدود مسدود می شود،
تا زمانی که عملیات کامل شود. روش settimeout محدودیتی را برای مقدار تعیین می کند
مدت زمانی که روش های ورودی/خروجی می توانند مسدود شوند. هنگامی که یک بازه زمانی سپری شده است، آسیب دیده است
متدها با کد خطا تسلیم می شوند و شکست می خورند.

مدت زمان انتظار به عنوان پارامتر مقدار، بر حسب ثانیه مشخص می شود.

حالت های مهلت ربات اجرا می شوند، تنها مهلت زمانی قابل تنظیم عدم فعالیت است
زمان انتظار برای تکمیل ارسال بافر داخلی یا انتظار برای دریافت داده.

استدلال

· پریز (کلاس_سوکت) -- سوکت دستکاری شده است.

· ارزش (عدد صحیح) -- مقدار وقفه.

کلاس نقشه ()
این کلاس امکان جستجو در نقشه های HAProxy را می دهد. نقشه های اعلام شده می تواند باشد
در طول زمان اجرا از طریق سوکت مدیریت HAProxy اصلاح شده است.

پیش فرض = "USA"

- ایجاد و بارگذاری نقشه
geo = Map.new("geo.map", Map.ip);

- واکشی جدیدی ایجاد کنید که کشور کاربر را برمی گرداند
core.register_fetches("country"، function(txn)
محلی src;
مکان محلی؛

src = txn.f:fhdr("x-forwarded-for");
اگر (src == صفر) سپس
src = txn.f:src()
اگر (src == صفر) سپس
بازگشت پیش فرض؛
پایان
پایان

-- انجام جستجو
loc = geo:lookup(src);

اگر (loc == صفر) سپس
بازگشت پیش فرض؛
پایان

محل بازگشت؛
پایان)؛

Map.int
به فایل HAProxy configuration.txt، فصل "استفاده از ACL و واکشی نمونه" مراجعه کنید.
و فصل فرعی «مبانی ACL» برای درک این روش تطبیق الگو.

Map.ip به فایل HAProxy configuration.txt، فصل "استفاده از ACL و واکشی نمونه" مراجعه کنید.
و فصل فرعی «مبانی ACL» برای درک این روش تطبیق الگو.

Map.str
به فایل HAProxy configuration.txt، فصل "استفاده از ACL و واکشی نمونه" مراجعه کنید.
و فصل فرعی «مبانی ACL» برای درک این روش تطبیق الگو.

Map.beg
به فایل HAProxy configuration.txt، فصل "استفاده از ACL و واکشی نمونه" مراجعه کنید.
و فصل فرعی «مبانی ACL» برای درک این روش تطبیق الگو.

Map.sub
به فایل HAProxy configuration.txt، فصل "استفاده از ACL و واکشی نمونه" مراجعه کنید.
و فصل فرعی «مبانی ACL» برای درک این روش تطبیق الگو.

Map.dir
به فایل HAProxy configuration.txt، فصل "استفاده از ACL و واکشی نمونه" مراجعه کنید.
و فصل فرعی «مبانی ACL» برای درک این روش تطبیق الگو.

Map.dom
به فایل HAProxy configuration.txt، فصل "استفاده از ACL و واکشی نمونه" مراجعه کنید.
و فصل فرعی «مبانی ACL» برای درک این روش تطبیق الگو.

نقشه.پایان
به فایل HAProxy configuration.txt، فصل "استفاده از ACL و واکشی نمونه" مراجعه کنید.
و فصل فرعی «مبانی ACL» برای درک این روش تطبیق الگو.

Map.reg
به فایل HAProxy configuration.txt، فصل "استفاده از ACL و واکشی نمونه" مراجعه کنید.
و فصل فرعی «مبانی ACL» برای درک این روش تطبیق الگو.

Map.new(پرونده، روش)
یک نقشه ایجاد و بارگذاری می کند.

استدلال

· پرونده (رشته) -- آیا فایل حاوی نقشه است.

· روش (عدد صحیح) -- روش تطبیق الگوی نقشه است. صفات را ببینید
از کلاس نقشه

بازده
یک شیء Map کلاس.

دیدن ویژگی های نقشه

Map.lookup(map, خ)
جستجو در نقشه را انجام دهید.

استدلال

· نقشه (class_map) -- شیء کلاس Map است.

· خ (رشته) -- آیا رشته به عنوان کلید استفاده می شود.

بازده
رشته ای حاوی نتیجه یا در صورت عدم تطابق صفر.

Map.slookup(map, خ)
جستجو در نقشه را انجام دهید.

استدلال

· نقشه (class_map) -- شیء کلاس Map است.

· خ (رشته) -- آیا رشته به عنوان کلید استفاده می شود.

بازده
یک رشته حاوی نتیجه یا رشته خالی در صورت عدم تطابق.

کلاس AppletHTTP()
این کلاس با اپلت هایی که نیاز به حالت 'http' دارند استفاده می شود. اپلت http می تواند
ثبت شود با core.register_service() عملکرد. برای استفاده می شوند
پردازش یک درخواست http مانند یک سرور در پشت HAProxy.

این یک کد نمونه سلام جهان است:

core.register_service("hello-world"، "http"، function(applet)
پاسخ محلی = "سلام جهان!"
اپلت:set_status(200)
applet:add_header("طول محتوا"، string.len(پاسخ))
applet:add_header("نوع محتوا"، "متن/ساده")
applet:start_response()
applet:send (پاسخ)
پایان)

AppletHTTP.c

بازده
A مبدل کلاس

این ویژگی شامل یک شی کلاس Converters است.

AppletHTTP.sc

بازده
A مبدل کلاس

این ویژگی شامل یک شی کلاس Converters است. توابع این شی
همیشه یک رشته را برمی گرداند.

AppletHTTP.f

بازده
A واکشی ها کلاس

این ویژگی شامل یک شی کلاس Fetches است. توجه داشته باشید که اجرای اپلت
مکان نمی تواند به یک تراکنش معتبر HTTP هسته HAProxy دسترسی داشته باشد، بنابراین چند نمونه
اطلاعات مربوط به مقادیر وابسته به HTTP (hdr، مسیر، ...) در دسترس نیستند.

AppletHTTP.sf

بازده
A واکشی ها کلاس

این ویژگی شامل یک شی کلاس Fetches است. توابع این شی
همیشه یک رشته را برمی گرداند. توجه داشته باشید که محل اجرای اپلت نمی تواند به a دسترسی داشته باشد
تراکنش HTTP هسته HAProxy معتبر است، بنابراین برخی از نمونه‌های نمونه مربوط به HTTP هستند
مقادیر وابسته (hdr، مسیر، ...) در دسترس نیستند.

روش AppletHTTP

بازده
رشته

متد ویژگی رشته ای حاوی متد HTTP را برمی گرداند.

AppletHTTP.version

بازده
رشته

نسخه خصیصه، رشته ای حاوی نسخه درخواست HTTP را برمی گرداند.

AppletHTTP.path

بازده
رشته

مسیر ویژگی یک رشته حاوی مسیر درخواست HTTP را برمی‌گرداند.

AppletHTTP.qs

بازده
رشته

ویژگی qs یک رشته حاوی رشته درخواست HTTP را برمی‌گرداند.

AppletHTTP.length

بازده
عدد صحیح

صفت length یک عدد صحیح حاوی طول بدنه HTTP را برمی گرداند.

AppletHTTP.headers

بازده
صف

هدرهای مشخصه آرایه ای حاوی هدرهای HTTP را برمی گرداند. سربرگ
اسامی همیشه با حروف کوچک هستند. به عنوان نام سرصفحه را می توان بیش از
یک بار در هر درخواست، مقدار با 0 به عنوان اولین مقدار شاخص نمایه می شود. آرایه
این فرم را داشته باشید:

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

AppletHTTP.headers["host"][0] = "www.test.com"
AppletHTTP.headers["accept"][0] = "audio/basic q=1"
AppletHTTP.headers["accept"][1] = "audio/*, q=0.2"
AppletHTTP.headers["accept"][2] = "*/*, q=0.1"

AppletHTTP.headers
شامل یک آرایه حاوی تمام سرصفحه های درخواست است.

AppletHTTP.set_status(applet, کد)
این تابع کد وضعیت HTTP را برای پاسخ تنظیم می کند. کد مجاز از
100 به 599.

استدلال

· اپلت (class_AppletHTTP) -- یک AppletHTTP کلاس

· رمز (عدد صحیح) -- کد وضعیت به مشتری بازگردانده می شود.

AppletHTTP.add_header(applet, نام، مقدار)
این تابع یک هدر در پاسخ اضافه می کند. سرصفحه های تکراری جمع نمی شوند.
هدر ویژه طول محتوا برای تعیین طول پاسخ استفاده می شود. اگر این
وجود ندارد، الف انتقال-کدگذاری: تکه تکه شده تنظیم شده است، و تمام نوشتن از تابع
AppletHTTP:send() تبدیل شدن به یک تکه

استدلال

· اپلت (class_AppletHTTP) -- یک AppletHTTP کلاس

· نام (رشته) -- نام سرصفحه

· ارزش (رشته) -- مقدار سرصفحه

AppletHTTP.start_response (applet)
این تابع به موتور HTTP نشان می دهد که می تواند آن را پردازش و ارسال کند
سرصفحه های پاسخ پس از این فراخوانی، نمی‌توانیم هدرهایی را به پاسخ اضافه کنیم. ما
نمی تواند استفاده کند AppletHTTP:send() عملکرد اگر AppletHTTP:start_response() نیست
به نام

استدلال

· اپلت (class_AppletHTTP) -- یک AppletHTTP کلاس

AppletHTTP.getline (applet)
این تابع یک رشته حاوی یک خط از بدنه http برمی گرداند. اگر داده ها
برگردانده شده حاوی یک "\n" نهایی نیست
قبل از پایان جریان

استدلال

· اپلت (class_AppletHTTP) -- یک AppletHTTP کلاس

بازده
یک رشته. اگر به انتهای جریان برسیم، رشته می تواند خالی باشد.

AppletHTTP.receive(applet[, اندازه])
داده ها را از بدنه HTTP، مطابق با خواندن مشخص شده می خواند اندازه. اگر اندازه is
از دست رفته، تابع سعی می کند تمام محتوای جریان را تا پایان بخواند. اگر
la اندازه بزرگتر از بدنه http است، مقدار داده موجود را برمی گرداند.

استدلال

· اپلت (class_AppletHTTP) -- یک AppletHTTP کلاس

· اندازه (عدد صحیح) -- اندازه خواندن مورد نیاز.

بازده
همیشه یک رشته را برمی گرداند، رشته می تواند خالی باشد اگر اتصال بسته باشد.

AppletHTTP.send(applet, پیام)
ارسال پیام MSG در بدنه درخواست http.

استدلال

· اپلت (class_AppletHTTP) -- یک AppletHTTP کلاس

· MSG (رشته) -- پیامی که باید ارسال شود.

کلاس AppletTCP()
این کلاس برای اپلت هایی استفاده می شود که به حالت 'tcp' نیاز دارند. اپلت tcp می تواند باشد
ثبت شده در core.register_service() عملکرد. آنها برای پردازش استفاده می شوند
یک جریان tcp مانند یک سرور در پشت HAProxy.

AppletTCP.c

بازده
A مبدل کلاس

این ویژگی شامل یک شی کلاس Converters است.

AppletTCP.sc

بازده
A مبدل کلاس

این ویژگی شامل یک شی کلاس Converters است. توابع این شی
همیشه یک رشته را برمی گرداند.

AppletTCP.f

بازده
A واکشی ها کلاس

این ویژگی شامل یک شی کلاس Fetches است.

AppletTCP.sf

بازده
A واکشی ها کلاس

این ویژگی شامل یک شی کلاس Fetches است.

AppletTCP.getline (applet)
این تابع رشته ای حاوی یک خط از جریان را برمی گرداند. اگر داده ها
برگردانده شده حاوی یک "\n" نهایی نیست
قبل از پایان جریان

استدلال

· اپلت (class_AppletTCP) -- یک AppletTCP کلاس

بازده
یک رشته. اگر به انتهای جریان برسیم، رشته می تواند خالی باشد.

AppletTCP.receive(applet[, اندازه])
داده ها را از جریان TCP با توجه به خواندن مشخص شده می خواند اندازه. اگر اندازه
وجود ندارد، تابع سعی می کند تمام محتوای جریان را تا پایان بخواند.

استدلال

· اپلت (class_AppletTCP) -- یک AppletTCP کلاس

· اندازه (عدد صحیح) -- اندازه خواندن مورد نیاز.

بازده
همیشه یک رشته را برمی گرداند، رشته می تواند خالی باشد اگر اتصال بسته باشد.

AppletTCP.send(appletmsg)
پیام را در جریان ارسال کنید.

استدلال

· اپلت (class_AppletTCP) -- یک AppletTCP کلاس

· MSG (رشته) -- پیامی که باید ارسال شود.

بسیاری از کتابخانه های مفید lua را می توان در اینجا یافت:

· https://lua-toolbox.com/

Redis دسترسی دارد:

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

این یک مثال در مورد استفاده از کتابخانه Redis با HAProxy است. توجه داشته باشید که هر تماس
اگر اتصال سوکت از کار بیفتد، از هر عملکرد این کتابخانه می‌تواند خطا ایجاد کند.

-- بارگذاری کتابخانه redis
local redis = نیاز ("redis");

تابع do_something (txn)

-- ایجاد و اتصال سوکت tcp جدید
محلی tcp = core.tcp();
tcp:زمان استراحت(1)؛
tcp:connect("127.0.0.1"، 6379);

- از کتابخانه redis با این سوکت جدید استفاده کنید
local client = redis.connect({socket=tcp});
client:ping();

پایان

OpenSSL:

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

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

با استفاده از خدمات onworks.net از haproxy-lua آنلاین استفاده کنید


سرورها و ایستگاه های کاری رایگان

دانلود برنامه های ویندوز و لینوکس

  • 1
    Zabbix
    Zabbix
    Zabbix یک شرکت باز در کلاس سازمانی است
    منبع راه حل نظارتی توزیع شده
    طراحی شده برای نظارت و ردیابی
    عملکرد و در دسترس بودن شبکه
    سرور، دستگاه ...
    دانلود Zabbix
  • 2
    KDIFF3
    KDIFF3
    این مخزن دیگر نگهداری نمی شود
    و برای اهداف آرشیوی نگهداری می شود. دیدن
    https://invent.kde.org/sdk/kdiff3 for
    جدیدترین کد و
    https://download.kde.o...
    دانلود KDiff3
  • 3
    USBLoaderGX
    USBLoaderGX
    USBLoaderGX رابط کاربری گرافیکی است
    لودر USB Waninkoko بر اساس
    libwiigui. این اجازه می دهد تا لیست و
    راه اندازی بازی های Wii، بازی های Gamecube و
    homebrew در Wii و WiiU...
    USBLoaderGX را دانلود کنید
  • 4
    فایر فاکس
    فایر فاکس
    Firebird RDBMS ویژگی های ANSI SQL را ارائه می دهد
    و روی لینوکس، ویندوز و اجرا می شود
    چندین پلتفرم یونیکس امکانات
    همزمانی و عملکرد عالی
    & قدرت...
    Firebird را دانلود کنید
  • 5
    KompoZer
    KompoZer
    KompoZer یک ویرایشگر HTML wysiwyg است که از آن استفاده می کند
    پایگاه کد موزیلا کامپوزر مانند
    توسعه Nvu متوقف شده است
    در سال 2005، KompoZer بسیاری از باگ ها را برطرف کرد و
    اف می افزاید...
    دانلود KompoZer
  • 6
    دانلود مانگا رایگان
    دانلود مانگا رایگان
    دانلودر رایگان مانگا (FMD) یک برنامه است
    برنامه متن باز نوشته شده در
    Object-Pascal برای مدیریت و
    دانلود مانگا از وب سایت های مختلف
    این یک آینه است...
    دانلود رایگان مانگا دانلود
  • بیشتر "

دستورات لینوکس

Ad