haproxy-lua - ক্লাউডে অনলাইন

এটি হ্যাপ্রক্সি-লুয়া কমান্ড যা আমাদের একাধিক বিনামূল্যের অনলাইন ওয়ার্কস্টেশন যেমন উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটর ব্যবহার করে OnWorks ফ্রি হোস্টিং প্রদানকারীতে চালানো যেতে পারে।

কার্যক্রম:

NAME এর


হ্যাপ্রক্সি-লুয়া - হ্যাপ্রক্সি-লুয়া ডকুমেন্টেশন

হ্যাপ্রক্সি Lua রানার্স প্রসঙ্গ


HAProxy-এ সম্পাদিত Lua কোডটি 2টি প্রধান মোডে প্রসেস করা যেতে পারে। প্রথম এক হল
সূচনা মোড, এবং দ্বিতীয় হল রানটাইম মোড.

· মধ্যে সূচনা মোড, আমরা DNS সমাধান করতে পারি, কিন্তু আমরা সকেট I/O সম্পাদন করতে পারি না।
এই প্রারম্ভিক মোডে, HAProxy এখনও লুয়া কার্যকর করার সময় অবরুদ্ধ
প্রোগ্রাম.

· মধ্যে রানটাইম মোড, আমরা DNS সমাধান করতে পারি না, কিন্তু আমরা সকেট ব্যবহার করতে পারি। দ্য
লুয়া কোডের এক্সিকিউশন অনুরোধ প্রক্রিয়াকরণের সাথে মাল্টিপ্লেক্স করা হয়, তাই লুয়া কোড
ব্লকিং এ চালানো বলে মনে হচ্ছে, কিন্তু এটি এমন নয়।

লুয়া কোড এক বা একাধিক ফাইলে লোড করা হয়। এই ফাইলগুলিতে প্রধান কোড এবং ফাংশন রয়েছে।
Lua 6 মৃত্যুদন্ড প্রসঙ্গ আছে.

1. লুয়া ফাইল শরীর প্রসঙ্গ. লুয়া ফাইল লোড করার সময় এটি কার্যকর করা হয়
HAProxy [বিশ্বব্যাপী] নির্দেশ সহ বিভাগ lua- লোড. এটি শুরুতে কার্যকর করা হয়
মোড. এই বিভাগটি HAProxy-এ Lua বাইন্ডিং কনফিগার করার জন্য ব্যবহার করা হয়।

2. লুয়া এটা প্রসঙ্গ. এটি একটি লুয়া ফাংশন যা HAProxy-এর ঠিক পরেই সম্পাদিত হয়
কনফিগারেশন পার্সিং। সঞ্চালন শুরু মোডে আছে. এই প্রেক্ষাপটে
HAProxy পরিবেশ ইতিমধ্যেই শুরু করা হয়েছে। এটা কনফিগারেশন চেক দরকারী, বা
সকেট সংযোগ বা কাজ শুরু করা। এই ফাংশন শরীরের মধ্যে ঘোষণা করা হয়
লুয়া ফাংশনের সাথে প্রসঙ্গ core.register_init(). ফাংশনের প্রোটোটাইপ হল a
রিটার্ন মান ছাড়া এবং পরামিতি ছাড়া সহজ ফাংশন, এই মত: ক্রিয়া fcn().

3. লুয়া কাজের প্রসঙ্গ. এটি একটি Lua ফাংশন যা HAProxy শুরু হওয়ার পরে সম্পাদিত হয়
শিডিউলার, এবং লুয়া ফাংশন সহ টাস্ক ঘোষণার পরে
core.register_task(). এই প্রেক্ষাপট ট্রাফিক প্রক্রিয়াকরণের সাথে একযোগে হতে পারে। এটাই
রানটাইম মোডে কার্যকর করা হয়েছে। ফাংশন প্রোটোটাইপ ছাড়া একটি সহজ ফাংশন
রিটার্ন মান এবং পরামিতি ছাড়া, এই মত: ক্রিয়া fcn().

4. দ্য কর্ম প্রসঙ্গ. এটি শর্তসাপেক্ষে সম্পাদিত একটি Lua ফাংশন। এই কর্ম হয়
লুয়ার নির্দেশ দ্বারা নিবন্ধিত "core.register_action()". লুয়ার প্রোটোটাইপ
ফাংশন বলা হয় এমন একটি ফাংশন যা কিছু ফেরত দেয় না এবং এটি একটি বস্তু নেয়
ক্লাস TXN এন্ট্রি হিসাবে। ক্রিয়া fcn(txn).

5. দ্য নমুনা-আনয়ন প্রসঙ্গ. এই ফাংশনটি এন্ট্রি আর্গুমেন্ট হিসাবে একটি TXN অবজেক্ট নেয় এবং
একটি স্ট্রিং প্রদান করে। এই ধরনের ফাংশন কোন ব্লকিং ফাংশন চালাতে পারে না। তারা
কিছু মূল HAProxy নমুনা-আনয়ন একত্রিত করতে এবং ফলাফল ফেরত দিতে উপযোগী।
ফাংশনের প্রোটোটাইপ হল ক্রিয়া স্ট্রিং fcn(txn). এই ফাংশন হতে পারে
Lua ফাংশন সঙ্গে নিবন্ধিত core.register_fetches(). প্রতিটি ঘোষিত নমুনা-আনয়ন হয়
স্ট্রিং "lua" দ্বারা উপসর্গযুক্ত।

বিঃদ্রঃ: এটা সম্ভব যে এই ফাংশনটি মূলে প্রয়োজনীয় ডেটা খুঁজে পাবে না
HAProxy স্যাম্পল-ফেচ করে, এই ক্ষেত্রে, এটি ফলাফল ফেরত দিতে পারে না। এই মামলা এখনো হয়নি
সমর্থিত

6. দ্য পরিবর্তক প্রসঙ্গ. এটি একটি Lua ফাংশন যা ইনপুট হিসাবে একটি স্ট্রিং নেয় এবং রিটার্ন করে
আউটপুট হিসাবে আরেকটি স্ট্রিং। এই ধরনের ফাংশন রাষ্ট্রহীন, এটি অ্যাক্সেস করতে পারে না
কোনো প্রেক্ষাপট। তারা কোনো ব্লকিং ফাংশন চালায় না। কল প্রোটোটাইপ হয় ক্রিয়া
স্ট্রিং fcn(স্ট্রিং). এই ফাংশনটি লুয়া ফাংশনের সাথে নিবন্ধিত হতে পারে
core.register_converters(). প্রতিটি ঘোষিত রূপান্তরকারী স্ট্রিং "lua" দ্বারা উপসর্গযুক্ত।

হ্যাপ্রক্সি Lua হ্যালো বিশ্ব


HAProxy কনফিগারেশন ফাইল (hello_world.conf):

বিশ্বব্যাপী
lua-load hello_world.lua

প্রক্সি শুনুন
bind 127.0.0.1:10001
tcp-অনুরোধ পরিদর্শন-বিলম্ব 1s
tcp-অনুরোধের বিষয়বস্তু ব্যবহার-পরিষেবা lua.hello_world

HAProxy Lua ফাইল (hello_world.lua):

core.register_service("hello_world", "tcp", ফাংশন(অ্যাপ্লেট)
অ্যাপলেট: পাঠান("হ্যালো ওয়ার্ল্ড\n")
শেষ)

এই কনফিগারেশন পরীক্ষা করার জন্য HAProxy কিভাবে শুরু করবেন:

./haproxy -f hello_world.conf

অন্য টার্মিনালে, আপনি টেলনেট দিয়ে পরীক্ষা করতে পারেন:

#:~ টেলনেট 127.0.0.1 10001
ওহে বিশ্ব

শ্রেণী মূল()
"কোর" ক্লাসে সমস্ত HAProxy কোর ফাংশন রয়েছে। এই ফাংশন দরকারী
এক্সিকিউশন প্রবাহ নিয়ন্ত্রণের জন্য, হুক নিবন্ধন করা, বৈশ্বিক মানচিত্র ম্যানিপুলেট করা
বা ACL,...

"কোর" ক্লাসটি মূলত HAProxy দিয়ে দেওয়া হয়। না প্রয়োজন লাইন প্রয়োজন
এই ফাংশন ব্যবহার করে।

"কোর" শ্রেণীটি স্থির, এই ধরনের একটি নতুন বস্তু তৈরি করা সম্ভব নয়।

core.emerg

রিটার্নস বা মুনাফা
পূর্ণসংখ্যা

এই বৈশিষ্ট্যটি একটি পূর্ণসংখ্যা, এতে লগলেভেল "জরুরি" এর মান রয়েছে
(0).

core.alert

রিটার্নস বা মুনাফা
পূর্ণসংখ্যা

এই বৈশিষ্ট্যটি একটি পূর্ণসংখ্যা, এতে লগলেভেল "সতর্কতা" (1) এর মান রয়েছে।

core.crit

রিটার্নস বা মুনাফা
পূর্ণসংখ্যা

এই বৈশিষ্ট্যটি একটি পূর্ণসংখ্যা, এতে লগলেভেল "ক্রিটিকাল" (2) এর মান রয়েছে।

core.err

রিটার্নস বা মুনাফা
পূর্ণসংখ্যা

এই বৈশিষ্ট্যটি একটি পূর্ণসংখ্যা, এতে লগলেভেল "ত্রুটি" (3) এর মান রয়েছে।

core.warning

রিটার্নস বা মুনাফা
পূর্ণসংখ্যা

এই বৈশিষ্ট্যটি একটি পূর্ণসংখ্যা, এতে লগলেভেল "সতর্কতা" (4) এর মান রয়েছে।

core.notice

রিটার্নস বা মুনাফা
পূর্ণসংখ্যা

এই বৈশিষ্ট্যটি একটি পূর্ণসংখ্যা, এতে লগলেভেল "নোটিস" (5) এর মান রয়েছে।

core.info

রিটার্নস বা মুনাফা
পূর্ণসংখ্যা

এই বৈশিষ্ট্যটি একটি পূর্ণসংখ্যা, এতে লগলেভেল "তথ্য" (6) এর মান রয়েছে।

core.debug

রিটার্নস বা মুনাফা
পূর্ণসংখ্যা

এই বৈশিষ্ট্যটি একটি পূর্ণসংখ্যা, এতে লগলেভেল "ডিবাগ" (7) এর মান রয়েছে।

core.log(loglevel, বার্তা)
প্রসঙ্গ: বডি, ইনিট, টাস্ক, অ্যাকশন, স্যাম্পল-ফেচ, কনভার্টার

