ภาษาอังกฤษภาษาฝรั่งเศสสเปน

Ad


ไอคอน Fav ของ OnWorks

haproxy-lua - ออนไลน์ในคลาวด์

เรียกใช้ haproxy-lua ในผู้ให้บริการโฮสต์ฟรีของ OnWorks ผ่าน Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

นี่คือคำสั่ง haproxy-lua ที่สามารถเรียกใช้ในผู้ให้บริการโฮสติ้งฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


haproxy-lua - haproxy-lua เอกสารประกอบ

แฮพร็อกซี่ หลัว วิ่ง บริบท


รหัส Lua ที่ดำเนินการใน HAProxy สามารถประมวลผลได้ใน 2 โหมดหลัก คนแรกคือ
การเริ่มต้น โหมดและที่สองคือ รันไทม์ โหมด.

· ใน การเริ่มต้น โหมดเราสามารถดำเนินการแก้ไข DNS ได้ แต่เราไม่สามารถดำเนินการซ็อกเก็ต I/O ได้
ในโหมดการเริ่มต้นนี้ HAProxy ยังคงถูกบล็อกระหว่างการดำเนินการของ Lua
โครงการ

· ใน รันไทม์ โหมดเราไม่สามารถดำเนินการแก้ไข DNS ได้ แต่เราสามารถใช้ซ็อกเก็ตได้ NS
การดำเนินการของรหัส Lua นั้นทวีคูณด้วยการประมวลผลคำขอ ดังนั้นรหัส Lua
ดูเหมือนว่าจะถูกเรียกใช้ในการบล็อก แต่ก็ไม่เป็นเช่นนั้น

รหัส Lua ถูกโหลดในไฟล์ตั้งแต่หนึ่งไฟล์ขึ้นไป ไฟล์เหล่านี้ประกอบด้วยรหัสหลักและฟังก์ชัน
Lua มีบริบทการดำเนินการ 6 แบบ

1. ไฟล์ลัวะ ร่างกาย สิ่งแวดล้อม. มันถูกดำเนินการระหว่างการโหลดไฟล์ Lua ใน
HAProxy [โลก] ส่วนที่มีคำสั่ง lua-โหลด. มันถูกดำเนินการในการเริ่มต้น
โหมด. ส่วนนี้ใช้สำหรับกำหนดค่าการเชื่อมโยง Lua ใน HAProxy

2. ชาวลัวะ init สิ่งแวดล้อม. เป็นฟังก์ชัน Lua ที่ดำเนินการหลังจาก HAProxy
การแยกวิเคราะห์การกำหนดค่า การดำเนินการอยู่ในโหมดการเริ่มต้น ในบริบทนี้
สภาพแวดล้อม HAProxy ถูกเตรียมใช้งานแล้ว มีประโยชน์ในการตรวจสอบการกำหนดค่าหรือ
การเริ่มต้นการเชื่อมต่อซ็อกเก็ตหรืองาน ฟังก์ชั่นเหล่านี้ถูกประกาศในร่างกาย
บริบทด้วยฟังก์ชัน Lua core.register_init(). ต้นแบบของฟังก์ชันคือ a
ฟังก์ชันง่าย ๆ ที่ไม่มีค่าส่งคืนและไม่มีพารามิเตอร์ดังนี้: ฟังก์ชัน เอฟซีเอ็น().

3. ชาวลัวะ งาน สิ่งแวดล้อม. เป็นฟังก์ชัน Lua ที่ดำเนินการหลังจากเริ่มต้น HAProxy
ตัวกำหนดตารางเวลาและหลังจากการประกาศงานด้วยฟังก์ชัน Lua
core.register_task(). บริบทนี้สามารถเกิดขึ้นพร้อมกันกับการประมวลผลการรับส่งข้อมูล มันคือ
ดำเนินการในโหมดรันไทม์ ต้นแบบของฟังก์ชันเป็นฟังก์ชันธรรมดาที่ไม่มี
คืนค่าและไม่มีพารามิเตอร์ดังนี้: ฟังก์ชัน เอฟซีเอ็น().

ในปี 4 การกระทำ สิ่งแวดล้อม. เป็นฟังก์ชัน Lua ที่ดำเนินการตามเงื่อนไข การกระทำเหล่านี้คือ
ลงทะเบียนตามคำสั่ง Lua "core.register_action()". ต้นแบบของ Lua
ฟังก์ชันที่เรียกเป็นฟังก์ชันที่ไม่มีการส่งคืนสิ่งใดและรับออบเจกต์ของ
คลาส TXN เป็นรายการ ฟังก์ชัน เอฟซีเอ็น (txn).

ในปี 5 ดึงตัวอย่าง สิ่งแวดล้อม. ฟังก์ชันนี้รับวัตถุ TXN เป็นอาร์กิวเมนต์รายการและ
ส่งคืนสตริง ฟังก์ชันประเภทนี้ไม่สามารถเรียกใช้ฟังก์ชันการบล็อกใดๆ ได้ พวกเขา
มีประโยชน์ในการรวมการดึงตัวอย่าง HAProxy ดั้งเดิมและส่งคืนผลลัพธ์
ต้นแบบของฟังก์ชันคือ ฟังก์ชัน เชือก เอฟซีเอ็น (txn). ฟังก์ชันเหล่านี้สามารถเป็น
ลงทะเบียนกับฟังก์ชั่น Lua core.register_fetches(). การดึงตัวอย่างที่ประกาศแต่ละรายการคือ
นำหน้าด้วยสตริง "lua"

หมายเหตุ: เป็นไปได้ที่ฟังก์ชันนี้ไม่พบข้อมูลที่ต้องการในต้นฉบับ
การดึงตัวอย่าง HAProxy ในกรณีนี้ จะไม่สามารถส่งคืนผลลัพธ์ได้ คดีนี้ยังไม่มา
ได้รับการสนับสนุน

ในปี 6 Converter สิ่งแวดล้อม. เป็นฟังก์ชัน Lua ที่รับสตริงเป็นอินพุตและส่งคืน
สตริงอื่นเป็นเอาต์พุต ฟังก์ชันประเภทนี้ไม่มีสถานะ ไม่สามารถเข้าถึง
บริบทใด ๆ พวกเขาไม่ได้ดำเนินการฟังก์ชั่นการปิดกั้นใด ๆ ต้นแบบการโทรคือ ฟังก์ชัน
เชือก fcn(สตริง). ฟังก์ชันนี้สามารถลงทะเบียนด้วยฟังก์ชัน Lua ได้
core.register_converters(). ตัวแปลงที่ประกาศไว้แต่ละอันนำหน้าด้วยสตริง "lua"

แฮพร็อกซี่ หลัว สวัสดี WORLD


ไฟล์การกำหนดค่า HAProxy (สวัสดี_world.conf):

ทั่วโลก
lua-load สวัสดี_world.lua

ฟังพร็อกซี่
ผูก 127.0.0.1:10001
tcp-request ตรวจสอบล่าช้า 1s
tcp-request content ใช้บริการ lua.hello_world

ไฟล์ HAProxy Lua (สวัสดี_world.lua):

core.register_service("hello_world", "tcp", ฟังก์ชัน (แอปเพล็ต)
applet:send("สวัสดีชาวโลก\n")
จบ)

วิธีเริ่ม HAProxy เพื่อทดสอบการกำหนดค่านี้:

./haproxy -f hello_world.conf

บนเทอร์มินัลอื่น คุณสามารถทดสอบด้วย telnet:

#:~ เทลเน็ต 127.0.0.1 10001
hello โลก

ชั้น แกน ()
คลาส "core" มีฟังก์ชันหลัก HAProxy ทั้งหมด ฟังก์ชันเหล่านี้มีประโยชน์
สำหรับการควบคุมขั้นตอนการดำเนินการ การลงทะเบียน hook การจัดการแผนที่โลก
หรือ ACL, ...

โดยทั่วไปคลาส "core" จะมาพร้อมกับ HAProxy เลขที่ ต้องการ ต้องใช้สายเพื่อ
ใช้ฟังก์ชันเหล่านี้

คลาส "core" เป็นแบบสแตติก ไม่สามารถสร้างอ็อบเจ็กต์ประเภทนี้ใหม่ได้

core.ฉุกเฉิน

คืนสินค้า
จำนวนเต็ม

แอตทริบิวต์นี้เป็นจำนวนเต็ม มีค่าของ "ฉุกเฉิน" ระดับล็อก
(0)

core.alert

คืนสินค้า
จำนวนเต็ม

แอตทริบิวต์นี้เป็นจำนวนเต็ม โดยมีค่าของ "การแจ้งเตือน" ระดับล็อก (1)

core.crit

คืนสินค้า
จำนวนเต็ม

แอตทริบิวต์นี้เป็นจำนวนเต็ม โดยมีค่าล็อกระดับ "วิกฤต" (2)

core.err

คืนสินค้า
จำนวนเต็ม

แอตทริบิวต์นี้เป็นจำนวนเต็ม โดยมีค่าของ "ข้อผิดพลาด" ระดับล็อก (3)

แกนหลักคำเตือน

คืนสินค้า
จำนวนเต็ม

แอตทริบิวต์นี้เป็นจำนวนเต็ม โดยมีค่าของ "คำเตือน" ระดับบันทึก (4)

core.ข้อสังเกต

คืนสินค้า
จำนวนเต็ม

แอตทริบิวต์นี้เป็นจำนวนเต็ม โดยมีค่าของ "ประกาศ" ของบันทึกระดับ (5)

core.info

คืนสินค้า
จำนวนเต็ม

แอตทริบิวต์นี้เป็นจำนวนเต็ม โดยมีค่าของ "ข้อมูล" ของ loglevel (6)

core.debug

คืนสินค้า
จำนวนเต็ม