এই ফাংশন একটি লগ পাঠায়. লগ পাঠানো হয়, HAProxy অনুযায়ী
কনফিগারেশন ফাইল, ডিফল্ট syslog সার্ভারে যদি এটি কনফিগার করা থাকে এবং তে
stderr যদি এটি অনুমোদিত হয়।

আর্গুমেন্ট

· লগ স্তর (পূর্ণসংখ্যা) -- লগ লেভেল কি বার্তার সাথে যুক্ত। এটা
0 এবং 7 এর মধ্যে সংখ্যা।

· বার্তা (স্ট্রিং) -- লগ বিষয়বস্তু.

দেখ core.emerg, core.alert, core.crit, core.err, core.warning, core.notice,
core.info, core.debug (লগ স্তরের সংজ্ঞা)

দেখ কোড। ডিবাগ

দেখ মূল তথ্য

দেখ মূল। সতর্কতা

দেখ core.Alert

core.Debug(বার্তা)
প্রসঙ্গ: বডি, ইনিট, টাস্ক, অ্যাকশন, স্যাম্পল-ফেচ, কনভার্টার

আর্গুমেন্ট

· বার্তা (স্ট্রিং) -- লগ বিষয়বস্তু.

দেখ লগ ইন করুন

এর চেয়ে একই কাজ করে:

ক্রিয়া ডেবাগ্ করা(বার্তা)
core.log(core.debug, msg)
শেষ

মূল তথ্য(বার্তা)
প্রসঙ্গ: বডি, ইনিট, টাস্ক, অ্যাকশন, স্যাম্পল-ফেচ, কনভার্টার

আর্গুমেন্ট

· বার্তা (স্ট্রিং) -- লগ বিষয়বস্তু.

দেখ লগ ইন করুন

ক্রিয়া তথ্য(বার্তা)
core.log(core.info, msg)
শেষ

মূল। সতর্কতা(বার্তা)
প্রসঙ্গ: বডি, ইনিট, টাস্ক, অ্যাকশন, স্যাম্পল-ফেচ, কনভার্টার

আর্গুমেন্ট

· বার্তা (স্ট্রিং) -- লগ বিষয়বস্তু.

দেখ লগ ইন করুন

ক্রিয়া সতর্কতা(বার্তা)
core.log(core.warning, msg)
শেষ

core.Alert(বার্তা)
প্রসঙ্গ: বডি, ইনিট, টাস্ক, অ্যাকশন, স্যাম্পল-ফেচ, কনভার্টার

আর্গুমেন্ট

· বার্তা (স্ট্রিং) -- লগ বিষয়বস্তু.

দেখ লগ ইন করুন

ক্রিয়া সতর্ক(বার্তা)
core.log(core.alert, msg)
শেষ

core.add_acl(ফাইলের নাম, চাবি)
প্রসঙ্গ: init, টাস্ক, কর্ম, নমুনা-আনয়ন, রূপান্তরকারী

ACL যোগ করুন চাবি ফাইল দ্বারা উল্লেখ করা ACLs তালিকায় ফাইলের নাম.

আর্গুমেন্ট

· ফাইলের নাম (স্ট্রিং) -- ফাইলের নাম যা ACL এন্ট্রির উল্লেখ করে।

· চাবি (স্ট্রিং) -- কী যোগ করা হবে।

core.del_acl(ফাইলের নাম, চাবি)
প্রসঙ্গ: init, টাস্ক, কর্ম, নমুনা-আনয়ন, রূপান্তরকারী

কী দ্বারা উল্লেখ করা ACL এন্ট্রি মুছুন চাবি ACL এর তালিকায় উল্লেখ করা হয়েছে
ফাইলের নাম.

আর্গুমেন্ট

· ফাইলের নাম (স্ট্রিং) -- ফাইলের নাম যা ACL এন্ট্রির উল্লেখ করে।

· চাবি (স্ট্রিং) -- কী যা মুছে ফেলা হবে।

core.del_map(ফাইলের নাম, চাবি)
প্রসঙ্গ: init, টাস্ক, কর্ম, নমুনা-আনয়ন, রূপান্তরকারী

উল্লেখিত মানচিত্রের তালিকায় নির্দিষ্ট কী দিয়ে সূচীকৃত মানচিত্র এন্ট্রি মুছুন
তার ফাইলের নাম দ্বারা।

আর্গুমেন্ট

· ফাইলের নাম (স্ট্রিং) -- ফাইলের নাম যা ম্যাপ এন্ট্রির উল্লেখ করে।

· চাবি (স্ট্রিং) -- কী যা মুছে ফেলা হবে।

core.msleep(মিলিসেকেন্ড)
প্রসঙ্গ: শরীর, ইনিট, টাস্ক, অ্যাকশন

সার্জারির core.msleep() নির্দিষ্ট মিলিসেকেন্ডের মধ্যে লুয়া এক্সিকিউশন বন্ধ করে।

আর্গুমেন্ট

· মিলিসেকেন্ড (পূর্ণসংখ্যা) -- প্রয়োজনীয় মিলিসেকেন্ড।

core.register_action(নাম, ক্রিয়া, ফাংশন)
প্রসঙ্গ: শরীর

অ্যাকশন হিসাবে সম্পাদিত একটি Lua ফাংশন নিবন্ধন করুন। সমস্ত নিবন্ধিত কর্ম ব্যবহার করা যেতে পারে
HAProxy-এ "lua" উপসর্গ সহ। একটি ক্রিয়া ইনপুট হিসাবে একটি TXN অবজেক্ট ক্লাস পায়।

আর্গুমেন্ট

· নাম (স্ট্রিং) -- রূপান্তরকারীর নাম।

· স্টক (টেবিল) -- HAProxy অ্যাকশন কে বর্ণনা করে স্ট্রিং এর একটি টেবিল
নিবন্ধন করতে চান. প্রত্যাশিত ক্রিয়াগুলি হল 'tcp-req', 'tcp-res',
'http-req' বা 'http-res'।

· ফাংশন (ক্রিয়া) -- রূপান্তরকারী হিসাবে কাজ করার জন্য বলা হয় Lua ফাংশন।

আর্গুমেন্ট হিসাবে ব্যবহৃত Lua ফাংশনের প্রোটোটাইপ হল:

ফাংশন (txn)

·

txn (TXN শ্রেণী): এই is a TXN লক্ষ্য ব্যবহৃত উন্নত হেরফের দ্য
বর্তমান অনুরোধ বা TCP স্ট্রীম।

এখানে, কর্ম নিবন্ধন একটি উদাহরণ. অ্যাকশন জাস্টে একটি 'হ্যালো ওয়ার্ল্ড' পাঠান
লগ

core.register_action("হ্যালো-ওয়ার্ল্ড", { "tcp-req", "http-req" }, ফাংশন(txn)
txn: তথ্য("হ্যালো ওয়ার্ল্ড")
শেষ)
এই উদাহরণ কোডটি HAproxy কনফিগারেশনে এইরকম ব্যবহার করা হয়:

ফ্রন্টএন্ড tcp_frt
মোড টিসিপি
tcp-অনুরোধের সামগ্রী lua.hello-world

ফ্রন্টএন্ড http_frt
মোড http
http-request lua.hello-world

core.register_converters(নাম, ফাংশন)
প্রসঙ্গ: শরীর

রূপান্তরকারী হিসাবে সম্পাদিত একটি Lua ফাংশন নিবন্ধন করুন। সব নিবন্ধিত রূপান্তরকারী হতে পারে
HAProxy-এ "lua" উপসর্গ সহ ব্যবহৃত হয়। একটি রূপান্তরকারী ইনপুট হিসাবে একটি স্ট্রিং পেতে এবং
আউটপুট হিসাবে একটি স্ট্রিং ফেরত দিন। নিবন্ধিত ফাংশন হিসাবে 9 মান পর্যন্ত নিতে পারে
প্যারামিটার সব মান স্ট্রিং হয়.

আর্গুমেন্ট

· নাম (স্ট্রিং) -- রূপান্তরকারীর নাম।

· ফাংশন (ক্রিয়া) -- রূপান্তরকারী হিসাবে কাজ করার জন্য বলা হয় Lua ফাংশন।

আর্গুমেন্ট হিসাবে ব্যবহৃত Lua ফাংশনের প্রোটোটাইপ হল:

ফাংশন(str, [p1 [, p2 [, ... [, p5]]]])

· Str (স্ট্রিং): এটি স্বয়ংক্রিয়ভাবে স্ট্রিং-এ রূপান্তরিত ইনপুট মান।

· 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("হ্যালো", ফাংশন(txn)
"হ্যালো" ফিরে
শেষ)
HAProxy উদাহরণ কনফিগারেশন:

ফ্রন্টএন্ড উদাহরণ
http-রিকোয়েস্ট রিডাইরেক্ট লোকেশন /%[lua.hello]

core.register_service(নাম, মোড, ফাংশন)
প্রসঙ্গ: শরীর

একটি পরিষেবা হিসাবে সম্পাদিত একটি Lua ফাংশন নিবন্ধন করুন৷ সব নিবন্ধিত সেবা হতে পারে
HAProxy-এ "lua" উপসর্গ সহ ব্যবহৃত হয়। একটি পরিষেবা ইনপুট হিসাবে একটি অবজেক্ট ক্লাস পায়
প্রয়োজনীয় মোড অনুযায়ী।

আর্গুমেন্ট

· নাম (স্ট্রিং) -- রূপান্তরকারীর নাম।

· মোড (স্ট্রিং) -- স্ট্রিং প্রয়োজনীয় মোড বর্ণনা করছে। শুধুমাত্র 'tcp' বা
'http' অনুমোদিত।

· ফাংশন (ক্রিয়া) -- রূপান্তরকারী হিসাবে কাজ করার জন্য বলা হয় Lua ফাংশন।

আর্গুমেন্ট হিসাবে ব্যবহৃত Lua ফাংশনের প্রোটোটাইপ হল:

ফাংশন (অ্যাপ্লেট)

· অ্যাপলেট অ্যাপলেট হবে a অ্যাপলেটটিসিপি শ্রেণী বা একটি অ্যাপলেটএইচটিটিপি শ্রেণী. এটা টাইপ নির্ভর করে
নিবন্ধিত অ্যাপলেটের। এর জন্য 'http' মান সহ নিবন্ধিত একটি অ্যাপলেট মোড
পরামিতি a পাবে অ্যাপলেটএইচটিটিপি শ্রেণী। যদি মোড মান 'tcp', অ্যাপলেট হবে
পায় a অ্যাপলেটটিসিপি শ্রেণী.

সতর্কবার্তা: 'http' টাইপের অ্যাপলেটগুলি 'tcp-' থেকে কল করা যাবে না' নিয়মাবলী কেবল দ্য 'http-'
রুলসেট অনুমোদিত, এর মানে হল একটি থেকে একটি HTTP অ্যাপলেট কল করা সম্ভব নয়
tcp মোডে প্রক্সি। 'tcp' টাইপের অ্যাপলেট যে কোনো জায়গা থেকে কল করা যেতে পারে।

এখানে, পরিষেবা নিবন্ধন একটি উদাহরণ. পরিষেবাটি কেবল একটি 'হ্যালো ওয়ার্ল্ড' একটি হিসাবে পাঠায়
http প্রতিক্রিয়া।

core.register_service("হ্যালো-ওয়ার্ল্ড", "http", ফাংশন(অ্যাপ্লেট)
স্থানীয় প্রতিক্রিয়া = "হ্যালো ওয়ার্ল্ড!"
অ্যাপলেট:সেট_স্ট্যাটাস(200)
applet:add_header("সামগ্রী-দৈর্ঘ্য", string.len(প্রতিক্রিয়া))
applet:add_header("কন্টেন্ট-টাইপ", "টেক্সট/প্লেইন")
applet:start_response()
অ্যাপলেট: পাঠান (প্রতিক্রিয়া)
শেষ)
এই উদাহরণ কোডটি HAproxy কনফিগারেশনে এইরকম ব্যবহার করা হয়:

ফ্রন্টএন্ড উদাহরণ
http-অনুরোধ ব্যবহার-পরিষেবা lua.hello-world

core.register_init(func)
প্রসঙ্গ: শরীর

কনফিগারেশন পার্সিংয়ের পরে কার্যকর করা একটি ফাংশন নিবন্ধন করুন। এই জন্য দরকারী
কোনো পরামিতি পরীক্ষা করুন।

আর্গুমেন্ট

· ফাংশন (ক্রিয়া) -- লুয়া ফাংশনকে ইনিশিয়ালাইজার হিসাবে কাজ করতে বলা হয়।

আর্গুমেন্ট হিসাবে ব্যবহৃত Lua ফাংশনের প্রোটোটাইপ হল:

ফাংশন()
এটা কোন ইনপুট লাগে, এবং কোন আউটপুট প্রত্যাশিত.

core.register_task(func)
প্রসঙ্গ: বডি, ইনিট, টাস্ক, অ্যাকশন, স্যাম্পল-ফেচ, কনভার্টার

নিবন্ধন করুন এবং স্বাধীন কাজ শুরু করুন। কাজ শুরু হয় যখন HAProxy প্রধান
সময়সূচী শুরু হয়। উদাহরণস্বরূপ, এই ধরনের কাজগুলি জটিল সঞ্চালনের জন্য কার্যকর করা যেতে পারে
স্বাস্থ্য পরীক্ষা

আর্গুমেন্ট

· ফাংশন (ক্রিয়া) -- লুয়া ফাংশনকে ইনিশিয়ালাইজার হিসাবে কাজ করতে বলা হয়।

আর্গুমেন্ট হিসাবে ব্যবহৃত Lua ফাংশনের প্রোটোটাইপ হল:

ফাংশন()
এটা কোন ইনপুট লাগে, এবং কোন আউটপুট প্রত্যাশিত.

core.set_nice(ভালো)
প্রসঙ্গ: টাস্ক, অ্যাকশন, নমুনা-আনয়ন, রূপান্তরকারী

বর্তমান টাস্ক বা বর্তমান সেশনের সুন্দর পরিবর্তন করুন।

আর্গুমেন্ট

· সুন্দর (পূর্ণসংখ্যা) -- চমৎকার মান, এটি অবশ্যই -1024 এবং 1024 এর মধ্যে হতে হবে।

core.set_map(ফাইলের নাম, চাবি, মান)
প্রসঙ্গ: init, টাস্ক, কর্ম, নমুনা-আনয়ন, রূপান্তরকারী

মান সেট করুন মূল্য চাবির সাথে যুক্ত চাবি দ্বারা উল্লেখ করা মানচিত্রে ফাইলের নাম.

আর্গুমেন্ট

· ফাইলের নাম (স্ট্রিং) -- মানচিত্র রেফারেন্স

· চাবি (স্ট্রিং) -- সেট বা প্রতিস্থাপনের কী

· মূল্য (স্ট্রিং) -- সংশ্লিষ্ট মান

core.sleep(int সেকেন্ড)
প্রসঙ্গ: শরীর, ইনিট, টাস্ক, অ্যাকশন

সার্জারির core.sleep() ফাংশন নির্দিষ্ট সেকেন্ডের মধ্যে লুয়া এক্সিকিউশন বন্ধ করে।

আর্গুমেন্ট

· সেকেন্ড (পূর্ণসংখ্যা) -- প্রয়োজনীয় সেকেন্ড।

core.tcp()
প্রসঙ্গ: init, কাজ, কর্ম

এই ফাংশন a এর একটি নতুন অবজেক্ট প্রদান করে সকেট বর্গ.

রিটার্নস বা মুনাফা
A সকেট শ্রেণী অবজেক্ট।

core.done(ডেটা)
প্রসঙ্গ: বডি, ইনিট, টাস্ক, অ্যাকশন, স্যাম্পল-ফেচ, কনভার্টার

আর্গুমেন্ট

· উপাত্ত (কোন) -- কলারের জন্য কিছু ডেটা ফেরত দিন। এর সাথে উপকারী
নমুনা-আনয়ন এবং নমুনা-রূপান্তরকারী।

অবিলম্বে বর্তমান লুয়া মৃত্যুদন্ড বন্ধ করে এবং কলকারীর কাছে ফিরে আসে যা হতে পারে
একটি নমুনা আনয়ন, একটি রূপান্তরকারী বা একটি ক্রিয়া এবং নির্দিষ্ট মান প্রদান করে (উপেক্ষিত
কর্মের জন্য)। এটি ব্যবহার করা হয় যখন LUA প্রক্রিয়া তার কাজ শেষ করে এবং দিতে চায়
অবশিষ্ট কোড নির্বাহ না করে HAProxy-এ নিয়ন্ত্রণ ফিরিয়ে দিন। হিসেবে দেখা যায়
একটি বহু-স্তরের "রিটার্ন"।

core.yield()
প্রসঙ্গ: টাস্ক, অ্যাকশন, নমুনা-আনয়ন, রূপান্তরকারী

HAProxy শিডিউলারে হাত ফিরিয়ে দিন। LUA প্রক্রিয়াকরণের সময় এটি ব্যবহার করা হয়
প্রক্রিয়াকরণের অনেক সময় ব্যয় করে।

শ্রেণী আনয়ন()
এই ক্লাসে প্রচুর অভ্যন্তরীণ HAProxy নমুনা পাওয়া যায়। HAProxy দেখুন
তার ব্যবহার সম্পর্কে আরও তথ্যের জন্য "configuration.txt" ডকুমেন্টেশন। তারা
অধ্যায় 7.3.2 থেকে 7.3.6।

সতর্কবার্তা কিছু নমুনা কিছু প্রসঙ্গে পাওয়া যায় না। এই সীমাবদ্ধতা
এই ডকুমেন্টেশনে নির্দিষ্ট করা হয় যখন তারা দরকারী।

দেখ TXN.f

দেখ TXN.sf

আনার জন্য দরকারী:

· সিস্টেম সময় পান,

· পরিবেশ পরিবর্তনশীল পান,

· এলোমেলো নম্বর পান,

· পরিচিত ব্যাকএন্ড স্ট্যাটাস যেমন সারিতে থাকা ব্যবহারকারীর সংখ্যা বা সংখ্যা
সংযোগ স্থাপন,

· ক্লায়েন্ট তথ্য যেমন আইপি উৎস বা গন্তব্য,

· লাঠি টেবিলের সাথে মোকাবিলা করা,

· প্রতিষ্ঠিত SSL তথ্য,

· হেডার বা পদ্ধতির মত HTTP তথ্য।

ফাংশন অ্যাকশন (txn)
-- উৎস আইপি পান
স্থানীয় ক্লায়েন্ট = txn.f:src()
শেষ

শ্রেণী রূপান্তরকারী()
এই ক্লাসে প্রচুর অভ্যন্তরীণ HAProxy নমুনা রূপান্তরকারী রয়েছে। HAProxy দেখুন
তার ব্যবহার সম্পর্কে আরও তথ্যের জন্য ডকুমেন্টেশন "configuration.txt"। এর
অধ্যায় 7.3.1.

দেখ TXN.c

দেখ TXN.sc

রূপান্তরকারী রাষ্ট্রীয় রূপান্তর প্রদান করে। তারা এর জন্য দরকারী:

· ইনপুটকে base64-এ রূপান্তর করা,

· ইনপুট স্ট্রিং এ হ্যাশ প্রয়োগ করা হচ্ছে (djb2, crc32, sdbm, wt6),

· বিন্যাস তারিখ,

জসন পালানো,

দুটি তালিকার তুলনা করে পছন্দের ভাষা বের করা,

· নীচের বা উপরের অক্ষরে ঘুরুন,

· স্টিক টেবিলের সাথে ডিল করুন।

শ্রেণী চ্যানেল()
HAProxy অনুরোধের প্রক্রিয়াকরণের জন্য দুটি বাফার ব্যবহার করে। প্রথমটি ব্যবহার করা হয়
অনুরোধের ডেটা সহ (ক্লায়েন্ট থেকে সার্ভারে) এবং দ্বিতীয়টির জন্য ব্যবহৃত হয়
প্রতিক্রিয়া ডেটা (সার্ভার থেকে ক্লায়েন্টে)।

প্রতিটি বাফারে দুই ধরনের ডেটা থাকে। প্রথম প্রকার ইনকামিং ডাটা ওয়েটিং
একটি প্রক্রিয়াকরণের জন্য। দ্বিতীয় অংশটি ইতিমধ্যে প্রক্রিয়াকৃত বহির্গামী ডেটা। সাধারণত,
আগত ডেটা প্রক্রিয়া করা হয়, এটি বহির্গামী ডেটা হিসাবে ট্যাগ করার পরে এবং অবশেষে এটি
পাঠানো হয়. নিম্নলিখিত ফাংশনগুলি এই ডেটাগুলিকে একটি এ ম্যানিপুলেট করার জন্য সরঞ্জাম সরবরাহ করে
বাফার।

নিচের চিত্রটি দেখায় যেখানে চ্যানেল ক্লাস ফাংশন প্রয়োগ করা হয়।