แอตทริบิวต์นี้เป็นจำนวนเต็ม โดยมีค่าของ loglevel "debug" (7)

core.log (ระดับล็อก, ผงชูรส)
สิ่งแวดล้อม: เนื้อหา, เริ่มต้น, งาน, การกระทำ, การดึงตัวอย่าง, ตัวแปลง

ฟังก์ชันนี้ส่งบันทึก บันทึกถูกส่งตาม HAProxy
ไฟล์การกำหนดค่าบนเซิร์ฟเวอร์ syslog เริ่มต้นหากได้รับการกำหนดค่าและบน
stderr หากได้รับอนุญาต

ข้อโต้แย้ง

· ระดับการบันทึก (จำนวนเต็ม) -- ระดับบันทึกเกี่ยวข้องกับข้อความหรือไม่ มันคือ
ตัวเลขระหว่าง 0 ถึง 7

· msg (เชือก) -- เนื้อหาบันทึก

ดู core.emerg, core.alert, core.crit, core.err, core.warning, core.notice,
core.info, core.debug (คำจำกัดความระดับบันทึก)

ดู รหัส ดีบัก

ดู core.ข้อมูล

ดู core.คำเตือน

ดู หลักการแจ้งเตือน

core.Debug(ผงชูรส)
สิ่งแวดล้อม: เนื้อหา, เริ่มต้น, งาน, การกระทำ, การดึงตัวอย่าง, ตัวแปลง

ข้อโต้แย้ง

· msg (เชือก) -- เนื้อหาบันทึก

ดู เข้าสู่ระบบ

ทำงานเหมือนกันกว่า:

ฟังก์ชัน การแก้ปัญหา(ผงชูรส)
core.log (core.debug, ผงชูรส)
ปลาย

core.ข้อมูล(ผงชูรส)
สิ่งแวดล้อม: เนื้อหา, เริ่มต้น, งาน, การกระทำ, การดึงตัวอย่าง, ตัวแปลง

ข้อโต้แย้ง

· msg (เชือก) -- เนื้อหาบันทึก

ดู เข้าสู่ระบบ

ฟังก์ชัน ข้อมูล(ผงชูรส)
core.log(core.info, ผงชูรส)
ปลาย

core.คำเตือน(ผงชูรส)
สิ่งแวดล้อม: เนื้อหา, เริ่มต้น, งาน, การกระทำ, การดึงตัวอย่าง, ตัวแปลง

ข้อโต้แย้ง

· msg (เชือก) -- เนื้อหาบันทึก

ดู เข้าสู่ระบบ

ฟังก์ชัน การเตือน(ผงชูรส)
core.log(core.warning, ผงชูรส)
ปลาย

หลักการแจ้งเตือน(ผงชูรส)
สิ่งแวดล้อม: เนื้อหา, เริ่มต้น, งาน, การกระทำ, การดึงตัวอย่าง, ตัวแปลง

ข้อโต้แย้ง

· msg (เชือก) -- เนื้อหาบันทึก

ดู เข้าสู่ระบบ

ฟังก์ชัน เตือนภัย(ผงชูรส)
core.log(core.alert, ผงชูรส)
ปลาย

core.add_acl (ชื่อไฟล์ สำคัญ)
สิ่งแวดล้อม: init, งาน, การดำเนินการ, การดึงข้อมูลตัวอย่าง, ตัวแปลง

เพิ่ม ACL สำคัญ ในรายการ ACL ที่อ้างอิงโดยไฟล์ ชื่อไฟล์.

ข้อโต้แย้ง

· ชื่อไฟล์ (เชือก) -- ชื่อไฟล์ที่อ้างอิงรายการ ACL

· สำคัญ (เชือก) -- คีย์ที่จะเพิ่ม

core.del_acl (ชื่อไฟล์ สำคัญ)
สิ่งแวดล้อม: init, งาน, การดำเนินการ, การดึงข้อมูลตัวอย่าง, ตัวแปลง

ลบรายการ ACL ที่อ้างอิงโดยคีย์ สำคัญ ในรายการ ACL ที่อ้างอิงโดย
ชื่อไฟล์.

ข้อโต้แย้ง

· ชื่อไฟล์ (เชือก) -- ชื่อไฟล์ที่อ้างอิงรายการ ACL

· สำคัญ (เชือก) -- คีย์ซึ่งจะถูกลบ

core.del_map (ชื่อไฟล์, สำคัญ)
สิ่งแวดล้อม: init, งาน, การดำเนินการ, การดึงข้อมูลตัวอย่าง, ตัวแปลง

ลบรายการแผนที่ที่จัดทำดัชนีด้วยคีย์ที่ระบุในรายการแผนที่ที่อ้างอิง
ตามชื่อไฟล์ของเขา

ข้อโต้แย้ง

· ชื่อไฟล์ (เชือก) -- ชื่อไฟล์ที่อ้างอิงรายการแผนที่

· สำคัญ (เชือก) -- คีย์ซึ่งจะถูกลบ

core.msleep(มิลลิวินาที)
สิ่งแวดล้อม: body, init, งาน, การกระทำ

พื้นที่ core.msleep() หยุดการดำเนินการ Lua ระหว่างมิลลิวินาทีที่ระบุ

ข้อโต้แย้ง

· มิลลิวินาที (จำนวนเต็ม) -- มิลลิวินาทีที่ต้องการ

core.register_action (ชื่อ การกระทำ ฟังก์)
สิ่งแวดล้อม: ร่างกาย

ลงทะเบียนฟังก์ชัน Lua ที่ดำเนินการเป็นการดำเนินการ สามารถใช้การกระทำที่ลงทะเบียนทั้งหมดได้
ใน HAProxy ด้วยคำนำหน้า "lua" การดำเนินการรับคลาสอ็อบเจ็กต์ TXN เป็นอินพุต

ข้อโต้แย้ง

· ชื่อ (เชือก) -- คือชื่อของตัวแปลง

· การปฏิบัติ (ตาราง) - เป็นตารางสตริงที่อธิบายการกระทำ HAProxy ใคร
ต้องการลงทะเบียนที่ การกระทำที่คาดหวังคือ 'tcp-req', 'tcp-res',
'http-req' หรือ 'http-res'

· ฟังก์ชั่น (ฟังก์ชัน) -- เป็นฟังก์ชัน Lua ที่ถูกเรียกให้ทำงานเป็นตัวแปลง

ต้นแบบของฟังก์ชัน Lua ที่ใช้เป็นอาร์กิวเมนต์คือ:

ฟังก์ชัน(txn)

·

เท็กซัส (TXN ชั้น): นี้ is a TXN วัตถุ มือสอง for การจัดการกับ
คำขอปัจจุบันหรือสตรีม TCP

ที่นี่ ตัวอย่างของการลงทะเบียนดำเนินการ การกระทำเพียงแค่ส่ง 'สวัสดีชาวโลก' ใน
บันทึก

core.register_action ("hello-world", { "tcp-req", "http-req" }, ฟังก์ชัน (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]]]])

· Str (เชือก): นี่คือค่าอินพุตที่แปลงเป็นสตริงโดยอัตโนมัติ

· p1 .. p5 (เชือก): นี่คือรายการของอาร์กิวเมนต์สตริงที่ประกาศใน haroxy
ไฟล์การกำหนดค่า จำนวนอาร์กิวเมนต์ไม่เกิน 5 ลำดับและ
ธรรมชาติของสิ่งเหล่านี้ถูกเลือกโดยนักพัฒนาตามอัตภาพ

core.register_fetches (ชื่อ ฟังก์)
สิ่งแวดล้อม: ร่างกาย

ลงทะเบียนฟังก์ชัน Lua ที่ดำเนินการเป็นการดึงตัวอย่าง การดึงข้อมูลตัวอย่างที่ลงทะเบียนทั้งหมด
สามารถใช้ใน HAProxy ที่มีคำนำหน้า "lua" การดึงตัวอย่าง Lua จะส่งคืนสตริง
เป็นเอาต์พุต ฟังก์ชันที่ลงทะเบียนสามารถรับค่าได้ถึง 9 ค่าเป็นพารามิเตอร์ ทั้งหมด
ค่าเป็นสตริง

ข้อโต้แย้ง

· ชื่อ (เชือก) -- คือชื่อของตัวแปลง

· ฟังก์ชั่น (ฟังก์ชัน) -- เป็นฟังก์ชัน Lua ที่ถูกเรียกให้ทำงานเป็นตัวอย่างการดึงข้อมูล

ต้นแบบของฟังก์ชัน Lua ที่ใช้เป็นอาร์กิวเมนต์คือ:

ฟังก์ชันสตริง (txn, [p1 [, p2 [, ... [, p5]]]])

· เท็กซัส (TXN ชั้น): นี่คือวัตถุ txn ที่เกี่ยวข้องกับคำขอปัจจุบัน

· p1 .. p5 (เชือก): นี่คือรายการของอาร์กิวเมนต์สตริงที่ประกาศใน haroxy
ไฟล์การกำหนดค่า จำนวนอาร์กิวเมนต์ไม่เกิน 5 ลำดับและ
ธรรมชาติของสิ่งเหล่านี้ถูกเลือกโดยนักพัฒนาตามอัตภาพ

· คืนสินค้า: สตริงที่มีข้อมูลบางส่วน หากไม่มี หากไม่สามารถคืนค่าได้ในขณะนี้

รหัสตัวอย่าง lua:

core.register_fetches ("สวัสดี" ฟังก์ชัน (txn)
กลับ "สวัสดี"
จบ)
ตัวอย่างการกำหนดค่า HAProxy:

ตัวอย่างส่วนหน้า
http-request เปลี่ยนเส้นทางตำแหน่ง /%[lua.hello]

core.register_service (ชื่อ โหมด, ฟังก์)
สิ่งแวดล้อม: ร่างกาย