সতর্কতা: রিকোয়েস্ট অ্যাকশনে প্রতিক্রিয়া থেকে পড়া সম্ভব নয়, এবং তা হয়
প্রতিক্রিয়া অ্যাকশনে অনুরোধ চ্যানেলের জন্য পড়া সম্ভব নয়।
[ছবি]

Channel.dup(চ্যানেল)
এই ফাংশনটি একটি স্ট্রিং প্রদান করে যাতে পুরো বাফার থাকে। তথ্য নেই
বাফার থেকে সরান এবং পরে পুনরায় প্রক্রিয়া করা যেতে পারে।

যদি বাফারটি আরও ডেটা গ্রহণ করতে না পারে তবে একটি 'শূন্য' মান ফেরত দেওয়া হয়।

আর্গুমেন্ট

· চ্যানেল (ক্লাস_চ্যানেল) -- চালিত চ্যানেল।

রিটার্নস বা মুনাফা
একটি স্ট্রিং যাতে সমস্ত উপলব্ধ ডেটা বা শূন্য থাকে।

Channel.get(চ্যানেল)
এই ফাংশনটি একটি স্ট্রিং প্রদান করে যাতে পুরো বাফার থাকে। ডেটা খরচ হয়
বাফার থেকে

যদি বাফারটি আরও ডেটা গ্রহণ করতে না পারে তবে একটি 'শূন্য' মান ফেরত দেওয়া হয়।

আর্গুমেন্ট

· চ্যানেল (ক্লাস_চ্যানেল) -- চালিত চ্যানেল।

রিটার্নস বা মুনাফা
একটি স্ট্রিং যাতে সমস্ত উপলব্ধ ডেটা বা শূন্য থাকে।

Channel.getline(চ্যানেল)
এই ফাংশনটি একটি স্ট্রিং প্রদান করে যাতে বাফারের প্রথম লাইন থাকে। তথ্যটি
খাওয়া হয় যদি প্রত্যাবর্তিত ডেটাতে একটি চূড়ান্ত 'n' না থাকে তবে এটি এর চেয়ে অনুমান করা হয়
বাফারে সর্বশেষ উপলব্ধ ডেটা।

যদি বাফারটি আরও ডেটা গ্রহণ করতে না পারে তবে একটি 'শূন্য' মান ফেরত দেওয়া হয়।

আর্গুমেন্ট

· চ্যানেল (ক্লাস_চ্যানেল) -- চালিত চ্যানেল।

রিটার্নস বা মুনাফা
উপলব্ধ লাইন বা শূন্য ধারণকারী একটি স্ট্রিং।

Channel.set(চ্যানেল, স্ট্রিং)
এই ফাংশনটি স্ট্রিং দ্বারা বাফারের বিষয়বস্তু প্রতিস্থাপন করে। ফাংশন রিটার্ন
অনুলিপি করা দৈর্ঘ্য, অন্যথায়, এটি -1 প্রদান করে।

এই ফাংশন সহ ডেটা সেট পাঠানো হয় না। তারা HAProxy শেষ হওয়ার জন্য অপেক্ষা করছে
প্রক্রিয়াকরণ, যাতে বাফার পূর্ণ হতে পারে।

আর্গুমেন্ট

· চ্যানেল (ক্লাস_চ্যানেল) -- চালিত চ্যানেল।

· স্ট্রিং (স্ট্রিং) -- যে ডেটা পাঠানো হবে।

রিটার্নস বা মুনাফা
কপি করা বাইট পরিমাণ বা -1 ধারণকারী একটি পূর্ণসংখ্যা.

Channel.append(চ্যানেল, স্ট্রিং)
এই ফাংশনটি বাফারের বিষয়বস্তুর সাথে স্ট্রিং আর্গুমেন্ট যুক্ত করে। কাজ
অনুলিপি করা দৈর্ঘ্য ফেরত দেয়, অন্যথায়, এটি -1 প্রদান করে।

এই ফাংশন সহ ডেটা সেট পাঠানো হয় না। তারা HAProxy শেষ হওয়ার জন্য অপেক্ষা করছে
প্রক্রিয়াকরণ, যাতে বাফার পূর্ণ হতে পারে।

আর্গুমেন্ট

· চ্যানেল (ক্লাস_চ্যানেল) -- চালিত চ্যানেল।

· স্ট্রিং (স্ট্রিং) -- যে ডেটা পাঠানো হবে।

রিটার্নস বা মুনাফা
কপি করা বাইট পরিমাণ বা -1 ধারণকারী একটি পূর্ণসংখ্যা.

Channel.send(চ্যানেল, স্ট্রিং)
এই ফাংশনের জন্য অবিলম্বে ডেটা পাঠানোর প্রয়োজন। সংযোগ না থাকলে
বন্ধ করুন, বাফার নিয়মিতভাবে ফ্লাশ করা হয় এবং সমস্ত স্ট্রিং পাঠানো যেতে পারে।

আর্গুমেন্ট

· চ্যানেল (ক্লাস_চ্যানেল) -- চালিত চ্যানেল।

· স্ট্রিং (স্ট্রিং) -- যে ডেটা পাঠানো হবে।

রিটার্নস বা মুনাফা
কপি করা বাইট পরিমাণ বা -1 ধারণকারী একটি পূর্ণসংখ্যা.

Channel.get_in_length(চ্যানেল)
এই ফাংশনটি বাফারের ইনপুট অংশের দৈর্ঘ্য প্রদান করে।

আর্গুমেন্ট

· চ্যানেল (ক্লাস_চ্যানেল) -- চালিত চ্যানেল।

রিটার্নস বা মুনাফা
উপলব্ধ বাইটের পরিমাণ ধারণকারী একটি পূর্ণসংখ্যা।

Channel.get_out_length(চ্যানেল)
এই ফাংশনটি বাফারের আউটপুট অংশের দৈর্ঘ্য প্রদান করে।

আর্গুমেন্ট

· চ্যানেল (ক্লাস_চ্যানেল) -- চালিত চ্যানেল।

রিটার্নস বা মুনাফা
উপলব্ধ বাইটের পরিমাণ ধারণকারী একটি পূর্ণসংখ্যা।

Channel.forward(চ্যানেল, int)
এই ফাংশনটি বাফারের ইনপুট অংশ থেকে আউটপুট অংশে বাইট স্থানান্তর করে।

আর্গুমেন্ট

· চ্যানেল (ক্লাস_চ্যানেল) -- চালিত চ্যানেল।

· কোন 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["স্বীকার করুন"][0] = "অডিও/বেসিক q=1"
hdr["স্বীকার করুন"][1] = "অডিও/*, q=0.2"
hdr["স্বীকার করুন"][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["স্বীকার করুন"][0] = "অডিও/বেসিক q=1"
hdr["স্বীকার করুন"][1] = "অডিও/*, q=0.2"
hdr["স্বীকার করুন"][2] = "*.*, q=0.1"

HTTP.req_add_header(http, নাম, মান)
অনুরোধে একটি HTTP শিরোনাম ক্ষেত্র যোগ করে যার নাম "নাম" এ উল্লেখ করা হয়েছে এবং
যার মান "মান" এ সংজ্ঞায়িত করা হয়েছে।

আর্গুমেন্ট

· HTTP (class_http) -- সম্পর্কিত http অবজেক্ট।

· নাম (স্ট্রিং) -- হেডারের নাম।

· মূল্য (স্ট্রিং) -- হেডার মান।

দেখ HTTP.res_add_header()

HTTP.res_add_header(http, নাম, মান)
প্রতিক্রিয়াতে একটি HTTP শিরোনাম ক্ষেত্র যুক্ত করে যার নাম "নাম" এ উল্লেখ করা হয়েছে এবং
যার মান "মান" এ সংজ্ঞায়িত করা হয়েছে।

আর্গুমেন্ট

· HTTP (class_http) -- সম্পর্কিত http অবজেক্ট।

· নাম (স্ট্রিং) -- হেডারের নাম।

· মূল্য (স্ট্রিং) -- হেডার মান।

দেখ HTTP.req_add_header()

HTTP.req_del_header(http, নাম)
অনুরোধের সমস্ত HTTP শিরোনাম ক্ষেত্র মুছে দেয় যার নাম "নাম" এ উল্লেখ করা আছে।

আর্গুমেন্ট

· HTTP (class_http) -- সম্পর্কিত http অবজেক্ট।

· নাম (স্ট্রিং) -- হেডারের নাম।

দেখ HTTP.res_del_header()

HTTP.res_del_header(http, নাম)
প্রতিক্রিয়ার সমস্ত HTTP শিরোনাম ক্ষেত্রগুলি সরিয়ে দেয় যার নাম "নাম" এ নির্দিষ্ট করা আছে।

আর্গুমেন্ট

· HTTP (class_http) -- সম্পর্কিত http অবজেক্ট।

· নাম (স্ট্রিং) -- হেডারের নাম।

দেখ HTTP.req_del_header()

HTTP.req_set_header(http, নাম, মান)
এই ভেরিয়েবলটি সমস্ত শিরোনাম "নাম" এর সমস্ত ঘটনা প্রতিস্থাপন করে, শুধুমাত্র একটি ধারণ করে
মূল্য".

আর্গুমেন্ট

· HTTP (class_http) -- সম্পর্কিত http অবজেক্ট।

· নাম (স্ট্রিং) -- হেডারের নাম।

· মূল্য (স্ট্রিং) -- হেডার মান।

দেখ HTTP.res_set_header()

এই ফাংশনটি অনুসরণকারী কোডের মতো একই কাজ করে:

ফাংশন fcn(txn)
TXN.http:req_del_header("হেডার")
TXN.http:req_add_header("হেডার", "মান")
শেষ

HTTP.res_set_header(http, নাম, মান)
এই ভেরিয়েবলটি সমস্ত শিরোনাম "নাম" এর সমস্ত ঘটনা প্রতিস্থাপন করে, শুধুমাত্র একটি ধারণ করে
মূল্য".

আর্গুমেন্ট

· HTTP (class_http) -- সম্পর্কিত http অবজেক্ট।

· নাম (স্ট্রিং) -- হেডারের নাম।

· মূল্য (স্ট্রিং) -- হেডার মান।

দেখ HTTP.req_rep_header()

HTTP.req_rep_header(http, নাম, regex, প্রতিস্থাপন)
শিরোনাম ক্ষেত্রের "নাম" অনুযায়ী সমস্ত ঘটনার রেগুলার এক্সপ্রেশনের সাথে মেলে
"regex" এ, এবং "প্রতিস্থাপন" যুক্তি দিয়ে তাদের প্রতিস্থাপন করে। প্রতিস্থাপন মান
1, 2, ... এই ফাংশন অনুরোধের সাথে কাজ করে।

আর্গুমেন্ট

· HTTP (class_http) -- সম্পর্কিত http অবজেক্ট।

· নাম (স্ট্রিং) -- হেডারের নাম।

· regex (স্ট্রিং) -- ম্যাচ রেগুলার এক্সপ্রেশন।

· প্রতিস্থাপন করা (স্ট্রিং) -- প্রতিস্থাপন মান।

দেখ HTTP.res_rep_header()

HTTP.res_rep_header(http, নাম, regex, স্ট্রিং)
শিরোনাম ক্ষেত্রের "নাম" অনুযায়ী সমস্ত ঘটনার রেগুলার এক্সপ্রেশনের সাথে মেলে
"regex" এ, এবং "প্রতিস্থাপন" যুক্তি দিয়ে তাদের প্রতিস্থাপন করে। প্রতিস্থাপন মান
1, 2, ... এই ফাংশন অনুরোধের সাথে কাজ করে।

আর্গুমেন্ট

· HTTP (class_http) -- সম্পর্কিত http অবজেক্ট।

· নাম (স্ট্রিং) -- হেডারের নাম।

· regex (স্ট্রিং) -- ম্যাচ রেগুলার এক্সপ্রেশন।

· প্রতিস্থাপন করা (স্ট্রিং) -- প্রতিস্থাপন মান।

দেখ HTTP.req_replace_header()

HTTP.req_replace_value(http, নাম, regex, প্রতিস্থাপন)
এটি "HTTP.req_replace_header()" এর মত কাজ করে ব্যতীত এটি রেজেক্সের সাথে মেলে
শিরোনাম ক্ষেত্রের প্রতিটি কমা দ্বারা সীমাবদ্ধ মান সমগ্রের পরিবর্তে "নাম"
হেডার।

আর্গুমেন্ট

· HTTP (class_http) -- সম্পর্কিত http অবজেক্ট।

· নাম (স্ট্রিং) -- হেডারের নাম।

· regex (স্ট্রিং) -- ম্যাচ রেগুলার এক্সপ্রেশন।

· প্রতিস্থাপন করা (স্ট্রিং) -- প্রতিস্থাপন মান।

দেখ HTTP.req_replace_header()

দেখ HTTP.res_replace_value()

HTTP.res_replace_value(http, নাম, regex, প্রতিস্থাপন)
এটি "HTTP.res_replace_header()" এর মতো কাজ করে ব্যতীত এটি রেজেক্সের সাথে মেলে
শিরোনাম ক্ষেত্রের প্রতিটি কমা দ্বারা সীমাবদ্ধ মান সমগ্রের পরিবর্তে "নাম"
হেডার।

আর্গুমেন্ট

· HTTP (class_http) -- সম্পর্কিত http অবজেক্ট।

· নাম (স্ট্রিং) -- হেডারের নাম।

· regex (স্ট্রিং) -- ম্যাচ রেগুলার এক্সপ্রেশন।

· প্রতিস্থাপন করা (স্ট্রিং) -- প্রতিস্থাপন মান।

দেখ HTTP.res_replace_header()

দেখ HTTP.req_replace_value()

HTTP.req_set_method(http, পদ্ধতি)
পরামিতি "পদ্ধতি" সহ অনুরোধ পদ্ধতিটি পুনরায় লিখুন।

আর্গুমেন্ট

· HTTP (class_http) -- সম্পর্কিত http অবজেক্ট।

· পদ্ধতি (স্ট্রিং) -- নতুন পদ্ধতি।

HTTP.req_set_path(http, পথ)
"পাথ" প্যারামিটার দিয়ে অনুরোধের পথটি পুনরায় লিখুন।

আর্গুমেন্ট

· HTTP (class_http) -- সম্পর্কিত http অবজেক্ট।

· পথ (স্ট্রিং) -- নতুন পথ।

HTTP.req_set_query(http, প্রশ্ন)
অনুরোধের ক্যোয়ারী স্ট্রিংটি পুনরায় লিখুন যা প্রথম প্রশ্ন চিহ্নের পরে প্রদর্শিত হয়
("?") প্যারামিটার "query" সহ।

আর্গুমেন্ট

· 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 কনভার্টার শ্রেণী.

এই বৈশিষ্ট্যটিতে একটি রূপান্তরকারী শ্রেণীর বস্তু রয়েছে।

TXN.sc

রিটার্নস বা মুনাফা
An কনভার্টার শ্রেণী.

এই বৈশিষ্ট্যটিতে একটি রূপান্তরকারী শ্রেণীর বস্তু রয়েছে। এই বস্তুর ফাংশন
সর্বদা একটি স্ট্রিং প্রদান করে।

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 এর মধ্যে সংখ্যা।

· বার্তা (স্ট্রিং) -- লগ বিষয়বস্তু.

দেখ core.emerg, core.alert, core.crit, core.err, core.warning, core.notice,
core.info, core.debug (লগ স্তরের সংজ্ঞা)

দেখ TXN.deflog

দেখ TXN.Debug

দেখ TXN.তথ্য

দেখ TXN. সতর্কতা

দেখ TXN.Alert

TXN.deflog(TXN, বার্তা)
এর সাথে যুক্ত প্রক্সির জন্য ডিফল্ট লগলেভেল সহ একটি লগ লাইন পাঠায়
লেনদেন।

আর্গুমেন্ট

· txn (class_txn) -- ক্লাস txn অবজেক্টে ডেটা রয়েছে।

· বার্তা (স্ট্রিং) -- লগ বিষয়বস্তু.

দেখ TXN.log

TXN.Debug(txn, বার্তা)

আর্গুমেন্ট

· txn (class_txn) -- ক্লাস txn অবজেক্টে ডেটা রয়েছে।

· বার্তা (স্ট্রিং) -- লগ বিষয়বস্তু.

দেখ TXN.log

এর চেয়ে একই কাজ করে:

ফাংশন ডিবাগ (txn, msg)
TXN.log(txn, core.debug, msg)
শেষ

TXN. তথ্য(txn, বার্তা)

আর্গুমেন্ট

· txn (class_txn) -- ক্লাস txn অবজেক্টে ডেটা রয়েছে।

· বার্তা (স্ট্রিং) -- লগ বিষয়বস্তু.

দেখ TXN.log

ফাংশন ডিবাগ (txn, msg)
TXN.log(txn, core.info, msg)
শেষ

TXN. সতর্কতা(txn, বার্তা)

আর্গুমেন্ট

· txn (class_txn) -- ক্লাস txn অবজেক্টে ডেটা রয়েছে।

· বার্তা (স্ট্রিং) -- লগ বিষয়বস্তু.

দেখ TXN.log

ফাংশন ডিবাগ (txn, msg)
TXN.log(txn, core.warning, msg)
শেষ

TXN.Alert(txn, বার্তা)

আর্গুমেন্ট

· txn (class_txn) -- ক্লাস txn অবজেক্টে ডেটা রয়েছে।

· বার্তা (স্ট্রিং) -- লগ বিষয়বস্তু.

দেখ TXN.log

ফাংশন ডিবাগ (txn, msg)
TXN.log(txn, core.alert, msg)
শেষ

TXN.get_priv(txn)
বর্তমান লেনদেনে সংরক্ষিত লুয়া ডেটা ফেরত দিন (এর সাথে TXN.set_priv())
ফাংশন যদি কোন তথ্য সংরক্ষণ করা না হয়, এটি একটি শূন্য মান প্রদান করে।

আর্গুমেন্ট

· txn (class_txn) -- ক্লাস txn অবজেক্টে ডেটা রয়েছে।

রিটার্নস বা মুনাফা
পূর্বে সংরক্ষিত অস্বচ্ছ ডেটা, অথবা যদি কিছুই উপলব্ধ না হয় তাহলে শূন্য।

TXN.set_priv(txn, তথ্য)
বর্তমান HAProxy লেনদেনে যেকোনো তথ্য সংরক্ষণ করুন। এই কর্ম পুরাতন প্রতিস্থাপন
সংরক্ষিত তথ্য।

আর্গুমেন্ট

· txn (class_txn) -- ক্লাস txn অবজেক্টে ডেটা রয়েছে।

· উপাত্ত (অস্বচ্ছ) -- লেনদেনে সংরক্ষিত ডেটা।

TXN.set_var(TXN, এখানে, মান)
একটি 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, লগলেভেল)
বর্তমান অনুরোধের লগ লেভেল পরিবর্তন করতে ব্যবহৃত হয়। "লগলেভেল" অবশ্যই একটি হতে হবে
0 এবং 7 এর মধ্যে পূর্ণসংখ্যা।

আর্গুমেন্ট

· txn (class_txn) -- ক্লাস txn অবজেক্টে ডেটা রয়েছে।

· লগ স্তর (পূর্ণসংখ্যা) -- প্রয়োজনীয় লগ লেভেল। এই পরিবর্তনশীল এক হতে পারে

দেখ মূল.

TXN.set_tos(txn, tos)
ক্লায়েন্টকে পাঠানো প্যাকেটের TOS বা DSCP ক্ষেত্রের মান সেট করতে ব্যবহৃত হয়
এটি সমর্থন করে এমন প্ল্যাটফর্মগুলিতে "tos"-এ মান পাস করা হয়েছে।

আর্গুমেন্ট

· txn (class_txn) -- ক্লাস txn অবজেক্টে ডেটা রয়েছে।

· টোস্ট (পূর্ণসংখ্যা) -- নতুন TOS OS DSCP।

TXN.set_mark(txn, চিহ্ন)
ক্লায়েন্টের কাছে পাঠানো সমস্ত প্যাকেটে নেটফিল্টার মার্ক সেট করতে ব্যবহৃত হয়
এটি সমর্থন করে এমন প্ল্যাটফর্মগুলিতে "চিহ্ন" এ পাস করা হয়েছে।

আর্গুমেন্ট

· txn (class_txn) -- ক্লাস txn অবজেক্টে ডেটা রয়েছে।

· ছাপ (পূর্ণসংখ্যা) -- চিহ্নের মান।

শ্রেণী সকেট()
এই ক্লাসটি অবশ্যই লুয়া সকেট ক্লাসের সাথে সামঞ্জস্যপূর্ণ হতে হবে। শুধুমাত্র 'ক্লায়েন্ট'
ফাংশন উপলব্ধ। লুয়া সকেট ডকুমেন্টেশন দেখুন:

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