ลงทะเบียนฟังก์ชัน Lua ที่ดำเนินการเป็นบริการ สามารถลงทะเบียนบริการทั้งหมดได้
ใช้ใน HAProxy ด้วยคำนำหน้า "lua." บริการรับคลาสอ็อบเจ็กต์เป็นอินพุต
ตามโหมดที่ต้องการ

ข้อโต้แย้ง

· ชื่อ (เชือก) -- คือชื่อของตัวแปลง

· โหมด (เชือก) - เป็นสตริงที่อธิบายโหมดที่ต้องการ เฉพาะ 'tcp' หรือ
อนุญาตให้ใช้ 'http'

· ฟังก์ชั่น (ฟังก์ชัน) -- เป็นฟังก์ชัน Lua ที่ถูกเรียกให้ทำงานเป็นตัวแปลง

ต้นแบบของฟังก์ชัน Lua ที่ใช้เป็นอาร์กิวเมนต์คือ:

ฟังก์ชัน (แอปเพล็ต)

· แอปเพล็ แอปเพล็ จะเป็น แอปเพล็ตTCP ชั้น หรือ แอพเพล็ต HTTP ชั้น. ขึ้นอยู่กับประเภท
ของแอพเพล็ตที่ลงทะเบียน แอพเพล็ตที่ลงทะเบียนด้วยค่า 'http' สำหรับ โหมด
พารามิเตอร์จะได้รับ a แอพเพล็ต HTTP ชั้น. หาก โหมด ค่าคือ 'tcp' แอปเพล็ตจะ
ได้รับ แอปเพล็ตTCP ชั้น.

คำเตือน: ไม่สามารถเรียกแอปเพล็ตประเภท 'http' จาก 'tcp-' ชุดกฎ เหลือเพียง 'http-'
ชุดกฎได้รับอนุญาต ซึ่งหมายความว่าไม่สามารถเรียกแอปเพล็ต HTTP จากa
พร็อกซี่ในโหมด TCP แอปเพล็ตประเภท 'tcp' สามารถเรียกได้จากทุกที่

นี่คือตัวอย่างการลงทะเบียนบริการ บริการเพียงแค่ส่ง 'Hello world' เป็น an
การตอบสนอง http

core.register_service("สวัสดีชาวโลก", "http", ฟังก์ชัน (แอปเพล็ต)
การตอบสนองในท้องถิ่น = "สวัสดีชาวโลก!"
แอปเพล็ต:set_status(200)
applet:add_header("เนื้อหายาว", string.len(ตอบกลับ))
applet:add_header("ประเภทเนื้อหา", "ข้อความ/ธรรมดา")
แอปเพล็ต:start_response()
แอปเพล็ต: ส่ง (ตอบกลับ)
จบ)
โค้ดตัวอย่างนี้ใช้ในการกำหนดค่า HAproxy ดังนี้:

ตัวอย่างส่วนหน้า
http-ขอใช้บริการ lua.hello-world

core.register_init (ฟังก์ชัน)
สิ่งแวดล้อม: ร่างกาย

ลงทะเบียนฟังก์ชันที่ดำเนินการหลังจากการแยกวิเคราะห์การกำหนดค่า สิ่งนี้มีประโยชน์ต่อ
ตรวจสอบพารามิเตอร์ใด ๆ

ข้อโต้แย้ง

· ฟังก์ชั่น (ฟังก์ชัน) -- เป็นฟังก์ชัน Lua ที่ถูกเรียกให้ทำงานเป็นตัวเริ่มต้น

ต้นแบบของฟังก์ชัน Lua ที่ใช้เป็นอาร์กิวเมนต์คือ:

การทำงาน()
มันไม่รับอินพุตและเอาต์พุตที่คาดหวัง

core.register_task(ฟังก์ชัน)
สิ่งแวดล้อม: เนื้อหา, เริ่มต้น, งาน, การกระทำ, การดึงตัวอย่าง, ตัวแปลง

ลงทะเบียนและเริ่มงานอิสระ งานเริ่มต้นเมื่อ HAProxy main
ตัวกำหนดเวลาเริ่มต้น ตัวอย่างเช่น งานประเภทนี้สามารถดำเนินการเพื่อดำเนินการที่ซับซ้อนได้
ตรวจสุขภาพ

ข้อโต้แย้ง

· ฟังก์ชั่น (ฟังก์ชัน) -- เป็นฟังก์ชัน Lua ที่ถูกเรียกให้ทำงานเป็นตัวเริ่มต้น

ต้นแบบของฟังก์ชัน Lua ที่ใช้เป็นอาร์กิวเมนต์คือ:

การทำงาน()
มันไม่รับอินพุตและเอาต์พุตที่คาดหวัง

core.set_nice (ดี)
สิ่งแวดล้อม: งาน, การดำเนินการ, การดึงข้อมูลตัวอย่าง, ตัวแปลง

เปลี่ยน Nice ของงานปัจจุบันหรือเซสชันปัจจุบัน

ข้อโต้แย้ง

· ดี (จำนวนเต็ม) -- ค่าที่ดี ต้องอยู่ระหว่าง -1024 ถึง 1024

core.set_map (ชื่อไฟล์, สำคัญ, มูลค่า)
สิ่งแวดล้อม: init, งาน, การดำเนินการ, การดึงข้อมูลตัวอย่าง, ตัวแปลง

ตั้งค่า ความคุ้มค่า ที่เกี่ยวข้องกับคีย์ สำคัญ ในแผนที่อ้างอิงโดย ชื่อไฟล์.

ข้อโต้แย้ง

· ชื่อไฟล์ (เชือก) -- ข้อมูลอ้างอิงแผนที่

· สำคัญ (เชือก) -- ปุ่มสำหรับตั้งค่าหรือเปลี่ยน

· ความคุ้มค่า (เชือก) -- ค่าที่เกี่ยวข้อง

core.sleep(int .) วินาที)
สิ่งแวดล้อม: body, init, งาน, การกระทำ

พื้นที่ แกนนอน () ฟังก์ชันหยุดการดำเนินการ Lua ระหว่างวินาทีที่ระบุ

ข้อโต้แย้ง

· วินาที (จำนวนเต็ม) -- วินาทีที่ต้องการ

core.tcp()
สิ่งแวดล้อม: init, งาน, การกระทำ

ฟังก์ชันนี้ส่งคืนอ็อบเจ็กต์ใหม่ของa เบ้า ชั้นเรียน

คืนสินค้า
A เบ้า ชั้น วัตถุ.

core.done (ข้อมูล)
สิ่งแวดล้อม: เนื้อหา, เริ่มต้น, งาน, การกระทำ, การดึงตัวอย่าง, ตัวแปลง

ข้อโต้แย้ง

· ข้อมูล (ใด) -- ส่งคืนข้อมูลบางส่วนสำหรับผู้โทร เป็นประโยชน์กับ
การดึงข้อมูลตัวอย่างและตัวแปลงตัวอย่าง

หยุดการดำเนินการ Lua ปัจจุบันทันทีและกลับไปที่ผู้โทรซึ่งอาจ
การดึงข้อมูลตัวอย่าง ตัวแปลง หรือการดำเนินการและส่งกลับค่าที่ระบุ (ละเว้น
สำหรับการกระทำ) ใช้เมื่อกระบวนการ LUA เสร็จสิ้นและต้องการให้
ย้อนกลับการควบคุมไปที่ HAProxy โดยไม่ต้องรันโค้ดที่เหลือ จะเห็นได้ว่า
"ผลตอบแทน" หลายระดับ

core.ผลผลิต()
สิ่งแวดล้อม: งาน, การดำเนินการ, การดึงข้อมูลตัวอย่าง, ตัวแปลง

ให้กลับไปที่ตัวกำหนดตารางเวลา 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.ซี

ดู TXN.sc

ตัวแปลงให้การแปลง statefull มีประโยชน์สำหรับ:

· การแปลงอินพุตเป็น base64

· การใช้แฮชกับสตริงอินพุต (djb2, crc32, sdbm, wt6),

·วันที่รูปแบบ

· json หลบหนี

·แยกภาษาที่ต้องการเปรียบเทียบสองรายการ

·หันไปใช้ตัวอักษรล่างหรือบน

· จัดการกับโต๊ะไม้

ชั้น ช่อง()
HAProxy ใช้บัฟเฟอร์สองตัวสำหรับการประมวลผลคำขอ อันแรกใช้
ด้วยข้อมูลคำขอ (จากไคลเอนต์ไปยังเซิร์ฟเวอร์) และตัวที่สองใช้สำหรับ
ข้อมูลการตอบสนอง (จากเซิร์ฟเวอร์ไปยังไคลเอนต์)

แต่ละบัฟเฟอร์มีข้อมูลสองประเภท ประเภทแรกคือข้อมูลที่เข้ามารอ
สำหรับการประมวลผล ส่วนที่สองคือข้อมูลขาออกที่ประมวลผลแล้ว โดยปกติ,
ข้อมูลขาเข้าจะถูกประมวลผล หลังจากที่ถูกแท็กเป็นข้อมูลขาออก และสุดท้ายคือ
ถูกส่ง ฟังก์ชันต่อไปนี้มีเครื่องมือสำหรับจัดการข้อมูลเหล่านี้ในa
buffer

ไดอะแกรมต่อไปนี้แสดงตำแหน่งที่ฟังก์ชันคลาสช่องสัญญาณถูกนำไปใช้

การเตือน: ไม่สามารถอ่านจากการตอบกลับในการดำเนินการร้องขอ และมันคือ
ไม่สามารถอ่านช่องทางคำขอในการตอบกลับได้
[ภาพ]

Channel.dup(ช่อง)
ฟังก์ชันนี้ส่งคืนสตริงที่มีบัฟเฟอร์ทั้งหมด ข้อมูลไม่ได้
ลบออกจากบัฟเฟอร์และสามารถประมวลผลใหม่ได้ในภายหลัง