Socket.close(সকেট)
একটি TCP বস্তু বন্ধ করে। বস্তু দ্বারা ব্যবহৃত অভ্যন্তরীণ সকেট বন্ধ এবং স্থানীয়
ঠিকানা যেখানে বস্তু আবদ্ধ ছিল অন্যান্য অ্যাপ্লিকেশনের জন্য উপলব্ধ করা হয়. না
আরও ক্রিয়াকলাপ (ক্লোজ পদ্ধতিতে আরও কল ব্যতীত) a এ অনুমোদিত
বন্ধ সকেট।

আর্গুমেন্ট

· সকেট (ক্লাস_সকেট) -- ম্যানিপুলেটেড সকেট।

দ্রষ্টব্য: সমস্ত ব্যবহৃত সকেটগুলি একবার প্রয়োজন না হলে বন্ধ করা গুরুত্বপূর্ণ, যেহেতু, মধ্যে৷
অনেক সিস্টেম, প্রতিটি সকেট একটি ফাইল বর্ণনাকারী ব্যবহার করে, যা সীমিত সিস্টেম
সম্পদ আবর্জনা-সংগৃহীত বস্তু ধ্বংসের আগে স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায়,
যদিও।

Socket.connect(সকেট, ঠিকানা[, বন্দর])
দূরবর্তী হোস্টের সাথে একটি সকেট অবজেক্ট সংযোগ করার প্রচেষ্টা।

ত্রুটির ক্ষেত্রে, পদ্ধতিটি শূন্য প্রদান করে এবং ত্রুটি বর্ণনা করে একটি স্ট্রিং অনুসরণ করে।
সফলতার ক্ষেত্রে, পদ্ধতিটি 1 রিটার্ন করে।

আর্গুমেন্ট

· সকেট (ক্লাস_সকেট) -- ম্যানিপুলেটেড সকেট।

· ঠিকানা (স্ট্রিং) -- একটি IP ঠিকানা বা একটি হোস্ট নাম হতে পারে। জন্য নীচে দেখুন
অধিক তথ্য.

· বন্দর (পূর্ণসংখ্যা) -- অবশ্যই [1..64K] পরিসরে একটি পূর্ণসংখ্যা হতে হবে।

রিটার্নস বা মুনাফা
1 বা শূন্য।

একটি ঠিকানা ক্ষেত্র এক্সটেনশন সংযোগ করার জন্য connect() ফাংশন ব্যবহার করার অনুমতি দেয়
TCP ছাড়া অন্য স্ট্রিম। একটি simpleipv4 বা ipv6 ঠিকানা ধারণকারী সিনট্যাক্স হল
মূলত প্রত্যাশিত বিন্যাস। এই বিন্যাস পোর্ট প্রয়োজন.

গৃহীত অন্যান্য বিন্যাস হল একটি সকেট পাথ যেমন "/সকেট/পথ", এটি সংযোগ করার অনুমতি দেয়
একটি সকেট থেকে বিমূর্ত নামস্থান উপসর্গ "abns@" সহ সমর্থিত এবং অবশেষে
একটি fileescriotr উপসর্গ "fd@" দিয়ে পাস করা যেতে পারে। উপসর্গ "ipv4@", "ipv6@"
এবং "unix@"ও সমর্থিত। পোর্ট স্ট্রিং মধ্যে পাস করা যেতে পারে. বাক্য গঠন
"127.0.0.1:1234" বৈধ৷ এই ক্ষেত্রে, পরামিতি বন্দর উপেক্ষা করা হয়।

Socket.connect_ssl(সকেট, ঠিকানা, পোর্ট)
ফাংশন সকেটের চেয়ে একই আচরণ: সংযোগ, কিন্তু SSL ব্যবহার করে।

আর্গুমেন্ট

· সকেট (ক্লাস_সকেট) -- ম্যানিপুলেটেড সকেট।

রিটার্নস বা মুনাফা
1 বা শূন্য।

Socket.getpeername(সকেট)
একটি সংযুক্ত ক্লায়েন্ট অবজেক্টের দূরবর্তী দিক সম্পর্কে তথ্য প্রদান করে।

পিয়ারের আইপি ঠিকানা সহ একটি স্ট্রিং প্রদান করে, পোর্ট নম্বরটি অনুসরণ করে
পিয়ার সংযোগের জন্য ব্যবহার করছে। ত্রুটির ক্ষেত্রে, পদ্ধতিটি শূন্য প্রদান করে।

আর্গুমেন্ট

· সকেট (ক্লাস_সকেট) -- ম্যানিপুলেটেড সকেট।

রিটার্নস বা মুনাফা
সার্ভারের তথ্য ধারণকারী একটি স্ট্রিং।

Socket.getsockname(সকেট)
বস্তুর সাথে সম্পর্কিত স্থানীয় ঠিকানা তথ্য প্রদান করে।

পদ্ধতিটি স্থানীয় আইপি ঠিকানা সহ একটি স্ট্রিং এবং পোর্ট সহ একটি সংখ্যা প্রদান করে। ভিতরে
ত্রুটির ক্ষেত্রে, পদ্ধতিটি শূন্য প্রদান করে।

আর্গুমেন্ট

· সকেট (ক্লাস_সকেট) -- ম্যানিপুলেটেড সকেট।

রিটার্নস বা মুনাফা
ক্লায়েন্ট তথ্য ধারণকারী একটি স্ট্রিং.

Socket.receive(সকেট[, প্যাটার্ন[, উপসর্গ]])
নির্দিষ্ট রিড প্যাটার্ন অনুযায়ী একটি ক্লায়েন্ট অবজেক্ট থেকে ডেটা পড়ে। নিদর্শন
Lua ফাইল I/O বিন্যাস অনুসরণ করুন, এবং সবার মধ্যে কর্মক্ষমতা পার্থক্য
নিদর্শন নগণ্য।

আর্গুমেন্ট

· সকেট (ক্লাস_সকেট) -- ম্যানিপুলেটেড সকেট।

· প্যাটার্ন (স্ট্রিং|পূর্ণসংখ্যা) -- কী প্রয়োজন তা বর্ণনা করুন (নীচে দেখুন)।

· উপসর্গ (স্ট্রিং) -- একটি স্ট্রিং যা প্রত্যাবর্তিত ডেটার উপসর্গ হবে।

রিটার্নস বা মুনাফা
প্রয়োজনীয় ডেটা বা শূন্য ধারণকারী একটি স্ট্রিং।

প্যাটার্ন নিম্নলিখিত যে কোনো হতে পারে:

·

`*a`: সার্চ থেকে দ্য সকেট পর্যন্ত দ্য সংযোগ is বন্ধ করে দেয়। না
লাইনের শেষ অনুবাদ সঞ্চালিত হয়;

·

`*l`: সার্চ a লাইন of পাঠ থেকে দ্য সকেট. সার্জারির লাইন is পর্যবসিত by a
LF অক্ষর (ASCII 10), ঐচ্ছিকভাবে একটি CR অক্ষর (ASCII 13) দ্বারা পূর্বে।
CR এবং LF অক্ষরগুলি প্রত্যাবর্তিত লাইনে অন্তর্ভুক্ত নয়৷ আসলে,
সমস্ত CR অক্ষর প্যাটার্ন দ্বারা উপেক্ষা করা হয়। এটি ডিফল্ট প্যাটার্ন।

·

সংখ্যা: কারণসমূহ দ্য পদ্ধতি থেকে পড়া a নিদিষ্ট সংখ্যা of বাইট থেকে দ্য
সকেট. উপসর্গ হল একটি ঐচ্ছিক স্ট্রিং যা শুরুতে সংযুক্ত করা হবে
প্রত্যাবর্তনের আগে কোনো প্রাপ্ত তথ্যের।

· খালি: প্যাটার্নটি খালি থাকলে, ডিফল্ট বিকল্প *l.

সফল হলে, পদ্ধতিটি প্রাপ্ত প্যাটার্ন প্রদান করে। ত্রুটির ক্ষেত্রে,
পদ্ধতি একটি ত্রুটি বার্তা দ্বারা অনুসৃত শূন্য দেয় যা স্ট্রিং 'বন্ধ' হতে পারে
ট্রান্সমিশন বা স্ট্রিং সম্পন্ন হওয়ার আগে সংযোগটি বন্ধ হয়ে গিয়েছিল
অপারেশন চলাকালীন সময় শেষ হলে 'টাইমআউট'। এছাড়াও, ত্রুটি পরে
বার্তা, ফাংশন ট্রান্সমিশনের আংশিক ফলাফল প্রদান করে।

গুরুত্বপূর্ণ নোট: এই ফাংশন গুরুতরভাবে পরিবর্তন করা হয়েছে. এটি একাধিক সমর্থন করতে ব্যবহৃত
প্যাটার্নস (কিন্তু আমি এই বৈশিষ্ট্যটি ব্যবহার করতে দেখিনি) এবং এখন এটি আর নেই।
আংশিক ফলাফল সফল ফলাফল হিসাবে একই ভাবে ফেরত ব্যবহৃত. এই
শেষ বৈশিষ্ট্যটি এই ধারণা লঙ্ঘন করেছে যে সমস্ত ফাংশন ত্রুটিতে শূন্য ফেরত দেওয়া উচিত। এইভাবে
এটাও পরিবর্তন করা হয়েছিল।

Socket.send(সকেট, তথ্য[, শুরু[, শেষ]])
ক্লায়েন্ট অবজেক্টের মাধ্যমে ডেটা পাঠায়।

আর্গুমেন্ট

· সকেট (ক্লাস_সকেট) -- ম্যানিপুলেটেড সকেট।

· উপাত্ত (স্ট্রিং) -- যে ডেটা পাঠানো হবে।

· শুরু (পূর্ণসংখ্যা) -- ডেটার বাফারে স্টার্ট পজিশন থাকবে যা
পাঠানো হবে

· শেষ (পূর্ণসংখ্যা) -- ডেটার বাফারে শেষ অবস্থান যা হবে
পাঠানো

রিটার্নস বা মুনাফা
নিচে দেখ.

ডেটা পাঠানোর স্ট্রিং। ঐচ্ছিক আর্গুমেন্ট i এবং j ঠিক মত কাজ করে
স্ট্যান্ডার্ড string.sub Lua ফাংশন পাঠাতে একটি সাবস্ট্রিং নির্বাচন করার অনুমতি দেয়।