หากบัฟเฟอร์ไม่สามารถรับข้อมูลเพิ่มเติมได้ ค่า 'ศูนย์' จะถูกส่งคืน

ข้อโต้แย้ง

· ช่อง (class_channel) -- ช่องที่ถูกจัดการ

คืนสินค้า
สตริงที่มีข้อมูลที่มีอยู่ทั้งหมดหรือศูนย์

Channel.get(ช่อง)
ฟังก์ชันนี้ส่งคืนสตริงที่มีบัฟเฟอร์ทั้งหมด ข้อมูลถูกใช้ไป
จากบัฟเฟอร์

หากบัฟเฟอร์ไม่สามารถรับข้อมูลเพิ่มเติมได้ ค่า 'ศูนย์' จะถูกส่งคืน

ข้อโต้แย้ง

· ช่อง (class_channel) -- ช่องที่ถูกจัดการ

คืนสินค้า
สตริงที่มีข้อมูลที่มีอยู่ทั้งหมดหรือศูนย์

Channel.getline(ช่อง)
ฟังก์ชันนี้ส่งคืนสตริงที่มีบรรทัดแรกของบัฟเฟอร์ ข้อมูล
ถูกบริโภค หากข้อมูลที่ส่งคืนไม่มี 'n' สุดท้ายก็จะถือว่ามากกว่าของมัน
ข้อมูลล่าสุดที่มีอยู่ในบัฟเฟอร์

หากบัฟเฟอร์ไม่สามารถรับข้อมูลเพิ่มเติมได้ ค่า 'ศูนย์' จะถูกส่งคืน

ข้อโต้แย้ง

· ช่อง (class_channel) -- ช่องที่ถูกจัดการ

คืนสินค้า
สตริงที่มีบรรทัดหรือศูนย์ที่มีอยู่

Channel.set (ช่อง, สตริง)
ฟังก์ชันนี้แทนที่เนื้อหาของบัฟเฟอร์ด้วยสตริง ฟังก์ชันส่งคืน
ความยาวที่คัดลอก มิฉะนั้น จะส่งกลับ -1

ชุดข้อมูลที่มีฟังก์ชันนี้จะไม่ถูกส่ง พวกเขารอจุดสิ้นสุดของ HAProxy
การประมวลผลเพื่อให้บัฟเฟอร์เต็ม

ข้อโต้แย้ง

· ช่อง (class_channel) -- ช่องที่ถูกจัดการ

· เชือก (เชือก) -- ข้อมูลที่จะส่ง

คืนสินค้า
จำนวนเต็มที่มีจำนวนไบต์ที่คัดลอกหรือ -1

Channel.append(ช่อง, สตริง)
ฟังก์ชันนี้ผนวกอาร์กิวเมนต์สตริงเข้ากับเนื้อหาของบัฟเฟอร์ ฟังก์ชั่น
คืนค่าความยาวที่คัดลอก มิฉะนั้น จะส่งกลับ -1

ชุดข้อมูลที่มีฟังก์ชันนี้จะไม่ถูกส่ง พวกเขารอจุดสิ้นสุดของ HAProxy
การประมวลผลเพื่อให้บัฟเฟอร์เต็ม

ข้อโต้แย้ง

· ช่อง (class_channel) -- ช่องที่ถูกจัดการ

· เชือก (เชือก) -- ข้อมูลที่จะส่ง

คืนสินค้า
จำนวนเต็มที่มีจำนวนไบต์ที่คัดลอกหรือ -1

Channel.send (ช่อง, สตริง)
ฟังก์ชันนี้จำเป็นต้องส่งข้อมูลทันที เว้นแต่ว่าการเชื่อมต่อเป็น
ปิดบัฟเฟอร์จะถูกล้างอย่างสม่ำเสมอและสามารถส่งสตริงทั้งหมดได้

ข้อโต้แย้ง

· ช่อง (class_channel) -- ช่องที่ถูกจัดการ

· เชือก (เชือก) -- ข้อมูลที่จะส่ง

คืนสินค้า
จำนวนเต็มที่มีจำนวนไบต์ที่คัดลอกหรือ -1

Channel.get_in_length(ช่อง)
ฟังก์ชันนี้จะคืนค่าความยาวของส่วนอินพุตของบัฟเฟอร์

ข้อโต้แย้ง

· ช่อง (class_channel) -- ช่องที่ถูกจัดการ

คืนสินค้า
จำนวนเต็มที่มีจำนวนไบต์ที่มีอยู่

Channel.get_out_length(ช่อง)
ฟังก์ชันนี้จะคืนค่าความยาวของส่วนเอาต์พุตของบัฟเฟอร์

ข้อโต้แย้ง

· ช่อง (class_channel) -- ช่องที่ถูกจัดการ

คืนสินค้า
จำนวนเต็มที่มีจำนวนไบต์ที่มีอยู่

Channel.forward(ช่อง, อินท์)
ฟังก์ชันนี้ถ่ายโอนไบต์จากส่วนอินพุตของบัฟเฟอร์ไปยังส่วนเอาต์พุต

ข้อโต้แย้ง

· ช่อง (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 ทั้งหมดในคำขอที่มีการระบุชื่อใน "ชื่อ"

ข้อโต้แย้ง

· ที่ 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" และแทนที่ด้วยอาร์กิวเมนต์ "replace" ค่าทดแทน
สามารถมีการอ้างอิงกลับเช่น 1, 2, ... ฟังก์ชันนี้ใช้งานได้กับคำขอ

ข้อโต้แย้ง

· ที่ http (class_http) -- วัตถุ http ที่เกี่ยวข้อง

· ชื่อ (เชือก) -- ชื่อส่วนหัว

· นิพจน์ทั่วไป (เชือก) -- นิพจน์ทั่วไปที่ตรงกัน

· แทนที่ (เชือก) -- ค่าทดแทน

ดู HTTP.res_rep_header()

HTTP.res_rep_header (http, ชื่อ, นิพจน์ทั่วไป, สตริง)
จับคู่นิพจน์ทั่วไปในทุกกรณีของฟิลด์ส่วนหัว "ชื่อ" ตาม
เป็น "regex" และแทนที่ด้วยอาร์กิวเมนต์ "replace" ค่าทดแทน
สามารถมีการอ้างอิงกลับเช่น 1, 2, ... ฟังก์ชันนี้ใช้งานได้กับคำขอ

ข้อโต้แย้ง

· ที่ http (class_http) -- วัตถุ http ที่เกี่ยวข้อง

· ชื่อ (เชือก) -- ชื่อส่วนหัว

· นิพจน์ทั่วไป (เชือก) -- นิพจน์ทั่วไปที่ตรงกัน

· แทนที่ (เชือก) -- ค่าทดแทน

ดู HTTP.req_replace_header()

HTTP.req_replace_value (http, ชื่อ, นิพจน์ทั่วไป, แทนที่)
ทำงานเหมือน "HTTP.req_replace_header()" ยกเว้นว่าตรงกับ regex กับ
ทุกค่าที่คั่นด้วยเครื่องหมายจุลภาคของฟิลด์ส่วนหัว "ชื่อ" แทนที่จะเป็นทั้งหมด
ส่วนหัว

ข้อโต้แย้ง

· ที่ http (class_http) -- วัตถุ http ที่เกี่ยวข้อง

· ชื่อ (เชือก) -- ชื่อส่วนหัว

· นิพจน์ทั่วไป (เชือก) -- นิพจน์ทั่วไปที่ตรงกัน

· แทนที่ (เชือก) -- ค่าทดแทน

ดู HTTP.req_replace_header()

ดู HTTP.res_replace_value()

HTTP.res_replace_value (http, ชื่อ, นิพจน์ทั่วไป, แทนที่)
ทำงานเหมือน "HTTP.res_replace_header()" ยกเว้นว่าตรงกับ regex กับ
ทุกค่าที่คั่นด้วยเครื่องหมายจุลภาคของฟิลด์ส่วนหัว "ชื่อ" แทนที่จะเป็นทั้งหมด
ส่วนหัว

ข้อโต้แย้ง

· ที่ http (class_http) -- วัตถุ http ที่เกี่ยวข้อง

· ชื่อ (เชือก) -- ชื่อส่วนหัว

· นิพจน์ทั่วไป (เชือก) -- นิพจน์ทั่วไปที่ตรงกัน

· แทนที่ (เชือก) -- ค่าทดแทน

ดู 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, สถานะ)
เขียนรหัสสถานะการตอบสนองใหม่ด้วยพารามิเตอร์ "code" โปรดทราบว่าเหตุผล
ถูกปรับให้เข้ากับรหัสใหม่โดยอัตโนมัติ

ข้อโต้แย้ง

· ที่ http (class_http) -- วัตถุ http ที่เกี่ยวข้อง

· สถานะ (จำนวนเต็ม) -- รหัสสถานะการตอบกลับใหม่

ชั้น เท็กซัส()
คลาส txn มีฟังก์ชันทั้งหมดที่สัมพันธ์กับธุรกรรม http หรือ tcp
(หมายเหตุกว่าสตรีม TCP จะเหมือนกับธุรกรรม TCP แต่ธุรกรรม HTTP
ไม่เหมือนกับสตรีม TCP)

การใช้คลาสนี้อนุญาตให้ดึงข้อมูลจากคำขอ แก้ไข และ
ส่งต่อ

ฟังก์ชันทั้งหมดที่คลาสนี้มีอยู่ในบริบท
ตัวอย่างการดึงข้อมูล และ การปฏิบัติ.

TXN.ซี

คืนสินค้า
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 หากได้รับอนุญาต

ข้อโต้แย้ง