সফল হলে, পদ্ধতিটি [শুরু, শেষ] এর মধ্যে শেষ বাইটের সূচী প্রদান করে
যে পাঠানো হয়েছে. লক্ষ্য করুন যে, যদি শুরু হয় 1 বা অনুপস্থিত, এটি কার্যকরভাবে
পাঠানো বাইট মোট সংখ্যা. ত্রুটির ক্ষেত্রে, পদ্ধতিটি শূন্য প্রদান করে, তারপরে
একটি ত্রুটি বার্তা, [শুরু, শেষ] এর মধ্যে শেষ বাইটের সূচী অনুসরণ করে
পাঠানো হয়েছে. আপনি যে অনুসরণ বাইট থেকে আবার চেষ্টা করতে চাইতে পারেন. ভূল
সম্প্রচারের আগে সংযোগ বন্ধ হয়ে গেলে বার্তাটি 'বন্ধ' হতে পারে
সম্পূর্ণ হয়েছে বা স্ট্রিং 'টাইমআউট' এর সময় একটি সময় শেষ হলে
operation.

দ্রষ্টব্য: আউটপুট বাফার করা হয় না। ছোট স্ট্রিংগুলির জন্য, এটি সর্বদা সংযুক্ত করা ভাল
তাদের Lua ('..' অপারেটরের সাথে) এবং পরিবর্তে একটি কলে ফলাফল পাঠান
পদ্ধতিটি বেশ কয়েকবার কল করা হচ্ছে।

Socket.setoption(সকেট, বিকল্প[, মান])
শুধু সামঞ্জস্যের জন্য প্রয়োগ করা হয়েছে, এই ক্যাল কিছুই করে না।

Socket.settimeout(সকেট, মান[, মোড])
বস্তুর জন্য সময়সীমার মান পরিবর্তন করে। সমস্ত I/O অপারেশন ব্লক করা হচ্ছে। যে
পাঠানো, গ্রহণ এবং গ্রহণ পদ্ধতিতে যে কোনো কল অনির্দিষ্টকালের জন্য অবরুদ্ধ হবে,
অপারেশন শেষ না হওয়া পর্যন্ত। সেটটাইমআউট পদ্ধতি পরিমাণের একটি সীমা নির্ধারণ করে
I/O পদ্ধতি ব্লক করতে পারে। যখন একটি টাইমআউট সময় অতিবাহিত হয়েছে, প্রভাবিত
পদ্ধতিগুলি ছেড়ে দেয় এবং একটি ত্রুটি কোড দিয়ে ব্যর্থ হয়।

সেকেন্ডে, মান পরামিতি হিসাবে অপেক্ষা করার সময়ের পরিমাণ নির্দিষ্ট করা হয়।

টাইমআউট মোডগুলি বট প্রয়োগ করা হয়, একমাত্র নিষ্পত্তিযোগ্য সময়সীমা নিষ্ক্রিয়তা
অভ্যন্তরীণ বাফার পাঠানোর জন্য অপেক্ষা করা বা ডেটা গ্রহণের জন্য অপেক্ষা করার সময়।

আর্গুমেন্ট

· সকেট (ক্লাস_সকেট) -- ম্যানিপুলেটেড সকেট।

· মূল্য (পূর্ণসংখ্যা) -- সময়সীমার মান।

শ্রেণী মানচিত্র()
এই ক্লাসটি HAProxy মানচিত্রে কিছু সন্ধান করার অনুমতি দেয়। ঘোষিত মানচিত্র হতে পারে
HAProxy ম্যানেজমেন্ট সকেটের মাধ্যমে রানটাইমের সময় পরিবর্তন করা হয়।

ডিফল্ট = "USA"

-- মানচিত্র তৈরি করুন এবং লোড করুন
geo = Map.new("geo.map", Map.ip);