· เท็กซัส (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.ดีบั๊ก

ดู TXN.ข้อมูล

ดู TXN.คำเตือน

ดู TXN.การแจ้งเตือน

TXN.deflog (TXN, ผงชูรส)
ส่งรายการบันทึกที่มีระดับบันทึกเริ่มต้นสำหรับพร็อกซีที่เชื่อมโยงกับ
การซื้อขาย

ข้อโต้แย้ง

· เท็กซัส (class_txn) -- คลาส txn วัตถุที่มีข้อมูล

· msg (เชือก) -- เนื้อหาบันทึก

ดู TXN.log

TXN. ดีบัก (txn, ผงชูรส)

ข้อโต้แย้ง

· เท็กซัส (class_txn) -- คลาส txn วัตถุที่มีข้อมูล

· msg (เชือก) -- เนื้อหาบันทึก

ดู TXN.log

ทำงานเหมือนกันกว่า:

ฟังก์ชันดีบัก (txn, msg)
TXN.log(txn, core.debug, ผงชูรส)
ปลาย

TXN. ข้อมูล (txn, ผงชูรส)

ข้อโต้แย้ง

· เท็กซัส (class_txn) -- คลาส txn วัตถุที่มีข้อมูล

· msg (เชือก) -- เนื้อหาบันทึก

ดู TXN.log

ฟังก์ชันดีบัก (txn, msg)
TXN.log(txn, core.info, ผงชูรส)
ปลาย

TXN คำเตือน (txn, ผงชูรส)

ข้อโต้แย้ง

· เท็กซัส (class_txn) -- คลาส txn วัตถุที่มีข้อมูล

· msg (เชือก) -- เนื้อหาบันทึก

ดู TXN.log

ฟังก์ชันดีบัก (txn, msg)
TXN.log (txn, core.warning, ผงชูรส)
ปลาย

TXN. การแจ้งเตือน (txn, ผงชูรส)

ข้อโต้แย้ง

· เท็กซัส (class_txn) -- คลาส txn วัตถุที่มีข้อมูล

· msg (เชือก) -- เนื้อหาบันทึก

ดู TXN.log

ฟังก์ชันดีบัก (txn, msg)
TXN.log(txn, core.alert, ผงชูรส)
ปลาย

TXN.get_priv(TXN)
ส่งคืนข้อมูล Lua ที่เก็บไว้ในธุรกรรมปัจจุบัน (ด้วย TXN.set_priv())
การทำงาน. หากไม่มีข้อมูลใดถูกเก็บไว้ มันจะคืนค่าเป็นศูนย์

ข้อโต้แย้ง

· เท็กซัส (class_txn) -- คลาส txn วัตถุที่มีข้อมูล

คืนสินค้า
ข้อมูลทึบแสงที่จัดเก็บไว้ก่อนหน้านี้หรือไม่มีหากไม่มีสิ่งใดที่สามารถใช้ได้

TXN.set_priv(TXN, ข้อมูล)
จัดเก็บข้อมูลใด ๆ ในธุรกรรม HAProxy ปัจจุบัน การกระทำนี้แทนที่ตัวเก่า
ข้อมูลที่เก็บไว้

ข้อโต้แย้ง

· เท็กซัส (class_txn) -- คลาส txn วัตถุที่มีข้อมูล

· ข้อมูล (ทึบแสง) -- ข้อมูลที่จัดเก็บไว้ในรายการ

TXN.set_var(เท็กซัส วาร์ มูลค่า)
แปลงชนิด Lua ในประเภท HAProxy และเก็บไว้ในตัวแปร

ข้อโต้แย้ง

· เท็กซัส (class_txn) -- คลาส txn วัตถุที่มีข้อมูล

· คือ (เชือก) -- ชื่อตัวแปรตามตัวแปร HAProxy
วากยสัมพันธ์

· ความคุ้มค่า (ทึบแสง) -- ข้อมูลที่เก็บไว้ในตัวแปร

TXN.get_var(เท็กซัส วาร์)
ส่งคืนข้อมูลที่เก็บไว้ในตัว แปลง ตัวแปร ในประเภท Lua

ข้อโต้แย้ง

· เท็กซัส (class_txn) -- คลาส txn วัตถุที่มีข้อมูล

· คือ (เชือก) -- ชื่อตัวแปรตามตัวแปร HAProxy
วากยสัมพันธ์

TXN.get_headers (txn)
ฟังก์ชันนี้ส่งคืนอาร์เรย์ของส่วนหัว

ข้อโต้แย้ง

· เท็กซัส (class_txn) -- คลาส txn วัตถุที่มีข้อมูล

คืนสินค้า
อาร์เรย์ของส่วนหัว

TXN.เสร็จสิ้น(txn)
ฟังก์ชันนี้จะยุติการประมวลผลธุรกรรมและเซสชันที่เกี่ยวข้อง
สามารถใช้เมื่อตรวจพบข้อผิดพลาดร้ายแรงหรือยุติการประมวลผลหลังจาก
ข้อมูลบางส่วนถูกส่งกลับไปยังไคลเอนต์ (เช่น: การเปลี่ยนเส้นทาง)

ข้อโต้แย้ง

· เท็กซัส (class_txn) -- คลาส txn วัตถุที่มีข้อมูล

TXN.set_loglevel (txn, บันทึกระดับ)
ใช้เพื่อเปลี่ยนระดับบันทึกของคำขอปัจจุบัน "ระดับล็อก" จะต้องเป็น
จำนวนเต็มระหว่าง 0 ถึง 7

ข้อโต้แย้ง

· เท็กซัส (class_txn) -- คลาส txn วัตถุที่มีข้อมูล

· ระดับการบันทึก (จำนวนเต็ม) -- ระดับบันทึกที่จำเป็น ตัวแปรนี้สามารถเป็นหนึ่งใน

ดู แกน

TXN.set_tos (TXN, ทอส)
ใช้เพื่อตั้งค่าฟิลด์ TOS หรือ DSCP ของแพ็กเก็ตที่ส่งไปยังไคลเอนต์ไปยัง
ค่าที่ส่งผ่านใน "tos" บนแพลตฟอร์มที่รองรับสิ่งนี้

ข้อโต้แย้ง

· เท็กซัส (class_txn) -- คลาส txn วัตถุที่มีข้อมูล

· TOS (จำนวนเต็ม) -- TOS os DSCP ใหม่

TXN.set_mark(เท็กซัส เครื่องหมาย)
ใช้เพื่อตั้งค่า Netfilter MARK บนแพ็กเก็ตทั้งหมดที่ส่งไปยังไคลเอนต์เป็นค่า
ผ่านใน "เครื่องหมาย" บนแพลตฟอร์มที่สนับสนุน

ข้อโต้แย้ง

· เท็กซัส (class_txn) -- คลาส txn วัตถุที่มีข้อมูล

· เครื่องหมาย (จำนวนเต็ม) -- ค่าเครื่องหมาย

ชั้น เบ้า()
คลาสนี้ต้องเข้ากันได้กับคลาส Lua Socket เฉพาะ 'ลูกค้า'
มีฟังค์ชั่นต่างๆ ดูเอกสารประกอบ Lua Socket:

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

Socket.close(ซ็อกเก็ต)
ปิดวัตถุ TCP ซ็อกเก็ตภายในที่ใช้โดยวัตถุถูกปิดและภายในเครื่อง
ที่อยู่ที่วัตถุถูกผูกไว้นั้นทำให้ใช้งานได้กับแอปพลิเคชันอื่น เลขที่
อนุญาตให้ดำเนินการต่อไป (ยกเว้นการเรียกวิธีปิดเพิ่มเติม) บน a
ปิดซ็อกเก็ต

ข้อโต้แย้ง

· เบ้า (class_socket) -- เป็นซ็อกเก็ตที่ถูกจัดการ

หมายเหตุ: สิ่งสำคัญคือต้องปิดซ็อกเก็ตที่ใช้ทั้งหมดเมื่อไม่จำเป็น เนื่องจากใน
หลายระบบ แต่ละซ็อกเก็ตใช้ file descriptor ซึ่งเป็นระบบที่จำกัด
ทรัพยากร. วัตถุที่เก็บขยะจะถูกปิดโดยอัตโนมัติก่อนที่จะถูกทำลาย
แม้

Socket.connect(ซ็อกเก็ต, ที่อยู่[, ท่า])
ความพยายามที่จะเชื่อมต่อวัตถุซ็อกเก็ตกับโฮสต์ระยะไกล

ในกรณีที่เกิดข้อผิดพลาด เมธอดจะคืนค่าเป็นศูนย์ตามด้วยสตริงที่อธิบายข้อผิดพลาด
ในกรณีที่ประสบความสำเร็จ วิธีการส่งกลับ 1

ข้อโต้แย้ง

· เบ้า (class_socket) -- เป็นซ็อกเก็ตที่ถูกจัดการ

· ที่อยู่ (เชือก) -- สามารถเป็นที่อยู่ IP หรือชื่อโฮสต์ ดูด้านล่างสำหรับ
ข้อมูลมากกว่านี้.

· พอร์ต (จำนวนเต็ม) -- ต้องเป็นตัวเลขจำนวนเต็มในช่วง [1..64K]

คืนสินค้า
1 หรือศูนย์

ส่วนขยายช่องที่อยู่อนุญาตให้ใช้ฟังก์ชัน connect() เพื่อเชื่อมต่อกับ
สตรีมอื่นที่ไม่ใช่ TCP ไวยากรณ์ที่มีที่อยู่ simpleipv4 หรือ ipv6 คือ
รูปแบบที่คาดหวังโดยทั่วไป รูปแบบนี้ต้องใช้พอร์ต

รูปแบบอื่นที่ยอมรับคือเส้นทางของซ็อกเก็ตเช่น "/socket/path" ซึ่งอนุญาตให้เชื่อมต่อ
ไปที่ซ็อกเก็ต เนมสเปซนามธรรมรองรับคำนำหน้า "abns@" และสุดท้าย
filedescriotr สามารถส่งผ่านด้วยคำนำหน้า "fd@" คำนำหน้า "ipv4@", "ipv6@"
และรองรับ "unix@" ด้วย พอร์ตสามารถส่งผ่านเข้าไปในสตริงได้ ไวยากรณ์
"127.0.0.1:1234" ถูกต้อง ในกรณีนี้ พารามิเตอร์ พอร์ต ถูกละเว้น

Socket.connect_ssl (ซ็อกเก็ต ที่อยู่ ) พอร์ต
ลักษณะการทำงานเหมือนกับฟังก์ชัน socket:connect แต่ใช้ SSL

ข้อโต้แย้ง

· เบ้า (class_socket) -- เป็นซ็อกเก็ตที่ถูกจัดการ

คืนสินค้า
1 หรือศูนย์

Socket.getpeername (ซ็อกเก็ต)
ส่งกลับข้อมูลเกี่ยวกับด้านระยะไกลของวัตถุไคลเอนต์ที่เชื่อมต่อ

ส่งกลับสตริงที่มีที่อยู่ IP ของเพียร์ ตามด้วยหมายเลขพอร์ตที่
เพียร์ใช้สำหรับการเชื่อมต่อ ในกรณีที่เกิดข้อผิดพลาด เมธอดจะคืนค่าเป็นศูนย์

ข้อโต้แย้ง

· เบ้า (class_socket) -- เป็นซ็อกเก็ตที่ถูกจัดการ

คืนสินค้า
สตริงที่มีข้อมูลเซิร์ฟเวอร์

Socket.getsockname (ซ็อกเก็ต)
ส่งกลับข้อมูลที่อยู่ในเครื่องที่เกี่ยวข้องกับวัตถุ

เมธอดส่งคืนสตริงที่มีที่อยู่ IP ในเครื่องและหมายเลขที่มีพอร์ต ใน
กรณีเกิดข้อผิดพลาด วิธีการคืนค่าศูนย์

ข้อโต้แย้ง

· เบ้า (class_socket) -- เป็นซ็อกเก็ตที่ถูกจัดการ

คืนสินค้า
สตริงที่มีข้อมูลลูกค้า

Socket.receive (ซ็อกเก็ต [, ลวดลาย[, คำนำหน้า]])
อ่านข้อมูลจากวัตถุไคลเอนต์ ตามรูปแบบการอ่านที่ระบุ รูปแบบ
ตามรูปแบบ I/O ของไฟล์ Lua และความแตกต่างในประสิทธิภาพระหว่างทั้งหมด
รูปแบบเล็กน้อย

ข้อโต้แย้ง

· เบ้า (class_socket) -- เป็นซ็อกเก็ตที่ถูกจัดการ

· Belt hold (สตริง | จำนวนเต็ม) -- อธิบายสิ่งที่จำเป็น (ดูด้านล่าง)

· อุปสรรค (เชือก) -- สตริงที่จะนำหน้าข้อมูลที่ส่งคืน

คืนสินค้า
สตริงที่มีข้อมูลที่จำเป็นหรือศูนย์

รูปแบบสามารถเป็นอย่างใดอย่างหนึ่งต่อไปนี้:

·

`*ก`: อ่าน ราคาเริ่มต้นที่ เบ้า จนกระทั่ง การเชื่อมต่อ is ปิด ไม่
ดำเนินการแปลตอนท้ายบรรทัด

·

`*ล': อ่าน a เส้น of ข้อความ ราคาเริ่มต้นที่ เบ้า. พื้นที่ เส้น is สิ้นสุด by a
อักขระ LF (ASCII 10) หรือไม่ก็ได้ นำหน้าด้วยอักขระ CR (ASCII 13)
อักขระ CR และ LF ไม่รวมอยู่ในบรรทัดที่ส่งคืน ในความเป็นจริง,
อักขระ CR ทั้งหมดจะถูกละเว้นโดยรูปแบบ นี่คือรูปแบบเริ่มต้น

·

จำนวน: สาเหตุที่ วิธี ไปยัง อ่าน a ที่ระบุไว้ จำนวน of ไบต์ ราคาเริ่มต้นที่
เบ้า. คำนำหน้าเป็นสตริงทางเลือกที่จะต่อกับจุดเริ่มต้น
ของข้อมูลที่ได้รับก่อนส่งคืน

· ไม่มีข้อมูล: หากปล่อยว่างไว้ ตัวเลือกเริ่มต้นคือ *l.

หากสำเร็จ เมธอดจะคืนค่ารูปแบบที่ได้รับ ในกรณีผิดพลาด
เมธอดส่งคืน nil ตามด้วยข้อความแสดงข้อผิดพลาดซึ่งสามารถเป็นสตริง 'ปิด' ใน
กรณีที่การเชื่อมต่อถูกปิดก่อนที่การส่งจะเสร็จสิ้นหรือสตริง
'หมดเวลา' ในกรณีที่มีการหมดเวลาระหว่างการดำเนินการ นอกจากนี้หลังจากข้อผิดพลาด
ข้อความ ฟังก์ชันจะส่งกลับผลลัพธ์บางส่วนของการส่ง

หมายเหตุสำคัญ: ฟังก์ชันนี้มีการเปลี่ยนแปลงอย่างรุนแรง เคยรองรับหลายตัว
รูปแบบ (แต่ฉันไม่เคยเห็นคุณลักษณะนี้ใช้) และตอนนี้ก็ไม่ได้อีกต่อไป
ผลลัพธ์บางส่วนเคยถูกส่งคืนในลักษณะเดียวกับผลลัพธ์ที่ประสบความสำเร็จ นี้
คุณลักษณะสุดท้ายละเมิดแนวคิดที่ว่าฟังก์ชันทั้งหมดควรคืนค่าศูนย์เมื่อมีข้อผิดพลาด ดังนั้น
มันก็เปลี่ยนไปด้วย

Socket.send (ซ็อกเก็ต ข้อมูล[, เริ่ม[, จบ]])
ส่งข้อมูลผ่านวัตถุไคลเอนต์

ข้อโต้แย้ง

· เบ้า (class_socket) -- เป็นซ็อกเก็ตที่ถูกจัดการ

· ข้อมูล (เชือก) -- ข้อมูลที่จะส่ง

· เริ่มต้น (จำนวนเต็ม) -- ตำแหน่งเริ่มต้นในบัฟเฟอร์ของข้อมูลที่จะ
จะถูกส่ง

· ปลาย (จำนวนเต็ม) -- ตำแหน่งสิ้นสุดในบัฟเฟอร์ของข้อมูลซึ่งจะเป็น
ส่ง

คืนสินค้า
ดูด้านล่าง

ข้อมูลคือสตริงที่จะส่ง อาร์กิวเมนต์ทางเลือก i และ j ทำงานเหมือนกับ
ฟังก์ชัน string.sub Lua มาตรฐานเพื่อให้สามารถเลือกสตริงย่อยได้

หากสำเร็จ เมธอดจะคืนค่าดัชนีของไบต์สุดท้ายภายใน [start, end]
ที่ส่งไปแล้ว สังเกตว่า ถ้า start เป็น 1 หรือขาดหายไป นี่จะเป็น
จำนวนไบต์ทั้งหมดที่ส่ง ในกรณีที่เกิดข้อผิดพลาด เมธอดจะคืนค่าเป็นศูนย์ ตามด้วย
ข้อความแสดงข้อผิดพลาดตามด้วยดัชนีของไบต์สุดท้ายภายใน [เริ่ม, สิ้นสุด] นั้น
ได้ถูกส่งไป. คุณอาจต้องการลองอีกครั้งจากไบต์ที่ตามมา ความผิดพลาด
ข้อความสามารถ 'ปิด' ในกรณีที่การเชื่อมต่อถูกปิดก่อนการส่งสัญญาณ
เสร็จสมบูรณ์หรือสตริง 'หมดเวลา' ในกรณีที่มีการหมดเวลาระหว่าง
การทำงาน

หมายเหตุ: เอาต์พุตไม่ถูกบัฟเฟอร์ สำหรับสายเล็ก ๆ จะดีกว่าเสมอที่จะต่อกัน
พวกเขาใน Lua (ด้วยโอเปอเรเตอร์ '.. ') และส่งผลในการโทรครั้งเดียวแทน
เรียกวิธีการหลายครั้ง

Socket.setoption (ซ็อกเก็ต, ตัวเลือก[, ค่า])
เพิ่งนำมาใช้เพื่อความเข้ากันได้ cal นี้ไม่ทำอะไรเลย

Socket.settimeout (ซ็อกเก็ต ค่า[, โหมด])
เปลี่ยนค่าการหมดเวลาสำหรับอ็อบเจ็กต์ การดำเนินการ I/O ทั้งหมดกำลังถูกบล็อก ที่
คือ การเรียกวิธีการใด ๆ ที่ส่ง รับ และยอมรับ จะถูกบล็อกอย่างไม่มีกำหนด
จนกว่าการดำเนินการจะเสร็จสิ้น วิธี settimeout กำหนดขีดจำกัดของจำนวนเงิน
ของเวลาที่เมธอด I/O สามารถบล็อกได้ เมื่อหมดเวลาหมดเวลา ตัวที่ได้รับผลกระทบ
วิธีการยอมแพ้และล้มเหลวด้วยรหัสข้อผิดพลาด

ระยะเวลารอถูกระบุเป็นพารามิเตอร์ค่าเป็นวินาที

โหมดไทม์เอาต์ถูกใช้งานบอท ไทม์เอาต์ที่ตั้งค่าได้เท่านั้นคือการไม่ใช้งาน
เวลาที่รอให้บัฟเฟอร์ภายในเสร็จสมบูรณ์ ส่งหรือรอรับข้อมูล

ข้อโต้แย้ง

· เบ้า (class_socket) -- เป็นซ็อกเก็ตที่ถูกจัดการ

· ความคุ้มค่า (จำนวนเต็ม) -- ค่าการหมดเวลา

ชั้น แผนที่()
คลาสนี้อนุญาตให้ทำการค้นหาในแผนที่ HAProxy แผนที่ที่ประกาศสามารถเป็น
แก้ไขระหว่างรันไทม์ผ่านซ็อกเก็ตการจัดการ HAProxy

ค่าเริ่มต้น = "สหรัฐอเมริกา"

-- สร้างและโหลดแผนที่
geo = Map.new("geo.map", Map.ip);

-- สร้างการดึงข้อมูลที่ส่งคืนประเทศของผู้ใช้
core.register_fetches("ประเทศ", ฟังก์ชัน (txn)
ท้องถิ่น src;
ท้องถิ่นท้องถิ่น;

src = txn.f:fhdr("x-forwarded-for");
ถ้า (src == ไม่มี) แล้ว
src = txn.f:src()
ถ้า (src == ไม่มี) แล้ว
กลับค่าเริ่มต้น;
ปลาย
ปลาย

-- ทำการค้นหา
loc = ภูมิศาสตร์: ค้นหา (src);

ถ้า (loc == ไม่มี) แล้ว
กลับค่าเริ่มต้น;
ปลาย

กลับ loc;
จบ);

แผนที่.int
ดูไฟล์ HAProxy configuration.txt บทที่ "การใช้ ACL และการดึงตัวอย่าง"
ในบทย่อย "พื้นฐาน ACL" เพื่อทำความเข้าใจวิธีการจับคู่รูปแบบนี้

แผนที่.ip ดูไฟล์ HAProxy configuration.txt บทที่ "การใช้ ACL และการดึงตัวอย่าง"
ในบทย่อย "พื้นฐาน ACL" เพื่อทำความเข้าใจวิธีการจับคู่รูปแบบนี้

Map.str
ดูไฟล์ HAProxy configuration.txt บทที่ "การใช้ ACL และการดึงตัวอย่าง"
ในบทย่อย "พื้นฐาน ACL" เพื่อทำความเข้าใจวิธีการจับคู่รูปแบบนี้

แผนที่ขอ
ดูไฟล์ HAProxy configuration.txt บทที่ "การใช้ ACL และการดึงตัวอย่าง"
ในบทย่อย "พื้นฐาน ACL" เพื่อทำความเข้าใจวิธีการจับคู่รูปแบบนี้

Map.sub
ดูไฟล์ HAProxy configuration.txt บทที่ "การใช้ ACL และการดึงตัวอย่าง"
ในบทย่อย "พื้นฐาน ACL" เพื่อทำความเข้าใจวิธีการจับคู่รูปแบบนี้

แผนที่.dir
ดูไฟล์ HAProxy configuration.txt บทที่ "การใช้ ACL และการดึงตัวอย่าง"
ในบทย่อย "พื้นฐาน ACL" เพื่อทำความเข้าใจวิธีการจับคู่รูปแบบนี้

แผนที่.ดม
ดูไฟล์ HAProxy configuration.txt บทที่ "การใช้ ACL และการดึงตัวอย่าง"
ในบทย่อย "พื้นฐาน ACL" เพื่อทำความเข้าใจวิธีการจับคู่รูปแบบนี้

แผนที่.สิ้นสุด
ดูไฟล์ HAProxy configuration.txt บทที่ "การใช้ ACL และการดึงตัวอย่าง"
ในบทย่อย "พื้นฐาน ACL" เพื่อทำความเข้าใจวิธีการจับคู่รูปแบบนี้

Map.reg
ดูไฟล์ HAProxy configuration.txt บทที่ "การใช้ ACL และการดึงตัวอย่าง"
ในบทย่อย "พื้นฐาน ACL" เพื่อทำความเข้าใจวิธีการจับคู่รูปแบบนี้

Map.new(ไฟล์, วิธี)
สร้างและโหลดแผนที่

ข้อโต้แย้ง

· ไฟล์ (เชือก) -- คือไฟล์ที่มีแผนที่

· วิธี (จำนวนเต็ม) -- เป็นวิธีจับคู่รูปแบบแผนที่ ดูคุณสมบัติ
ของคลาสแผนที่

คืนสินค้า
ออบเจ็กต์แผนที่คลาส

ดู แอตทริบิวต์แผนที่

Map.lookup(แผนที่, STR)
ดำเนินการค้นหาในแผนที่

ข้อโต้แย้ง

· แผนที่ (class_map) -- เป็นอ็อบเจ็กต์ class Map

· Str (เชือก) -- เป็นสตริงที่ใช้เป็นคีย์หรือไม่

คืนสินค้า
สตริงที่มีผลลัพธ์หรือศูนย์หากไม่มีการจับคู่

Map.slookup(แผนที่, STR)
ดำเนินการค้นหาในแผนที่

ข้อโต้แย้ง

· แผนที่ (class_map) -- เป็นอ็อบเจ็กต์ class Map

· Str (เชือก) -- เป็นสตริงที่ใช้เป็นคีย์หรือไม่

คืนสินค้า
สตริงที่มีผลลัพธ์หรือสตริงว่างหากไม่มีการจับคู่

ชั้น แอปเพล็ HTTP()
คลาสนี้ใช้กับแอปเพล็ตที่ต้องการโหมด 'http' http applet can
ลงทะเบียนกับ core.register_service() การทำงาน. ใช้สำหรับ
กำลังประมวลผลคำขอ http เช่นเซิร์ฟเวอร์ที่ด้านหลังของ HAProxy

นี่คือตัวอย่างโค้ดของ Hello world:

core.register_service("สวัสดีชาวโลก", "http", ฟังก์ชัน (แอปเพล็ต)
การตอบสนองในท้องถิ่น = "สวัสดีชาวโลก!"
แอปเพล็ต:set_status(200)
applet:add_header("เนื้อหายาว", string.len(ตอบกลับ))
applet:add_header("ประเภทเนื้อหา", "ข้อความ/ธรรมดา")
แอปเพล็ต:start_response()
แอปเพล็ต: ส่ง (ตอบกลับ)
จบ)

AppletHTTP.c

คืนสินค้า
A แปลง ชั้น

คุณลักษณะนี้มีอ็อบเจ็กต์คลาส Converters

AppletHTTP.sc

คืนสินค้า
A แปลง ชั้น

คุณลักษณะนี้มีอ็อบเจ็กต์คลาส Converters หน้าที่ของวัตถุนี้
ส่งกลับสตริงเสมอ

แอพเพล็ต HTTP.f

คืนสินค้า
A ดึงข้อมูล ชั้น

คุณลักษณะนี้มีอ็อบเจ็กต์คลาส Fetches โปรดทราบว่าการดำเนินการแอปเพล็ต
สถานที่ไม่สามารถเข้าถึงธุรกรรม HTTP หลัก HAProxy ที่ถูกต้องได้ดังนั้นบางตัวอย่าง
fecthes ที่เกี่ยวข้องกับค่าที่ขึ้นกับ HTTP (hdr, path, ...) ไม่พร้อมใช้งาน

AppletHTTP.sf

คืนสินค้า
A ดึงข้อมูล ชั้น

คุณลักษณะนี้มีอ็อบเจ็กต์คลาส Fetches หน้าที่ของวัตถุนี้
ส่งกลับสตริงเสมอ โปรดทราบว่าสถานที่ดำเนินการแอปเพล็ตไม่สามารถเข้าถึงa
ธุรกรรม HAProxy core HTTP ที่ถูกต้อง ดังนั้นตัวอย่างบางส่วนที่เกี่ยวข้องกับ HTTP
ไม่มีค่าที่ขึ้นต่อกัน (hdr, path, ...)

วิธี AppletHTTP

คืนสินค้า
เชือก

วิธีการแอตทริบิวต์ส่งคืนสตริงที่มีวิธีการ HTTP

แอปเพล็ต HTTP.version

คืนสินค้า
เชือก

เวอร์ชันแอตทริบิวต์ ส่งคืนสตริงที่มีเวอร์ชันคำขอ HTTP

AppletHTTP.path

คืนสินค้า
เชือก

เส้นทางแอตทริบิวต์ส่งคืนสตริงที่มีเส้นทางคำขอ HTTP

AppletHTTP.qs

คืนสินค้า
เชือก

แอตทริบิวต์ qs ส่งคืนสตริงที่มีสตริงการสืบค้นคำขอ HTTP

AppletHTTP.ความยาว

คืนสินค้า
จำนวนเต็ม

ความยาวแอตทริบิวต์ส่งคืนจำนวนเต็มที่มีความยาวเนื้อหา HTTP

AppletHTTP.ส่วนหัว

คืนสินค้า
แถว

ส่วนหัวของแอตทริบิวต์ส่งคืนอาร์เรย์ที่มีส่วนหัว HTTP ส่วนหัว
ชื่อจะเป็นตัวพิมพ์เล็กเสมอ เนื่องจากชื่อส่วนหัวสามารถพบได้มากกว่า
หนึ่งครั้งในแต่ละคำขอ ค่าจะถูกสร้างดัชนีด้วย 0 เป็นค่าดัชนีแรก อาร์เรย์
มีแบบฟอร์มนี้:

AppletHTTP.ส่วนหัว[' '][ ] = " "

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.ส่วนหัว
ประกอบด้วยอาร์เรย์ที่มีส่วนหัวของคำขอทั้งหมด

AppletHTTP.set_status (แอปเพล็ต รหัส)
ฟังก์ชันนี้ตั้งค่ารหัสสถานะ HTTP สำหรับการตอบกลับ รหัสที่อนุญาตมาจาก
เพื่อ 100 599

ข้อโต้แย้ง

· แอปเพล็ (class_AppletHTTP) -- หนึ่ง แอพเพล็ต HTTP ชั้น

· รหัส (จำนวนเต็ม) -- รหัสสถานะที่ส่งคืนให้กับลูกค้า

AppletHTTP.add_header (แอปเพล็ต ชื่อ, มูลค่า)
ฟังก์ชันนี้เพิ่มส่วนหัวในการตอบกลับ ส่วนหัวที่ซ้ำกันจะไม่ยุบ
ส่วนหัวพิเศษ เนื้อหาความยาว ใช้เพื่อกำหนดระยะเวลาตอบสนอง ถ้ามัน
ไม่มีอยู่ การเข้ารหัสการถ่ายโอน: หั่นเป็นชิ้น ถูกตั้งค่าและเขียนทั้งหมดจาก funcion
แอปเพล็ต HTTP: ส่ง () กลายเป็นก้อน

ข้อโต้แย้ง

· แอปเพล็ (class_AppletHTTP) -- หนึ่ง แอพเพล็ต HTTP ชั้น

· ชื่อ (เชือก) -- ชื่อส่วนหัว

· ความคุ้มค่า (เชือก) -- ค่าส่วนหัว

AppletHTTP.start_response(แอปเพล็ต)
ฟังก์ชันนี้ระบุให้เอ็นจิน HTTP ประมวลผลและส่ง
ส่วนหัวของการตอบสนอง หลังจากเรียกสิ่งนี้แล้ว เราไม่สามารถเพิ่มส่วนหัวในการตอบกลับได้ เรา
ไม่สามารถใช้ แอปเพล็ต HTTP: ส่ง () ฟังก์ชันถ้า แอปเพล็ต HTTP: start_response () ไม่ใช่
เรียกว่า

ข้อโต้แย้ง

· แอปเพล็ (class_AppletHTTP) -- หนึ่ง แอพเพล็ต HTTP ชั้น

AppletHTTP.getline (แอปเพล็ต)
ฟังก์ชันนี้ส่งคืนสตริงที่มีหนึ่งบรรทัดจากเนื้อหา http ถ้าข้อมูล
ส่งคืนไม่มี '\ n' สุดท้ายที่ถือว่ามากกว่าข้อมูลล่าสุดที่มีอยู่
ก่อนสิ้นสุดสตรีม

ข้อโต้แย้ง

· แอปเพล็ (class_AppletHTTP) -- หนึ่ง แอพเพล็ต HTTP ชั้น

คืนสินค้า
สตริง. สตริงจะว่างเปล่าได้หากเราไปถึงจุดสิ้นสุดของสตรีม

AppletHTTP.receive (แอปเพล็ต[, ขนาด])
อ่านข้อมูลจากเนื้อหา HTTP ตาม read . ที่ระบุ ขนาด. หาก ขนาด is
หายไป ฟังก์ชันพยายามอ่านเนื้อหาทั้งหมดของสตรีมจนจบ ถ้า
ขนาด ใหญ่กว่าเนื้อหา http จะส่งคืนจำนวนข้อมูลที่ใช้ได้

ข้อโต้แย้ง

· แอปเพล็ (class_AppletHTTP) -- หนึ่ง แอพเพล็ต HTTP ชั้น

· ขนาด (จำนวนเต็ม) -- ขนาดการอ่านที่ต้องการ

คืนสินค้า
ส่งคืนสตริงเสมอ สตริงสามารถว่างเปล่าได้เมื่อการเชื่อมต่อถูกปิด

AppletHTTP.send (แอปเพล็ต ผงชูรส)
ส่งข้อความ msg บนเนื้อหาคำขอ http

ข้อโต้แย้ง

· แอปเพล็ (class_AppletHTTP) -- หนึ่ง แอพเพล็ต HTTP ชั้น

· msg (เชือก) -- ข้อความที่จะส่ง

ชั้น แอปเพล็ตTCP()
คลาสนี้ใช้กับแอปเพล็ตที่ต้องการโหมด 'tcp' แอปเพล็ต tcp สามารถ
ลงทะเบียนกับ core.register_service() การทำงาน. ใช้สำหรับแปรรูป
สตรีม TCP เหมือนเซิร์ฟเวอร์ที่ด้านหลังของ HAProxy

AppletTCP.c

คืนสินค้า
A แปลง ชั้น

คุณลักษณะนี้มีอ็อบเจ็กต์คลาส Converters

AppletTCP.sc

คืนสินค้า
A แปลง ชั้น

คุณลักษณะนี้มีอ็อบเจ็กต์คลาส Converters หน้าที่ของวัตถุนี้
ส่งกลับสตริงเสมอ

แอปเพล็ต TCP.f

คืนสินค้า
A ดึงข้อมูล ชั้น

คุณลักษณะนี้มีอ็อบเจ็กต์คลาส Fetches

AppletTCP.sf

คืนสินค้า
A ดึงข้อมูล ชั้น

คุณลักษณะนี้มีอ็อบเจ็กต์คลาส Fetches

AppletTCP.getline (แอปเพล็ต)
ฟังก์ชันนี้ส่งคืนสตริงที่มีหนึ่งบรรทัดจากสตรีม ถ้าข้อมูล
ส่งคืนไม่มี '\ n' สุดท้ายที่ถือว่ามากกว่าข้อมูลล่าสุดที่มีอยู่
ก่อนสิ้นสุดสตรีม

ข้อโต้แย้ง

· แอปเพล็ (class_AppletTCP) -- หนึ่ง แอปเพล็ตTCP ชั้น

คืนสินค้า
สตริง. สตริงจะว่างเปล่าได้หากเราไปถึงจุดสิ้นสุดของสตรีม

AppletTCP.receive (แอปเพล็ต[, ขนาด])
อ่านข้อมูลจากสตรีม TCP ตาม read . ที่ระบุ ขนาด. หาก ขนาด
หายไป ฟังก์ชันจะพยายามอ่านเนื้อหาทั้งหมดของสตรีมจนจบ

ข้อโต้แย้ง

· แอปเพล็ (class_AppletTCP) -- หนึ่ง แอปเพล็ตTCP ชั้น

· ขนาด (จำนวนเต็ม) -- ขนาดการอ่านที่ต้องการ

คืนสินค้า
ส่งคืนสตริงเสมอ สตริงสามารถว่างเปล่าได้เมื่อการเชื่อมต่อถูกปิด

AppletTCP.send (appletmsg)
ส่งข้อความในสตรีม

ข้อโต้แย้ง

· แอปเพล็ (class_AppletTCP) -- หนึ่ง แอปเพล็ตTCP ชั้น

· 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 ();
ทีซีพี:ตั้งเวลาออก(1);
TCP:เชื่อมต่อ("127.0.0.1", 6379);

-- ใช้ไลบรารี redis กับซ็อกเก็ตใหม่นี้
ลูกค้าท้องถิ่น = redis.connect({socket=tcp});
ลูกค้า:ping();

ปลาย

โอเพ่น SSL:

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

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

ใช้ haproxy-lua ออนไลน์โดยใช้บริการ onworks.net


เซิร์ฟเวอร์และเวิร์กสเตชันฟรี

ดาวน์โหลดแอพ Windows & Linux

  • 1
    สวก
    สวก
    SWIG คือเครื่องมือพัฒนาซอฟต์แวร์
    ที่เชื่อมโปรแกรมที่เขียนด้วยภาษา C และ
    C++ ที่มีระดับสูงหลากหลาย
    ภาษาโปรแกรม SWIG ใช้กับ
    แตกต่าง...
    ดาวน์โหลด SWIG
  • 2
    WooCommerce Nextjs ตอบสนองธีม
    WooCommerce Nextjs ตอบสนองธีม
    ตอบสนองธีม WooCommerce ที่สร้างขึ้นด้วย
    JS, Webpack, Babel, Node และ . ถัดไป
    Express โดยใช้ GraphQL และ Apollo
    ลูกค้า. ร้านค้า WooCommerce ใน React (
    ประกอบด้วย: สินค้า...
    ดาวน์โหลด WooCommerce Nextjs React Theme
  • 3
    Archlabs_repo
    Archlabs_repo
    แพ็คเกจ repo สำหรับ ArchLabs นี่คือ
    แอปพลิเคชันที่สามารถดึงข้อมูลได้
    ราคาเริ่มต้นที่
    https://sourceforge.net/projects/archlabs-repo/.
    ได้รับการโฮสต์ใน OnWorks ใน...
    ดาวน์โหลด archlabs_repo
  • 4
    โครงการ Zephyr
    โครงการ Zephyr
    โครงการ Zephyr คือคนรุ่นใหม่
    ระบบปฏิบัติการแบบเรียลไทม์ (RTOS) ที่
    รองรับฮาร์ดแวร์หลายตัว
    สถาปัตยกรรม มันขึ้นอยู่กับ
    เคอร์เนลขนาดเล็ก...
    ดาวน์โหลดโครงการ Zephyr
  • 5
    SCCons
    SCCons
    SCons เป็นเครื่องมือสร้างซอฟต์แวร์
    ที่เป็นทางเลือกที่เหนือกว่า
    เครื่องมือสร้าง "Make" แบบคลาสสิกที่
    เราทุกคนรู้จักและชื่นชอบ SCCons คือ
    ดำเนินการก...
    ดาวน์โหลด SCCons
  • 6
    พีเอสอินท์
    พีเอสอินท์
    PSeInt เป็นล่ามรหัสหลอกสำหรับ
    นักศึกษาการเขียนโปรแกรมที่พูดภาษาสเปน
    จุดประสงค์หลักคือเพื่อเป็นเครื่องมือสำหรับ
    การเรียนรู้และทำความเข้าใจพื้นฐาน
    แนวคิด...
    ดาวน์โหลด PSeInt
  • เพิ่มเติม»

คำสั่ง Linux

Ad