-- নতুন ফেচ তৈরি করুন যা ব্যবহারকারীর দেশ ফেরত দেয়
core.register_fetches("দেশ", ফাংশন(txn)
স্থানীয় src;
স্থানীয় অবস্থান;

src = txn.f:fhdr("x-forwarded-for");
if (src == nil) তারপর
src = txn.f:src()
if (src == nil) তারপর
রিটার্ন ডিফল্ট;
শেষ
শেষ

-- লুকআপ সঞ্চালন
loc = geo:lookup(src);

if (loc == nil) তারপর
রিটার্ন ডিফল্ট;
শেষ

রিটার্ন 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 মৌলিক"।

Map.end
HAProxy configuration.txt ফাইলটি দেখুন, "ACL ব্যবহার করা এবং নমুনা আনা" অধ্যায়
এই প্যাটার্ন ম্যাচিং পদ্ধতিটি বোঝার জন্য উত্তর উপ-অধ্যায় "ACL মৌলিক"।

Map.reg
HAProxy configuration.txt ফাইলটি দেখুন, "ACL ব্যবহার করা এবং নমুনা আনা" অধ্যায়
এই প্যাটার্ন ম্যাচিং পদ্ধতিটি বোঝার জন্য উত্তর উপ-অধ্যায় "ACL মৌলিক"।

Map.new(ফাইল, পদ্ধতি)
একটি মানচিত্র তৈরি করে এবং লোড করে।

আর্গুমেন্ট

· ফাইল (স্ট্রিং) -- মানচিত্র ধারণকারী ফাইল.

· পদ্ধতি (পূর্ণসংখ্যা) -- মানচিত্র প্যাটার্ন ম্যাচিং পদ্ধতি. গুণাবলী দেখুন
মানচিত্র শ্রেণীর।

রিটার্নস বা মুনাফা
একটি ক্লাস মানচিত্র বস্তু।

দেখ মানচিত্র বৈশিষ্ট্য.

Map.lookup(মানচিত্র, str)
একটি মানচিত্রে একটি সন্ধান সঞ্চালন.

আর্গুমেন্ট

· মানচিত্র (ক্লাস_ম্যাপ) -- ক্লাস ম্যাপ অবজেক্ট।

· Str (স্ট্রিং) -- কী হিসেবে স্ট্রিং ব্যবহার করা হয়।

রিটার্নস বা মুনাফা
ফলাফল সমন্বিত একটি স্ট্রিং বা কোনো মিল না থাকলে শূন্য।

Map.slookup(মানচিত্র, str)
একটি মানচিত্রে একটি সন্ধান সঞ্চালন.

আর্গুমেন্ট

· মানচিত্র (ক্লাস_ম্যাপ) -- ক্লাস ম্যাপ অবজেক্ট।

· Str (স্ট্রিং) -- কী হিসেবে স্ট্রিং ব্যবহার করা হয়।

রিটার্নস বা মুনাফা
ফলাফল ধারণকারী একটি স্ট্রিং বা খালি স্ট্রিং যদি কোন মিল না থাকে।

শ্রেণী অ্যাপলেটএইচটিটিপি()
এই ক্লাসটি অ্যাপলেটের সাথে ব্যবহার করা হয় যার জন্য 'http' মোড প্রয়োজন। http অ্যাপলেট পারে
সাথে নিবন্ধিত হতে হবে core.register_service() ফাংশন তারা জন্য ব্যবহার করা হয়
HAProxy এর পিছনে একটি সার্ভারের মত একটি HTTP অনুরোধ প্রক্রিয়া করা হচ্ছে।

এটি একটি হ্যালো ওয়ার্ল্ড নমুনা কোড:

core.register_service("হ্যালো-ওয়ার্ল্ড", "http", ফাংশন(অ্যাপ্লেট)
স্থানীয় প্রতিক্রিয়া = "হ্যালো ওয়ার্ল্ড!"
অ্যাপলেট:সেট_স্ট্যাটাস(200)
applet:add_header("সামগ্রী-দৈর্ঘ্য", string.len(প্রতিক্রিয়া))
applet:add_header("কন্টেন্ট-টাইপ", "টেক্সট/প্লেইন")
applet:start_response()
অ্যাপলেট: পাঠান (প্রতিক্রিয়া)
শেষ)

AppletHTTP.c

রিটার্নস বা মুনাফা
A কনভার্টার শ্রেণী

এই বৈশিষ্ট্যটিতে একটি রূপান্তরকারী শ্রেণীর বস্তু রয়েছে।

AppletHTTP.sc

রিটার্নস বা মুনাফা
A কনভার্টার শ্রেণী

এই বৈশিষ্ট্যটিতে একটি রূপান্তরকারী শ্রেণীর বস্তু রয়েছে। এই বস্তুর ফাংশন
সর্বদা একটি স্ট্রিং প্রদান করে।

AppletHTTP.f

রিটার্নস বা মুনাফা
A ফেচ শ্রেণী

এই বৈশিষ্ট্যটিতে একটি Fetches ক্লাস অবজেক্ট রয়েছে। উল্লেখ্য যে অ্যাপলেট এক্সিকিউশন
স্থানটি একটি বৈধ HAProxy কোর HTTP লেনদেনে অ্যাক্সেস করতে পারে না, তাই কিছু নমুনা
HTTP নির্ভরশীল মান (hdr, path, ...) এর সাথে সম্পর্কিত fecthes উপলব্ধ নেই।

AppletHTTP.sf

রিটার্নস বা মুনাফা
A ফেচ শ্রেণী

এই বৈশিষ্ট্যটিতে একটি Fetches ক্লাস অবজেক্ট রয়েছে। এই বস্তুর ফাংশন
সর্বদা একটি স্ট্রিং প্রদান করে। মনে রাখবেন যে অ্যাপলেট এক্সিকিউশন প্লেসটি এ অ্যাক্সেস করতে পারে না
বৈধ HAProxy কোর HTTP লেনদেন, তাই HTTP এর সাথে সম্পর্কিত কিছু নমুনা ফেক্ট
নির্ভরশীল মান (hdr, path, ...) উপলব্ধ নেই।

AppletHTTP.method

রিটার্নস বা মুনাফা
স্ট্রিং

বৈশিষ্ট্য পদ্ধতি HTTP পদ্ধতি ধারণকারী একটি স্ট্রিং প্রদান করে।

AppletHTTP.version

রিটার্নস বা মুনাফা
স্ট্রিং

বৈশিষ্ট্য সংস্করণ, HTTP অনুরোধ সংস্করণ ধারণকারী একটি স্ট্রিং প্রদান করে।

AppletHTTP.path

রিটার্নস বা মুনাফা
স্ট্রিং

অ্যাট্রিবিউট পাথ HTTP অনুরোধ পাথ ধারণকারী একটি স্ট্রিং প্রদান করে।

AppletHTTP.qs

রিটার্নস বা মুনাফা
স্ট্রিং

qs বৈশিষ্ট্য HTTP অনুরোধ ক্যোয়ারী স্ট্রিং ধারণকারী একটি স্ট্রিং প্রদান করে।

AppletHTTP.length

রিটার্নস বা মুনাফা
পূর্ণসংখ্যা

বৈশিষ্ট্যের দৈর্ঘ্য HTTP বডি দৈর্ঘ্য ধারণকারী একটি পূর্ণসংখ্যা প্রদান করে।

AppletHTTP.headers

রিটার্নস বা মুনাফা
বিন্যাস

বৈশিষ্ট্য শিরোনাম HTTP শিরোনাম ধারণকারী একটি অ্যারে প্রদান করে। হেডার
নাম সর্বদা ছোট হাতের অক্ষরে থাকে। হেডার নাম হিসাবে এর চেয়ে বেশি সম্মুখীন হতে পারে
প্রতিটি অনুরোধে একবার, মানটি প্রথম সূচক মান হিসাবে 0 দিয়ে সূচিত করা হয়। অ্যারে
এই ফর্ম আছে:

AppletHTTP.headers[' ' ] = " "

AppletHTTP.headers["host"][0] = "www.test.com"
AppletHTTP.headers["accept"][0] = "অডিও/বেসিক q=1"
AppletHTTP.headers["accept"][1] = "অডিও/*, q=0.2"
AppletHTTP.headers["accept"][2] = "*/*, q=0.1"

AppletHTTP.headers
সমস্ত অনুরোধ শিরোনাম ধারণকারী একটি অ্যারে রয়েছে।

AppletHTTP.set_status(অ্যাপ্লেট, কোড)
এই ফাংশন প্রতিক্রিয়ার জন্য HTTP স্থিতি কোড সেট করে। অনুমোদিত কোড থেকে হয়
100 থেকে 599 পর্যন্ত

আর্গুমেন্ট

· অ্যাপলেট (class_AppletHTTP) -- একটি অ্যাপলেটএইচটিটিপি শ্রেণী

· কোড (পূর্ণসংখ্যা) -- স্ট্যাটাস কোড ক্লায়েন্টের কাছে ফিরে এসেছে।

AppletHTTP.add_header(অ্যাপ্লেট, নাম, মান)
এই ফাংশন প্রতিক্রিয়া একটি শিরোনাম যোগ করুন. সদৃশ শিরোনামগুলি সঙ্কুচিত হয় না৷
বিশেষ শিরোনাম বিষয়বস্তুর দৈর্ঘ্য প্রতিক্রিয়ার দৈর্ঘ্য নির্ধারণ করতে ব্যবহৃত হয়। যদি এটা
বিদ্যমান নেই, ক স্থানান্তর-এনকোডিং: টুকরো টুকরো সেট করা হয়, এবং সমস্ত ফাংশন থেকে লেখা
অ্যাপলেটএইচটিটিপি: পাঠান() একটি খণ্ড হয়ে

আর্গুমেন্ট

· অ্যাপলেট (class_AppletHTTP) -- একটি অ্যাপলেটএইচটিটিপি শ্রেণী

· নাম (স্ট্রিং) -- হেডারের নাম

· মূল্য (স্ট্রিং) -- হেডার মান

AppletHTTP.start_response(অ্যাপ্লেট)
এই ফাংশনটি HTTP ইঞ্জিনকে নির্দেশ করে যে এটি প্রক্রিয়া করতে এবং পাঠাতে পারে
প্রতিক্রিয়া শিরোনাম এই কল করার পরে আমরা প্রতিক্রিয়াতে শিরোনাম যোগ করতে পারি না; আমরা
ব্যবহার করতে পারবেন না অ্যাপলেটএইচটিটিপি: পাঠান() ফাংশন যদি AppletHTTP:start_response() এটি না
বলা হয়।

আর্গুমেন্ট

· অ্যাপলেট (class_AppletHTTP) -- একটি অ্যাপলেটএইচটিটিপি শ্রেণী

AppletHTTP.getline(অ্যাপ্লেট)
এই ফাংশনটি http বডি থেকে একটি লাইন সম্বলিত একটি স্ট্রিং প্রদান করে। যদি ডাটা
রিটার্নড এর মধ্যে একটি চূড়ান্ত '\n' নেই যা এটির সর্বশেষ উপলব্ধ ডেটার তুলনায় অনুমান করা হয়েছে
প্রবাহ শেষ হওয়ার আগে।

আর্গুমেন্ট

· অ্যাপলেট (class_AppletHTTP) -- একটি অ্যাপলেটএইচটিটিপি শ্রেণী

রিটার্নস বা মুনাফা
একটি স্ট্রিং স্ট্রিং খালি হতে পারে যদি আমরা স্রোতের শেষে পৌঁছাই।

AppletHTTP.receive(applet[, আকার])
HTTP বডি থেকে ডেটা রিড করে, নির্দিষ্ট রিড অনুযায়ী আয়তন। যদি আয়তন is
অনুপস্থিত, ফাংশনটি শেষ পর্যন্ত স্ট্রিমের সমস্ত বিষয়বস্তু পড়ার চেষ্টা করে। যদি
দ্য আয়তন http বডির চেয়ে বড়, এটি উপলভ্য ডেটার পরিমাণ ফেরত দেয়।

আর্গুমেন্ট

· অ্যাপলেট (class_AppletHTTP) -- একটি অ্যাপলেটএইচটিটিপি শ্রেণী

· আয়তন (পূর্ণসংখ্যা) -- প্রয়োজনীয় পঠিত আকার।

রিটার্নস বা মুনাফা
সর্বদা একটি স্ট্রিং ফেরত দিন, সংযোগটি বন্ধ হলে স্ট্রিংটি খালি হতে পারে।

AppletHTTP.send(অ্যাপ্লেট, বার্তা)
বার্তা প্রেরণ করুন বার্তা http অনুরোধের অংশে।

আর্গুমেন্ট

· অ্যাপলেট (class_AppletHTTP) -- একটি অ্যাপলেটএইচটিটিপি শ্রেণী

· বার্তা (স্ট্রিং) -- বার্তা পাঠাতে হবে।

শ্রেণী অ্যাপলেটটিসিপি()
এই ক্লাসটি অ্যাপলেটের সাথে ব্যবহার করা হয় যার জন্য 'tcp' মোড প্রয়োজন। tcp অ্যাপলেট হতে পারে
এর সাথে নিবন্ধিত core.register_service() ফাংশন এগুলি প্রক্রিয়াকরণের জন্য ব্যবহৃত হয়
HAProxy এর পিছনে একটি সার্ভারের মত একটি tcp স্ট্রীম।

AppletTCP.c

রিটার্নস বা মুনাফা
A কনভার্টার শ্রেণী

এই বৈশিষ্ট্যটিতে একটি রূপান্তরকারী শ্রেণীর বস্তু রয়েছে।

AppletTCP.sc

রিটার্নস বা মুনাফা
A কনভার্টার শ্রেণী

এই বৈশিষ্ট্যটিতে একটি রূপান্তরকারী শ্রেণীর বস্তু রয়েছে। এই বস্তুর ফাংশন
সর্বদা একটি স্ট্রিং প্রদান করে।

AppletTCP.f

রিটার্নস বা মুনাফা
A ফেচ শ্রেণী

এই বৈশিষ্ট্যটিতে একটি Fetches ক্লাস অবজেক্ট রয়েছে।

AppletTCP.sf

রিটার্নস বা মুনাফা
A ফেচ শ্রেণী

এই বৈশিষ্ট্যটিতে একটি Fetches ক্লাস অবজেক্ট রয়েছে।

AppletTCP.getline(অ্যাপ্লেট)
এই ফাংশনটি স্ট্রিম থেকে একটি লাইন সম্বলিত একটি স্ট্রিং প্রদান করে। যদি ডাটা
রিটার্নড এর মধ্যে একটি চূড়ান্ত '\n' নেই যা এটির সর্বশেষ উপলব্ধ ডেটার তুলনায় অনুমান করা হয়েছে
প্রবাহ শেষ হওয়ার আগে।

আর্গুমেন্ট

· অ্যাপলেট (class_AppletTCP) -- একটি অ্যাপলেটটিসিপি শ্রেণী

রিটার্নস বা মুনাফা
একটি স্ট্রিং স্ট্রিং খালি হতে পারে যদি আমরা স্রোতের শেষে পৌঁছাই।

AppletTCP.receive(অ্যাপ্লেট[, আকার])
TCP স্ট্রীম থেকে ডেটা রিড করে, নির্দিষ্ট রিড অনুযায়ী আয়তন। যদি আয়তন
অনুপস্থিত, ফাংশন শেষ পর্যন্ত স্ট্রিমের সমস্ত বিষয়বস্তু পড়ার চেষ্টা করে।

আর্গুমেন্ট

· অ্যাপলেট (class_AppletTCP) -- একটি অ্যাপলেটটিসিপি শ্রেণী

· আয়তন (পূর্ণসংখ্যা) -- প্রয়োজনীয় পঠিত আকার।

রিটার্নস বা মুনাফা
সর্বদা একটি স্ট্রিং ফেরত দিন, সংযোগটি বন্ধ হলে স্ট্রিংটি খালি হতে পারে।

AppletTCP.send(appletmsg)
স্ট্রীমে বার্তা পাঠান.

আর্গুমেন্ট

· অ্যাপলেট (class_AppletTCP) -- একটি অ্যাপলেটটিসিপি শ্রেণী

· বার্তা (স্ট্রিং) -- বার্তা পাঠাতে হবে।

অনেক দরকারী লুয়া লাইব্রেরি এখানে পাওয়া যাবে:

· https://lua-toolbox.com/

রেডিস অ্যাক্সেস:

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

এটি HAProxy এর সাথে Redis লাইব্রেরির ব্যবহার সম্পর্কে একটি উদাহরণ। উল্লেখ্য যে প্রতিটি কল
সকেট সংযোগ ব্যর্থ হলে এই লাইব্রেরির যে কোনো ফাংশন একটি ত্রুটি নিক্ষেপ করতে পারে।

-- রেডিস লাইব্রেরি লোড করুন
স্থানীয় redis = প্রয়োজন("redis");

ফাংশন do_something(txn)

-- নতুন tcp সকেট তৈরি এবং সংযোগ করুন
স্থানীয় tcp = core.tcp();
tcp:সেটটাইমআউট(২০১১);
tcp: সংযোগ ("127.0.0.1", 6379);

-- এই নতুন সকেটের সাথে রেডিস লাইব্রেরি ব্যবহার করুন
স্থানীয় ক্লায়েন্ট = redis.connect({socket=tcp});
ক্লায়েন্ট:পিং();

শেষ

OpenSSL:

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

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

onworks.net পরিষেবা ব্যবহার করে অনলাইনে haproxy-lua ব্যবহার করুন



সর্বশেষ লিনাক্স এবং উইন্ডোজ অনলাইন প্রোগ্রাম