EnglishFrenchSpanish

Jalankan server | Ubuntu > | Fedora > |


favorit OnWorks

haproxy-lua - Online di Cloud

Jalankan haproxy-lua di penyedia hosting gratis OnWorks melalui Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS

Ini adalah perintah haproxy-lua yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa stasiun kerja online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS

PROGRAM:

NAMA


Dokumentasi haproxy-lua - haproxy-lua

HAPROXY LUA RUNNING KONTEKS


Kode Lua yang dieksekusi di HAProxy dapat diproses dalam 2 mode utama. Yang pertama adalah
inisialisasi mode, dan yang kedua adalah runtime mode.

· Dalam inisialisasi mode, kami dapat melakukan pemecahan DNS, tetapi kami tidak dapat melakukan soket I/O.
Dalam mode inisialisasi ini, HAProxy masih diblokir selama eksekusi Lua
program.

· Dalam runtime mode, kami tidak dapat melakukan pemecahan DNS, tetapi kami dapat menggunakan soket. NS
eksekusi kode Lua digandakan dengan pemrosesan permintaan, jadi kode Lua
tampaknya dijalankan dalam pemblokiran, tetapi tidak demikian.

Kode Lua dimuat dalam satu atau lebih file. File-file ini berisi kode dan fungsi utama.
Lua memiliki 6 konteks eksekusi.

1. File Lua tubuh konteks. Itu dieksekusi selama memuat file Lua di
HAProxy [global] bagian dengan arahan lua-load. Itu dieksekusi dalam inisialisasi
mode. Bagian ini digunakan untuk mengonfigurasi binding Lua di HAProxy.

2. Lua init konteks. Ini adalah fungsi Lua yang dijalankan tepat setelah HAProxy
penguraian konfigurasi. Eksekusi dalam mode inisialisasi. Dalam konteks ini
Lingkungan HAProxy sudah diinisialisasi. Berguna untuk memeriksa konfigurasi, atau
menginisialisasi koneksi atau tugas soket. Fungsi-fungsi ini dideklarasikan di dalam body
konteks dengan fungsi Lua inti.register_init(). Prototipe fungsi tersebut adalah
fungsi sederhana tanpa nilai balik dan tanpa parameter, seperti ini: fungsi fcn().

3. Lua tugas konteks. Ini adalah fungsi Lua yang dijalankan setelah dimulainya HAProxy
penjadwal, dan tepat setelah deklarasi tugas dengan fungsi Lua
inti.register_task(). Konteks ini dapat bersamaan dengan pemrosesan lalu lintas. Dia
dieksekusi dalam mode runtime. Prototipe fungsi adalah fungsi sederhana tanpa
mengembalikan nilai dan tanpa parameter, seperti ini: fungsi fcn().

4. Itu tindakan konteks. Ini adalah fungsi Lua yang dieksekusi secara kondisional. Tindakan ini adalah
terdaftar oleh arahan Lua "inti.register_action()". Prototipe dari Lua
yang disebut fungsi adalah fungsi dengan tidak mengembalikan apa pun dan yang mengambil objek
kelas TXN sebagai entri. fungsi fcn(txn).

5. Itu pengambilan sampel konteks. Fungsi ini mengambil objek TXN sebagai argumen entri dan
mengembalikan sebuah string. Jenis fungsi ini tidak dapat menjalankan fungsi pemblokiran apa pun. Mereka
berguna untuk menggabungkan beberapa pengambilan sampel HAProxy asli dan mengembalikan hasilnya.
Prototipe fungsi tersebut adalah fungsi tali fcn(txn). Fungsi-fungsi ini dapat berupa
terdaftar dengan fungsi Lua inti.register_fetches(). Setiap pengambilan sampel yang dideklarasikan adalah
diawali dengan string "lua.".

CATATAN: Ada kemungkinan bahwa fungsi ini tidak dapat menemukan data yang diperlukan dalam aslinya
Pengambilan sampel HAProxy, dalam hal ini, tidak dapat mengembalikan hasilnya. Kasus ini belum
didukung

6. Itu Converter konteks. Ini adalah fungsi Lua yang mengambil string sebagai input dan mengembalikan
string lain sebagai output. Jenis fungsi ini tidak memiliki kewarganegaraan, tidak dapat diakses
konteks apapun. Mereka tidak menjalankan fungsi pemblokiran apa pun. Prototipe panggilan adalah fungsi
tali fcn(string). Fungsi ini dapat didaftarkan dengan fungsi Lua
inti.register_converters(). Setiap konverter yang dideklarasikan diawali dengan string "lua.".

HAPROXY LUA HALO DUNIA


File konfigurasi HAProxy (hello_world.conf):

global
lua-load hello_world.lua

dengarkan proxy
ikat 127.0.0.1:10001
tcp-permintaan inspeksi-tunda 1s
layanan penggunaan konten permintaan-tcp lua.hello_world

File HAProxy Lua (hello_world.lua):

core.register_service("hello_world", "tcp", function(applet)
applet:send("halo dunia\n")
akhir)

Cara memulai HAProxy untuk menguji konfigurasi ini:

./haproxy -f hello_world.conf

Di terminal lain, Anda dapat menguji dengan telnet:

#:~ telnet 127.0.0.1 10001
halo dunia

kelas inti()
Kelas "inti" berisi semua fungsi inti HAProxy. Fungsi ini berguna
untuk mengendalikan aliran eksekusi, mendaftarkan kait, memanipulasi peta global
atau ACL, ...

Kelas "inti" pada dasarnya disediakan dengan HAProxy. Tidak membutuhkan garis diperlukan untuk
menggunakan fungsi ini.

Kelas "inti" bersifat statis, tidak mungkin membuat objek baru dari jenis ini.

inti.emerg

Pengembalian
bilangan bulat

Atribut ini adalah bilangan bulat, berisi nilai "darurat" loglevel
(0).

core.alert

Pengembalian
bilangan bulat

Atribut ini adalah bilangan bulat, berisi nilai "peringatan" loglevel (1).

core.crit

Pengembalian
bilangan bulat

Atribut ini adalah bilangan bulat, berisi nilai "kritis" loglevel (2).

inti.err

Pengembalian
bilangan bulat

Atribut ini adalah bilangan bulat, berisi nilai "kesalahan" loglevel (3).

inti.peringatan

Pengembalian
bilangan bulat

Atribut ini adalah bilangan bulat, berisi nilai "peringatan" loglevel (4).

inti.pemberitahuan

Pengembalian
bilangan bulat

Atribut ini adalah bilangan bulat, berisi nilai "pemberitahuan" loglevel (5).

inti.info

Pengembalian
bilangan bulat

Atribut ini adalah bilangan bulat, berisi nilai "info" loglevel (6).

inti.debug

Pengembalian
bilangan bulat

Atribut ini adalah bilangan bulat, berisi nilai "debug" loglevel (7).

inti.log(tingkat log, pesan)
konteks: body, init, task, action, sample-fetch, converter

Fungsi ini mengirimkan log. Log dikirim, sesuai dengan HAProxy
file konfigurasi, di server syslog default jika dikonfigurasi dan di
stderr jika diizinkan.

kasus

· tingkat log (bilangan bulat) -- Apakah level log terkait dengan pesan. Ini adalah sebuah
angka antara 0 dan 7.

· msg (tali) -- Konten log.

Lihat inti.emerg, inti.alert, inti.crit, inti.err, inti.warning, inti.notice,
core.info, core.debug (definisi level log)

Lihat kode. Debug

Lihat inti.Info

Lihat inti.Peringatan

Lihat inti.Peringatan

inti.Debug(pesan)
konteks: body, init, task, action, sample-fetch, converter

kasus

· msg (tali) -- Konten log.

Lihat mencatat

Melakukan pekerjaan yang sama dari:

fungsi Debug(pesan)
core.log(core.debug, msg)
akhir

inti.Info(pesan)
konteks: body, init, task, action, sample-fetch, converter

kasus

· msg (tali) -- Konten log.

Lihat mencatat

fungsi Info(pesan)
core.log(core.info, msg)
akhir

inti.Peringatan(pesan)
konteks: body, init, task, action, sample-fetch, converter

kasus

· msg (tali) -- Konten log.

Lihat mencatat

fungsi peringatan(pesan)
core.log(core.warning, msg)
akhir

inti.Peringatan(pesan)
konteks: body, init, task, action, sample-fetch, converter

kasus

· msg (tali) -- Konten log.

Lihat mencatat

fungsi Waspada(pesan)
core.log(core.alert, msg)
akhir

inti.add_acl(nama file, kunci)
konteks: init, tugas, tindakan, pengambilan sampel, konverter

Tambahkan ACL kunci dalam daftar ACL yang dirujuk oleh file nama file.

kasus

· nama file (tali) -- nama file yang mereferensikan entri ACL.

· kunci (tali) -- kunci yang akan ditambahkan.

core.del_acl(nama file, kunci)
konteks: init, tugas, tindakan, pengambilan sampel, konverter

Hapus entri ACL yang dirujuk oleh kunci kunci dalam daftar ACL yang dirujuk oleh
nama file.

kasus

· nama file (tali) -- nama file yang mereferensikan entri ACL.

· kunci (tali) -- kunci yang akan dihapus.

core.del_map(nama file, kunci)
konteks: init, tugas, tindakan, pengambilan sampel, konverter

Hapus entri peta yang diindeks dengan kunci yang ditentukan dalam daftar peta yang dirujuk
dengan nama filenya.

kasus

· nama file (tali) -- nama file yang mereferensikan entri peta.

· kunci (tali) -- kunci yang akan dihapus.

inti.msleep(milidetik)
konteks: tubuh, init, tugas, tindakan

The inti.msleep() menghentikan eksekusi Lua antara milidetik yang ditentukan.

kasus

· milidetik (bilangan bulat) -- milidetik yang diperlukan.

core.register_action(nama, tindakan, fungsi)
konteks: tubuh

Daftarkan fungsi Lua yang dieksekusi sebagai aksi. Semua tindakan terdaftar dapat digunakan
di HAProxy dengan awalan "lua.". Suatu tindakan mendapatkan kelas objek TXN sebagai input.

kasus

· nama (tali) -- adalah nama konverter.

· tindakan (tabel) -- adalah tabel string yang menjelaskan tindakan HAProxy yang
ingin mendaftar ke. Tindakan yang diharapkan adalah 'tcp-req', 'tcp-res',
'http-req' atau 'http-res'.

· fungsi (fungsi) -- adalah fungsi Lua yang dipanggil untuk bekerja sebagai konverter.

Prototipe fungsi Lua yang digunakan sebagai argumen adalah:

fungsi (txn)

·

terima kasih (TXN kelas): ini is a TXN obyek bekas untuk memanipulasi itu
permintaan saat ini atau aliran TCP.

Di sini, contoh pendaftaran tindakan. tindakan hanya mengirim 'Halo dunia' di
log.

core.register_action("hello-world", { "tcp-req", "http-req" }, function(txn)
txn:Info("Halo dunia")
akhir)
Contoh kode ini digunakan dalam konfigurasi HAproxy seperti ini:

frontend tcp_frt
modus tcp
konten permintaan tcp lua.hello-world

antarmuka http_frt
modus http
http-permintaan lua.hello-world

core.register_converters(nama, fungsi)
konteks: tubuh

Daftarkan fungsi Lua yang dijalankan sebagai konverter. Semua konverter yang terdaftar dapat menjadi
digunakan dalam HAProxy dengan awalan "lua.". Konverter mendapatkan string sebagai input dan
mengembalikan string sebagai output. Fungsi terdaftar dapat mengambil hingga 9 nilai sebagai
parameter. Semua nilai adalah string.

kasus

· nama (tali) -- adalah nama konverter.

· fungsi (fungsi) -- adalah fungsi Lua yang dipanggil untuk bekerja sebagai konverter.

Prototipe fungsi Lua yang digunakan sebagai argumen adalah:

fungsi(str, [p1 [, p2 [, ... [, p5]]]])

· str (tali): ini adalah nilai input yang secara otomatis dikonversi dalam string.

· p1 .. p5 (tali): ini adalah daftar argumen string yang dideklarasikan di haroxy
berkas konfigurasi. Jumlah argumen tidak melebihi 5. Urutan dan
Sifat ini secara konvensional dipilih oleh pengembang.

core.register_fetches(nama, fungsi)
konteks: tubuh

Daftarkan fungsi Lua yang dijalankan sebagai pengambilan sampel. Semua sampel yang terdaftar diambil
dapat digunakan di HAProxy dengan awalan "lua.". Pengambilan sampel Lua mengembalikan string
sebagai keluaran. Fungsi terdaftar dapat mengambil hingga 9 nilai sebagai parameter. Semua
nilai adalah string.

kasus

· nama (tali) -- adalah nama konverter.

· fungsi (fungsi) -- adalah fungsi Lua yang dipanggil untuk bekerja sebagai pengambilan sampel.

Prototipe fungsi Lua yang digunakan sebagai argumen adalah:

fungsi string(txn, [p1 [, p2 [, ... [, p5]]]])

· terima kasih (TXN kelas): ini adalah objek txn yang terkait dengan permintaan saat ini.

· p1 .. p5 (tali): ini adalah daftar argumen string yang dideklarasikan di haroxy
berkas konfigurasi. Jumlah argumen tidak melebihi 5. Urutan dan
Sifat ini secara konvensional dipilih oleh pengembang.

· Pengembalian: String yang berisi beberapa data, atau nihil jika nilainya tidak dapat dikembalikan sekarang.

lua contoh kode:

core.register_fetches("halo", fungsi(txn)
kembali "halo"
akhir)
Contoh konfigurasi HAProxy:

contoh tampilan depan
http-permintaan pengalihan lokasi /%[lua.hello]

core.register_service(nama, mode, fungsi)
konteks: tubuh

Daftarkan fungsi Lua yang dijalankan sebagai layanan. Semua layanan terdaftar dapat
digunakan dalam HAProxy dengan awalan "lua.". Layanan mendapatkan kelas objek sebagai input
sesuai dengan mode yang diperlukan.

kasus

· nama (tali) -- adalah nama konverter.

· mode (tali) -- adalah string yang menjelaskan mode yang diperlukan. Hanya 'tcp' atau
'http' diperbolehkan.

· fungsi (fungsi) -- adalah fungsi Lua yang dipanggil untuk bekerja sebagai konverter.

Prototipe fungsi Lua yang digunakan sebagai argumen adalah:

fungsi (apple)

· Applet Applet akan menjadi AppletTCP kelas atau AppletHTTP kelas. Itu tergantung jenisnya
dari applet terdaftar. Sebuah applet terdaftar dengan nilai 'http' untuk mode
parameter akan mendapatkan AppletHTTP kelas. Jika mode nilainya adalah 'tcp', applet akan
mendapat a AppletTCP kelas.

peringatan: Applet tipe 'http' tidak dapat dipanggil dari 'tcp-' aturan. Hanya itu 'http-'
kumpulan aturan diotorisasi, ini berarti tidak mungkin memanggil applet HTTP dari a
proxy dalam mode tcp. Applet tipe 'tcp' dapat dipanggil dari mana saja.

Di sini, contoh pendaftaran layanan. layanan hanya mengirim 'Halo dunia' sebagai
tanggapan http.

core.register_service("hello-world", "http", function(applet)
respon lokal = "Halo Dunia !"
apel:set_status(200)
applet:add_header("panjang konten", string.len(respons))
applet:add_header("tipe konten", "teks/polos")
applet:start_response()
applet: kirim (tanggapan)
akhir)
Contoh kode ini digunakan dalam konfigurasi HAproxy seperti ini:

contoh tampilan depan
http-request use-service lua.hello-world

inti.register_init(fungsi)
konteks: tubuh

Daftarkan fungsi yang dieksekusi setelah penguraian konfigurasi. Ini berguna untuk
periksa parameter apa pun.

kasus

· fungsi (fungsi) -- adalah fungsi Lua yang dipanggil untuk bekerja sebagai penginisialisasi.

Prototipe fungsi Lua yang digunakan sebagai argumen adalah:

fungsi()
Tidak membutuhkan input, dan tidak ada output yang diharapkan.

core.register_task(fungsi)
konteks: body, init, task, action, sample-fetch, converter

Daftar dan mulai tugas mandiri. Tugas dimulai ketika HAProxy main
penjadwal dimulai. Misalnya jenis tugas ini dapat dieksekusi untuk melakukan yang kompleks
pemeriksaan kesehatan.

kasus

· fungsi (fungsi) -- adalah fungsi Lua yang dipanggil untuk bekerja sebagai penginisialisasi.

Prototipe fungsi Lua yang digunakan sebagai argumen adalah:

fungsi()
Tidak membutuhkan input, dan tidak ada output yang diharapkan.

core.set_nice(bagus)
konteks: tugas, tindakan, pengambilan sampel, konverter

Ubah Nice dari tugas saat ini atau sesi saat ini.

kasus

· bagus (bilangan bulat) -- nilai bagus, harus antara -1024 dan 1024.

core.set_map(nama file, kunci, nilai)
konteks: init, tugas, tindakan, pengambilan sampel, konverter

tentukan nilainya nilai terkait dengan kunci kunci di peta yang dirujuk oleh nama file.

kasus

· nama file (tali) -- referensi Peta

· kunci (tali) -- kunci untuk menyetel atau mengganti

· nilai (tali) -- nilai terkait

inti.sleep(int detik)
konteks: tubuh, init, tugas, tindakan

The inti.tidur() fungsi menghentikan eksekusi Lua antara detik yang ditentukan.

kasus

· detik (bilangan bulat) -- detik yang diperlukan.

inti.tcp()
konteks: init, tugas, tindakan

Fungsi ini mengembalikan objek baru dari a stopkontak kelas.

Pengembalian
A Stopkontak kelas obyek.

inti.selesai(data)
konteks: body, init, task, action, sample-fetch, converter

kasus

· data (Apa pun) -- Kembalikan beberapa data untuk pemanggil. Ini berguna dengan
sample-fetch dan sample-converter.

Segera hentikan eksekusi Lua saat ini dan kembali ke pemanggil yang mungkin
pengambilan sampel, pengonversi, atau tindakan dan mengembalikan nilai yang ditentukan (diabaikan
untuk tindakan). Ini digunakan ketika proses LUA menyelesaikan pekerjaannya dan ingin memberi
kembalikan kontrol ke HAProxy tanpa mengeksekusi kode yang tersisa. Hal ini dapat dilihat sebagai
"pengembalian" multi-level.

inti.hasil()
konteks: tugas, tindakan, pengambilan sampel, konverter

Berikan kembali tangan di penjadwal HAProxy. Ini digunakan saat pemrosesan LUA
menghabiskan banyak waktu pemrosesan.

kelas Mengambil()
Kelas ini berisi banyak pengambilan sampel HAProxy internal. Lihat HAProxy
Dokumentasi "configuration.txt" untuk informasi lebih lanjut tentang penggunaannya. mereka
bab 7.3.2 sampai 7.3.6.

peringatan beberapa pengambilan sampel tidak tersedia dalam beberapa konteks. Keterbatasan ini
ditentukan dalam dokumentasi ini jika berguna.

Lihat TXN.f

Lihat TXN.sf

Pengambilan berguna untuk:

· dapatkan waktu sistem,

· dapatkan variabel lingkungan,

· dapatkan nomor acak,

· status backend yang diketahui seperti jumlah pengguna dalam antrian atau jumlah
koneksi didirikan,

· informasi klien seperti sumber atau tujuan ip,

· berurusan dengan meja tongkat,

· Mendirikan informasi SSL,

· Informasi HTTP seperti header atau metode.

tindakan fungsi (txn)
-- Dapatkan IP sumber
klien lokal = txn.f:src()
akhir

kelas Konverter()
Kelas ini berisi banyak konverter sampel HAProxy internal. Lihat HAProxy
dokumentasi "configuration.txt" untuk informasi lebih lanjut tentang penggunaannya. Ini adalah
bab 7.3.1.

Lihat TXN.c

Lihat TXN.sc

Konverter menyediakan transformasi statefull. Mereka berguna untuk:

· mengonversi input ke base64,

· menerapkan hash pada string input (djb2, crc32, sdbm, wt6),

· format tanggal,

· json melarikan diri,

· mengekstraksi bahasa yang disukai membandingkan dua daftar,

· beralih ke karakter bawah atau atas,

· berurusan dengan meja tongkat.

kelas Saluran()
HAProxy menggunakan dua buffer untuk memproses permintaan. Yang pertama digunakan
dengan data permintaan (dari klien ke server) dan yang kedua digunakan untuk
data respon (dari server ke klien).

Setiap buffer berisi dua jenis data. Tipe pertama adalah data yang masuk menunggu
untuk sebuah pemrosesan. Bagian kedua adalah data keluar yang sudah diproses. Biasanya,
data yang masuk diproses, setelah itu ditandai sebagai data keluar, dan akhirnya
terkirim. Fungsi berikut menyediakan alat untuk memanipulasi data ini dalam a
penyangga.

Diagram berikut menunjukkan di mana fungsi kelas saluran diterapkan.

peringatan: Tidak mungkin membaca dari respons dalam tindakan permintaan, dan itu
tidak mungkin untuk membaca saluran permintaan dalam tindakan tanggapan.
[gambar]

Saluran.dup(saluran)
Fungsi ini mengembalikan string yang berisi seluruh buffer. Datanya tidak
hapus dari buffer dan dapat diproses ulang nanti.

Jika buffer tidak dapat menerima lebih banyak data, nilai 'nil' akan dikembalikan.

kasus

· saluran (class_channel) -- Saluran yang dimanipulasi.

Pengembalian
string yang berisi semua data yang tersedia atau nihil.

Saluran.get(saluran)
Fungsi ini mengembalikan string yang berisi seluruh buffer. Data dikonsumsi
dari penyangga.

Jika buffer tidak dapat menerima lebih banyak data, nilai 'nil' akan dikembalikan.

kasus

· saluran (class_channel) -- Saluran yang dimanipulasi.

Pengembalian
string yang berisi semua data yang tersedia atau nihil.

Saluran.getline(saluran)
Fungsi ini mengembalikan string yang berisi baris pertama buffer. Data
dikonsumsi. Jika data yang dikembalikan tidak mengandung 'n' akhir, itu dianggap daripadanya
data terakhir yang tersedia di buffer.

Jika buffer tidak dapat menerima lebih banyak data, nilai 'nil' akan dikembalikan.

kasus

· saluran (class_channel) -- Saluran yang dimanipulasi.

Pengembalian
string yang berisi baris yang tersedia atau nihil.

Saluran.set(saluran, rangkaian)
Fungsi ini menggantikan isi buffer dengan string. Fungsi kembali
panjang yang disalin, jika tidak, ia mengembalikan -1.

Kumpulan data dengan fungsi ini tidak dikirim. Mereka menunggu akhir dari HAProxy
diproses, sehingga buffer bisa penuh.

kasus

· saluran (class_channel) -- Saluran yang dimanipulasi.

· tali (tali) -- Data yang akan dikirim.

Pengembalian
integer yang berisi jumlah byte yang disalin atau -1.

Saluran.tambahkan(saluran, rangkaian)
Fungsi ini menambahkan argumen string ke konten buffer. Fungsinya
mengembalikan panjang yang disalin, jika tidak, ia mengembalikan -1.

Kumpulan data dengan fungsi ini tidak dikirim. Mereka menunggu akhir dari HAProxy
diproses, sehingga buffer bisa penuh.

kasus

· saluran (class_channel) -- Saluran yang dimanipulasi.

· tali (tali) -- Data yang akan dikirim.

Pengembalian
integer yang berisi jumlah byte yang disalin atau -1.

Saluran.kirim(saluran, rangkaian)
Fungsi ini membutuhkan pengiriman data segera. Kecuali jika koneksinya
tutup, buffer secara teratur memerah dan semua string dapat dikirim.

kasus

· saluran (class_channel) -- Saluran yang dimanipulasi.

· tali (tali) -- Data yang akan dikirim.

Pengembalian
integer yang berisi jumlah byte yang disalin atau -1.

Saluran.get_in_length(saluran)
Fungsi ini mengembalikan panjang bagian input buffer.

kasus

· saluran (class_channel) -- Saluran yang dimanipulasi.

Pengembalian
integer yang berisi jumlah byte yang tersedia.

Saluran.get_out_length(saluran)
Fungsi ini mengembalikan panjang bagian keluaran buffer.

kasus

· saluran (class_channel) -- Saluran yang dimanipulasi.

Pengembalian
integer yang berisi jumlah byte yang tersedia.

Saluran.maju(saluran, int)
Fungsi ini mentransfer byte dari bagian input buffer ke bagian output.

kasus

· saluran (class_channel) -- Saluran yang dimanipulasi.

· int (bilangan bulat) -- Jumlah data yang akan diteruskan.

kelas HTTP()
Kelas ini berisi semua fungsi manipulasi HTTP.

HTTP.req_get_headers(http)
Mengembalikan array yang berisi semua header permintaan.

kasus

· http (class_http) -- Objek http terkait.

Pengembalian
susunan header.

Lihat HTTP.res_get_headers()

Ini adalah bentuk array yang dikembalikan:

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

hdr lokal = HTTP:req_get_headers()
hdr["host"][0] = "www.test.com"
hdr["terima"][0] = "audio/dasar q=1"
hdr["terima"][1] = "audio/*, q=0.2"
hdr["terima"][2] = "*/*, q=0.1"

HTTP.res_get_headers(http)
Mengembalikan array yang berisi semua header respons.

kasus

· http (class_http) -- Objek http terkait.

Pengembalian
susunan header.

Lihat HTTP.req_get_headers()

Ini adalah bentuk array yang dikembalikan:

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

hdr lokal = HTTP:req_get_headers()
hdr["host"][0] = "www.test.com"
hdr["terima"][0] = "audio/dasar q=1"
hdr["terima"][1] = "audio/*, q=0.2"
hdr["terima"][2] = "*.*, q=0.1"

HTTP.req_add_header(http, nama, nilai)
Menambahkan bidang header HTTP dalam permintaan yang namanya ditentukan dalam "nama" dan
yang nilainya didefinisikan dalam "nilai".

kasus

· http (class_http) -- Objek http terkait.

· nama (tali) -- Nama tajuk.

· nilai (tali) -- Nilai header.

Lihat HTTP.res_add_header()

HTTP.res_add_header(http, nama, nilai)
menambahkan bidang header HTTP dalam respons yang namanya ditentukan dalam "nama" dan
yang nilainya didefinisikan dalam "nilai".

kasus

· http (class_http) -- Objek http terkait.

· nama (tali) -- Nama tajuk.

· nilai (tali) -- Nilai header.

Lihat HTTP.req_add_header()

HTTP.req_del_header(http, nama)
Menghapus semua bidang header HTTP dalam permintaan yang namanya ditentukan dalam "nama".

kasus

· http (class_http) -- Objek http terkait.

· nama (tali) -- Nama tajuk.

Lihat HTTP.res_del_header()

HTTP.res_del_header(http, nama)
Menghapus semua bidang header HTTP dalam respons yang namanya ditentukan dalam "nama".

kasus

· http (class_http) -- Objek http terkait.

· nama (tali) -- Nama tajuk.

Lihat HTTP.req_del_header()

HTTP.req_set_header(http, nama, nilai)
Variabel ini menggantikan semua kemunculan semua "nama" header dengan hanya satu yang mengandung
nilai".

kasus

· http (class_http) -- Objek http terkait.

· nama (tali) -- Nama tajuk.

· nilai (tali) -- Nilai header.

Lihat HTTP.res_set_header()

Fungsi ini melakukan pekerjaan yang sama dengan kode berikut:

fungsi fcn(txn)
TXN.http:req_del_header("header")
TXN.http:req_add_header("header", "nilai")
akhir

HTTP.res_set_header(http, nama, nilai)
Variabel ini menggantikan semua kemunculan semua "nama" header dengan hanya satu yang mengandung
nilai".

kasus

· http (class_http) -- Objek http terkait.

· nama (tali) -- Nama tajuk.

· nilai (tali) -- Nilai header.

Lihat HTTP.req_rep_header()

HTTP.req_rep_header(http, nama, ekspresi reguler, mengganti)
Mencocokkan ekspresi reguler di semua kemunculan bidang header "nama" sesuai
ke "regex", dan menggantinya dengan argumen "ganti". Nilai pengganti
dapat berisi referensi balik seperti 1, 2, ... Fungsi ini bekerja dengan permintaan.

kasus

· http (class_http) -- Objek http terkait.

· nama (tali) -- Nama tajuk.

· regex (tali) -- Ekspresi reguler yang cocok.

· menggantikan (tali) -- Nilai pengganti.

Lihat HTTP.res_rep_header()

HTTP.res_rep_header(http, nama, ekspresi reguler, rangkaian)
Mencocokkan ekspresi reguler di semua kemunculan bidang header "nama" sesuai
ke "regex", dan menggantinya dengan argumen "ganti". Nilai pengganti
dapat berisi referensi balik seperti 1, 2, ... Fungsi ini bekerja dengan permintaan.

kasus

· http (class_http) -- Objek http terkait.

· nama (tali) -- Nama tajuk.

· regex (tali) -- Ekspresi reguler yang cocok.

· menggantikan (tali) -- Nilai pengganti.

Lihat HTTP.req_replace_header()

HTTP.req_replace_value(http, nama, ekspresi reguler, mengganti)
Bekerja seperti "HTTP.req_replace_header()" kecuali yang cocok dengan regex
setiap nilai yang dipisahkan koma dari bidang header "nama" alih-alih keseluruhan
tajuk.

kasus

· http (class_http) -- Objek http terkait.

· nama (tali) -- Nama tajuk.

· regex (tali) -- Ekspresi reguler yang cocok.

· menggantikan (tali) -- Nilai pengganti.

Lihat HTTP.req_replace_header()

Lihat HTTP.res_replace_value()

HTTP.res_replace_value(http, nama, ekspresi reguler, mengganti)
Bekerja seperti "HTTP.res_replace_header()" kecuali yang cocok dengan regex
setiap nilai yang dipisahkan koma dari bidang header "nama" alih-alih keseluruhan
tajuk.

kasus

· http (class_http) -- Objek http terkait.

· nama (tali) -- Nama tajuk.

· regex (tali) -- Ekspresi reguler yang cocok.

· menggantikan (tali) -- Nilai pengganti.

Lihat HTTP.res_replace_header()

Lihat HTTP.req_replace_value()

HTTP.req_set_method(http, metode)
Menulis ulang metode permintaan dengan parameter "metode".

kasus

· http (class_http) -- Objek http terkait.

· metode (tali) -- Metode baru.

HTTP.req_set_path(http, jalan)
Menulis ulang jalur permintaan dengan parameter "jalur".

kasus

· http (class_http) -- Objek http terkait.

· path (tali) -- Jalan baru.

HTTP.req_set_query(http, pertanyaan)
Menulis ulang string kueri permintaan yang muncul setelah tanda tanya pertama
("?") dengan parameter "permintaan".

kasus

· http (class_http) -- Objek http terkait.

· pertanyaan (tali) -- Kueri baru.

HTTP.req_set_uri(http, uri)
Menulis ulang permintaan URI dengan parameter "uri".

kasus

· http (class_http) -- Objek http terkait.

· s (tali) -- uri baru.

HTTP.res_set_status(http, status)
Menulis ulang kode status respons dengan parameter "kode". Perhatikan bahwa alasannya
secara otomatis disesuaikan dengan kode baru.

kasus

· http (class_http) -- Objek http terkait.

· status (bilangan bulat) -- Kode status tanggapan baru.

kelas TXN()
Kelas txn berisi semua fungsi relatif terhadap transaksi http atau tcp
(Perhatikan bahwa aliran tcp sama dengan transaksi tcp, tetapi transaksi HTTP
tidak sama dengan aliran tcp).

Penggunaan kelas ini memungkinkan untuk mengambil data dari permintaan, mengubahnya dan
meneruskannya.

Semua fungsi yang disediakan oleh kelas ini tersedia dalam konteks
pengambilan sampel serta tindakan.

TXN.c

Pengembalian
An Konverter kelas.

Atribut ini berisi objek kelas Converters.

TXN.sc

Pengembalian
An Konverter kelas.

Atribut ini berisi objek kelas Converters. Fungsi dari objek ini
mengembalikan selalu string.

TXN.f

Pengembalian
An Ambil kelas.

Atribut ini berisi objek kelas Fetches.

TXN.sf

Pengembalian
An Ambil kelas.

Atribut ini berisi objek kelas Fetches. Fungsi dari objek ini
mengembalikan selalu string.

TXN.req

Pengembalian
An Saluran kelas.

Atribut ini berisi objek kelas saluran untuk buffer permintaan.

TXN.res

Pengembalian
An Saluran kelas.

Atribut ini berisi objek kelas saluran untuk buffer respons.

TXN.http

Pengembalian
An HTTP kelas.

Atribut ini berisi objek kelas HTTP. Itu hanya tersedia jika proxy memiliki
"mode http" diaktifkan.

TXN.log(TXN, tingkat log, pesan)
Fungsi ini mengirimkan log. Log dikirim, sesuai dengan HAProxy
file konfigurasi, di server syslog default jika dikonfigurasi dan di
stderr jika diizinkan.

kasus

· terima kasih (class_txn) -- Objek kelas txn yang berisi data.

· tingkat log (bilangan bulat) -- Apakah level log terkait dengan pesan. Ini adalah sebuah
angka antara 0 dan 7.

· msg (tali) -- Konten log.

Lihat inti.emerg, inti.alert, inti.crit, inti.err, inti.warning, inti.notice,
core.info, core.debug (definisi level log)

Lihat TXN.deflog

Lihat TXN.Debug

Lihat TXN.Info

Lihat TXN.Peringatan

Lihat TXN.Alert

TXN.deflog(TXN, pesan)
Mengirim baris log dengan loglevel default untuk proxy yang terkait dengan
transaksi.

kasus

· terima kasih (class_txn) -- Objek kelas txn yang berisi data.

· msg (tali) -- Konten log.

Lihat TXN.log

TXN.Debug(txn, pesan)

kasus

· terima kasih (class_txn) -- Objek kelas txn yang berisi data.

· msg (tali) -- Konten log.

Lihat TXN.log

Melakukan pekerjaan yang sama dari:

fungsi Debug(txn, msg)
TXN.log(txn, core.debug, msg)
akhir

TXN.Info(txn, pesan)

kasus

· terima kasih (class_txn) -- Objek kelas txn yang berisi data.

· msg (tali) -- Konten log.

Lihat TXN.log

fungsi Debug(txn, msg)
TXN.log(txn, core.info, msg)
akhir

TXN.Peringatan(txn, pesan)

kasus

· terima kasih (class_txn) -- Objek kelas txn yang berisi data.

· msg (tali) -- Konten log.

Lihat TXN.log

fungsi Debug(txn, msg)
TXN.log(txn, core.warning, msg)
akhir

TXN.Peringatan(txn, pesan)

kasus

· terima kasih (class_txn) -- Objek kelas txn yang berisi data.

· msg (tali) -- Konten log.

Lihat TXN.log

fungsi Debug(txn, msg)
TXN.log(txn, core.alert, msg)
akhir

TXN.get_priv(txn)
Kembalikan data Lua yang disimpan dalam transaksi saat ini (dengan TXN.set_priv())
fungsi. Jika tidak ada data yang disimpan, ia mengembalikan nilai nihil.

kasus

· terima kasih (class_txn) -- Objek kelas txn yang berisi data.

Pengembalian
data buram yang disimpan sebelumnya, atau nihil jika tidak ada yang tersedia.

TXN.set_priv(txn, tanggal)
Simpan data apa pun dalam transaksi HAProxy saat ini. Tindakan ini menggantikan yang lama
data tersimpan.

kasus

· terima kasih (class_txn) -- Objek kelas txn yang berisi data.

· data (buram) -- Data yang disimpan dalam transaksi.

TXN.set_var(TXN, ada, nilai)
Mengonversi tipe Lua dalam tipe HAProxy dan menyimpannya dalam variabel .

kasus

· terima kasih (class_txn) -- Objek kelas txn yang berisi data.

· adalah (tali) -- Nama variabel sesuai dengan variabel HAProxy
sintaks.

· nilai (buram) -- Data yang disimpan dalam variabel.

TXN.get_var(TXN, var)
Mengembalikan data yang disimpan dalam konverter variabel dalam tipe Lua.

kasus

· terima kasih (class_txn) -- Objek kelas txn yang berisi data.

· adalah (tali) -- Nama variabel sesuai dengan variabel HAProxy
sintaks.

TXN.get_headers(txn)
Fungsi ini mengembalikan array header.

kasus

· terima kasih (class_txn) -- Objek kelas txn yang berisi data.

Pengembalian
sebuah array dari header.

TXN.selesai(txn)
Fungsi ini menghentikan pemrosesan transaksi dan sesi terkait.
Ini dapat digunakan ketika kesalahan kritis terdeteksi atau untuk menghentikan pemrosesan setelah
beberapa data telah dikembalikan ke klien (misalnya: pengalihan).

kasus

· terima kasih (class_txn) -- Objek kelas txn yang berisi data.

TXN.set_loglevel(txn, tingkat log)
Digunakan untuk mengubah level log dari permintaan saat ini. "Loglevel" harus berupa
bilangan bulat antara 0 dan 7.

kasus

· terima kasih (class_txn) -- Objek kelas txn yang berisi data.

· tingkat log (bilangan bulat) -- Tingkat log yang diperlukan. Variabel ini dapat menjadi salah satu dari

Lihat inti.

TXN.set_tos(txn, tos)
Digunakan untuk mengatur nilai bidang TOS atau DSCP dari paket yang dikirim ke klien ke
nilai yang diteruskan dalam "tos" pada platform yang mendukung ini.

kasus

· terima kasih (class_txn) -- Objek kelas txn yang berisi data.

· tos (bilangan bulat) -- TOS os DSCP baru.

TXN.set_mark(txn, menandai)
Digunakan untuk mengatur MARK Netfilter pada semua paket yang dikirim ke klien ke nilai
diteruskan dalam "tanda" pada platform yang mendukungnya.

kasus

· terima kasih (class_txn) -- Objek kelas txn yang berisi data.

· tanda (bilangan bulat) -- Nilai tanda.

kelas Stopkontak()
Kelas ini harus kompatibel dengan kelas Lua Socket. Hanya 'klien'
fungsi tersedia. Lihat dokumentasi Lua Socket:

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

Socket.close(soket)
Menutup objek TCP. Soket internal yang digunakan oleh objek ditutup dan lokal
alamat yang objek terikat dibuat tersedia untuk aplikasi lain. Tidak
operasi lebih lanjut (kecuali untuk panggilan lebih lanjut ke metode tutup) diizinkan pada a
soket tertutup.

kasus

· stopkontak (class_socket) -- Adalah Socket yang dimanipulasi.

Catatan: Penting untuk menutup semua soket yang digunakan setelah tidak diperlukan, karena, dalam
banyak sistem, setiap soket menggunakan deskriptor file, yang merupakan sistem terbatas
sumber daya. Objek yang dikumpulkan sampah secara otomatis ditutup sebelum dihancurkan,
meskipun.

Soket. sambungkan (soket, alamat[, Pelabuhan])
Mencoba menghubungkan objek soket ke host jarak jauh.

Jika terjadi kesalahan, metode mengembalikan nil diikuti dengan string yang menjelaskan kesalahan.
Jika berhasil, metode mengembalikan 1.

kasus

· stopkontak (class_socket) -- Adalah Socket yang dimanipulasi.

· alamat (tali) -- dapat berupa alamat IP atau nama host. Lihat di bawah untuk
Informasi lebih lanjut

· pelabuhan (bilangan bulat) -- harus berupa bilangan bulat dalam rentang [1K].

Pengembalian
1 atau nihil.

ekstensi bidang alamat memungkinkan untuk menggunakan fungsi connect() untuk terhubung ke
aliran selain TCP. Sintaks yang berisi alamat simpleipv4 atau ipv6 adalah
pada dasarnya format yang diharapkan. Format ini membutuhkan port.

Format lain yang diterima adalah jalur soket seperti "/ soket/jalur", yang memungkinkan untuk terhubung
ke soket. ruang nama abstrak didukung dengan awalan "abns@", dan akhirnya
filedescriotr dapat diteruskan dengan awalan "fd@". Awalan "ipv4@", "ipv6@"
dan "unix@" juga didukung. Port dapat dilewatkan ke dalam string. Sintaksnya
"127.0.0.1:1234" valid. dalam hal ini, parameter pelabuhan diabaikan.

Socket.connect_ssl(soket, alamat, port)
Perilaku yang sama dari fungsi socket:connect, tetapi menggunakan SSL.

kasus

· stopkontak (class_socket) -- Adalah Socket yang dimanipulasi.

Pengembalian
1 atau nihil.

Socket.getpeername(soket)
Mengembalikan informasi tentang sisi jauh dari objek klien yang terhubung.

Mengembalikan string dengan alamat IP rekan, diikuti dengan nomor port yang
rekan menggunakan untuk koneksi. Jika terjadi kesalahan, metode ini mengembalikan nihil.

kasus

· stopkontak (class_socket) -- Adalah Socket yang dimanipulasi.

Pengembalian
string yang berisi informasi server.

Socket.getsockname(soket)
Mengembalikan informasi alamat lokal yang terkait dengan objek.

Metode ini mengembalikan string dengan alamat IP lokal dan nomor dengan port. Di dalam
kasus kesalahan, metode ini mengembalikan nihil.

kasus

· stopkontak (class_socket) -- Adalah Socket yang dimanipulasi.

Pengembalian
string yang berisi informasi klien.

Socket.terima(soket[, pola[, awalan]])
Membaca data dari objek klien, sesuai dengan pola baca yang ditentukan. Pola
ikuti format I/O file Lua, dan perbedaan kinerja antara semua
pola diabaikan.

kasus

· stopkontak (class_socket) -- Adalah Socket yang dimanipulasi.

· belt hold (string|bilangan bulat) -- Jelaskan apa yang diperlukan (lihat di bawah).

· awalan (tali) -- String yang akan menjadi awalan data yang dikembalikan.

Pengembalian
string yang berisi data yang diperlukan atau nihil.

Pola dapat berupa salah satu dari berikut ini:

·

`*a`: membaca dari itu stopkontak sampai itu koneksi is Tutup. Tidak
terjemahan akhir baris dilakukan;

·

`*l`: membaca a line of teks dari itu Stopkontak. The line is dihentikan by a
Karakter LF (ASCII 10), opsional didahului oleh karakter CR (ASCII 13).
Karakter CR dan LF tidak termasuk dalam baris yang dikembalikan. Faktanya,
semua karakter CR diabaikan oleh pola. Ini adalah pola default.

·

jumlah: penyebab itu metode untuk Baca baca a ditentukan jumlah of byte dari itu
Stopkontak. Awalan adalah string opsional untuk digabungkan ke awal
dari setiap data yang diterima sebelum kembali.

· kosong: Jika pola dibiarkan kosong, opsi defaultnya adalah *l.

Jika berhasil, metode mengembalikan pola yang diterima. Jika terjadi kesalahan,
metode mengembalikan nihil diikuti oleh pesan kesalahan yang dapat berupa string 'ditutup' di
kasus sambungan ditutup sebelum transmisi selesai atau string
'batas waktu' jika ada batas waktu selama operasi. Juga, setelah kesalahan
pesan, fungsi mengembalikan sebagian hasil transmisi.

Catatan penting: Fungsi ini sangat berubah. Ini digunakan untuk mendukung banyak
pola (tapi saya belum pernah melihat fitur ini digunakan) dan sekarang tidak lagi.
Hasil sebagian dulu dikembalikan dengan cara yang sama seperti hasil yang berhasil. Ini
fitur terakhir melanggar gagasan bahwa semua fungsi harus mengembalikan nol pada kesalahan. Dengan demikian
itu juga diubah.

Socket.send(soket, data[, Mulailah[, akhir]])
Mengirim data melalui objek klien.

kasus

· stopkontak (class_socket) -- Adalah Socket yang dimanipulasi.

· data (tali) -- Data yang akan dikirim.

· awal (bilangan bulat) -- Posisi awal dalam buffer data yang akan
terkirim.

· akhir (bilangan bulat) -- Posisi akhir dalam buffer data yang akan menjadi
dikirim.

Pengembalian
Lihat di bawah.

Data adalah string yang akan dikirim. Argumen opsional i dan j bekerja persis seperti
string.sub standar Lua berfungsi untuk memungkinkan pemilihan substring yang akan dikirim.

Jika berhasil, metode mengembalikan indeks byte terakhir dalam [mulai, akhir]
yang telah dikirim. Perhatikan bahwa, jika awal adalah 1 atau tidak ada, ini secara efektif adalah
jumlah total byte yang dikirim. Jika terjadi kesalahan, metode mengembalikan nil, diikuti oleh
pesan kesalahan, diikuti oleh indeks byte terakhir dalam [mulai, akhir] itu
telah dikirim. Anda mungkin ingin mencoba lagi dari byte setelahnya. kesalahan
pesan dapat 'ditutup' jika koneksi ditutup sebelum transmisi
selesai atau string 'batas waktu' jika ada batas waktu selama
operasi.

Catatan: Output tidak buffer. Untuk string kecil, selalu lebih baik untuk menggabungkan
mereka di Lua (dengan operator '..') dan mengirim hasilnya dalam satu panggilan alih-alih
memanggil metode beberapa kali.

Socket.setoption(soket, pilihan[, nilai])
Baru saja diimplementasikan untuk kompatibilitas, cal ini tidak melakukan apa-apa.

Socket.settimeout(soket, nilai[, mode])
Mengubah nilai batas waktu untuk objek. Semua operasi I/O memblokir. Itu
adalah, setiap panggilan ke metode kirim, terima, dan terima akan memblokir tanpa batas,
sampai operasi selesai. Metode settimeout mendefinisikan batas jumlah
waktu metode I/O dapat memblokir. Ketika batas waktu telah berlalu, yang terpengaruh
metode menyerah dan gagal dengan kode kesalahan.

Jumlah waktu untuk menunggu ditentukan sebagai parameter nilai, dalam detik.

Mode batas waktu diimplementasikan bot, satu-satunya batas waktu yang dapat diatur adalah tidak aktif
waktu menunggu selesai buffer internal mengirim atau menunggu menerima data.

kasus

· stopkontak (class_socket) -- Adalah Socket yang dimanipulasi.

· nilai (bilangan bulat) -- Nilai batas waktu.

kelas Peta()
Kelas ini mengizinkan untuk melakukan beberapa pencarian di peta HAProxy. Peta yang dideklarasikan dapat berupa
dimodifikasi selama runtime melalui soket manajemen HAProxy.

default = "Amerika Serikat"

-- Buat dan muat peta
geo = Map.new("geo.map", Map.ip);

-- Buat pengambilan baru yang mengembalikan negara pengguna
core.register_fetches("negara", fungsi(txn)
src lokal;
lokasi lokal;

src = txn.f:fhdr("x-diteruskan-untuk");
jika (src == nil) maka
src = txn.f:src()
jika (src == nil) maka
kembali default;
akhir
akhir

-- Lakukan pencarian
loc = geo:lookup(src);

jika (loc == nil) maka
kembali default;
akhir

lokasi kembali;
akhir);

peta.int
Lihat file HAProxy configuration.txt, bab "Menggunakan ACL dan mengambil sampel"
ans subbab "Dasar-dasar ACL" untuk memahami metode pencocokan pola ini.

peta.ip Lihat file HAProxy configuration.txt, bab "Menggunakan ACL dan mengambil sampel"
ans subbab "Dasar-dasar ACL" untuk memahami metode pencocokan pola ini.

peta.str
Lihat file HAProxy configuration.txt, bab "Menggunakan ACL dan mengambil sampel"
ans subbab "Dasar-dasar ACL" untuk memahami metode pencocokan pola ini.

peta.beg
Lihat file HAProxy configuration.txt, bab "Menggunakan ACL dan mengambil sampel"
ans subbab "Dasar-dasar ACL" untuk memahami metode pencocokan pola ini.

peta.sub
Lihat file HAProxy configuration.txt, bab "Menggunakan ACL dan mengambil sampel"
ans subbab "Dasar-dasar ACL" untuk memahami metode pencocokan pola ini.

peta.dir
Lihat file HAProxy configuration.txt, bab "Menggunakan ACL dan mengambil sampel"
ans subbab "Dasar-dasar ACL" untuk memahami metode pencocokan pola ini.

peta.dom
Lihat file HAProxy configuration.txt, bab "Menggunakan ACL dan mengambil sampel"
ans subbab "Dasar-dasar ACL" untuk memahami metode pencocokan pola ini.

peta.end
Lihat file HAProxy configuration.txt, bab "Menggunakan ACL dan mengambil sampel"
ans subbab "Dasar-dasar ACL" untuk memahami metode pencocokan pola ini.

peta.reg
Lihat file HAProxy configuration.txt, bab "Menggunakan ACL dan mengambil sampel"
ans subbab "Dasar-dasar ACL" untuk memahami metode pencocokan pola ini.

Peta.baru(berkas, metode)
Membuat dan memuat peta.

kasus

· fillet (tali) -- Apakah file yang berisi peta.

· metode (bilangan bulat) -- Apakah metode pencocokan pola peta. Lihat atributnya
dari kelas Peta.

Pengembalian
objek Peta kelas.

Lihat Atribut Peta.

Peta.lookup(peta, str)
Lakukan pencarian di peta.

kasus

· peta (class_map) -- Apakah objek peta kelas.

· str (tali) -- Apakah string digunakan sebagai kunci.

Pengembalian
string yang berisi hasil atau nihil jika tidak cocok.

Peta.slookup(peta, str)
Lakukan pencarian di peta.

kasus

· peta (class_map) -- Apakah objek peta kelas.

· str (tali) -- Apakah string digunakan sebagai kunci.

Pengembalian
string yang berisi hasil atau string kosong jika tidak cocok.

kelas AppletHTTP()
Kelas ini digunakan dengan applet yang membutuhkan mode 'http'. Applet http dapat
terdaftar di inti.register_service() fungsi. Mereka digunakan untuk
memproses permintaan http seperti server di belakang HAProxy.

Ini adalah contoh kode hello world:

core.register_service("hello-world", "http", function(applet)
respon lokal = "Halo Dunia !"
apel:set_status(200)
applet:add_header("panjang konten", string.len(respons))
applet:add_header("tipe konten", "teks/polos")
applet:start_response()
applet: kirim (tanggapan)
akhir)

AppletHTTP.c

Pengembalian
A Konverter kelas

Atribut ini berisi objek kelas Converters.

AppletHTTP.sc

Pengembalian
A Konverter kelas

Atribut ini berisi objek kelas Converters. Fungsi dari objek ini
mengembalikan selalu string.

AppletHTTP.f

Pengembalian
A Ambil kelas

Atribut ini berisi objek kelas Fetches. Perhatikan bahwa eksekusi applet
tempat tidak dapat mengakses transaksi HTTP inti HAProxy yang valid, jadi beberapa contoh
fecthes terkait dengan nilai-nilai tergantung HTTP (hdr, path, ...) tidak tersedia.

AppletHTTP.sf

Pengembalian
A Ambil kelas

Atribut ini berisi objek kelas Fetches. Fungsi dari objek ini
mengembalikan selalu string. Perhatikan bahwa tempat eksekusi applet tidak dapat mengakses a
transaksi HTTP inti HAProxy yang valid, jadi beberapa contoh efek yang terkait dengan HTTP
nilai dependen (hdr, path, ...) tidak tersedia.

AppletHTTP.method

Pengembalian
tali

Metode atribut mengembalikan string yang berisi metode HTTP.

AppletHTTP.version

Pengembalian
tali

Versi atribut, mengembalikan string yang berisi versi permintaan HTTP.

AppletHTTP.path

Pengembalian
tali

Jalur atribut mengembalikan string yang berisi jalur permintaan HTTP.

AppletHTTP.qs

Pengembalian
tali

Atribut qs mengembalikan string yang berisi string kueri permintaan HTTP.

AppletHTTP.length

Pengembalian
bilangan bulat

Panjang atribut mengembalikan bilangan bulat yang berisi panjang badan HTTP.

AppletHTTP.headers

Pengembalian
susunan

Header atribut mengembalikan array yang berisi header HTTP. header
nama selalu dalam huruf kecil. Karena nama header dapat ditemukan lebih dari
sekali dalam setiap permintaan, nilai diindeks dengan 0 sebagai nilai indeks pertama. susunannya
memiliki bentuk ini:

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

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

AppletHTTP.headers
Berisi array yang berisi semua header permintaan.

AppletHTTP.set_status(applet, kode)
Fungsi ini menetapkan kode status HTTP untuk respons. Kode yang diizinkan berasal dari
100 ke 599.

kasus

· Applet (class_AppletHTTP) -- NS AppletHTTP kelas

· kode (bilangan bulat) -- kode status yang dikembalikan ke klien.

AppletHTTP.add_header(applet, nama, nilai)
Fungsi ini menambahkan tajuk dalam respons. Header duplikat tidak diciutkan.
Header khusus konten-panjang digunakan untuk menentukan panjang respon. Jika
tidak ada, a pengkodean transfer: terpotong diatur, dan semua penulisan dari fungsi
AppletHTTP:kirim() menjadi bongkahan.

kasus

· Applet (class_AppletHTTP) -- NS AppletHTTP kelas

· nama (tali) -- nama header

· nilai (tali) -- nilai header

AppletHTTP.start_response(applet)
Fungsi ini menunjukkan kepada mesin HTTP bahwa ia dapat memproses dan mengirim
header tanggapan. Setelah ini dipanggil, kami tidak dapat menambahkan header ke respons; Kita
tidak dapat menggunakan AppletHTTP:kirim() berfungsi jika AppletHTTP: start_response() tidak
dipanggil.

kasus

· Applet (class_AppletHTTP) -- NS AppletHTTP kelas

AppletHTTP.getline(applet)
Fungsi ini mengembalikan string yang berisi satu baris dari badan http. Jika datanya
dikembalikan tidak berisi '\n' akhir yang diasumsikan daripada data terakhir yang tersedia
sebelum akhir aliran.

kasus

· Applet (class_AppletHTTP) -- NS AppletHTTP kelas

Pengembalian
Sebuah benang. String bisa kosong jika kita mencapai akhir aliran.

AppletHTTP.terima(applet[, ukuran])
Membaca data dari badan HTTP, sesuai dengan pembacaan yang ditentukan ukuran. Jika ukuran is
hilang, fungsi mencoba membaca semua konten aliran hingga akhir. Jika
itu ukuran lebih besar dari badan http, ia mengembalikan jumlah data yang tersedia.

kasus

· Applet (class_AppletHTTP) -- NS AppletHTTP kelas

· ukuran (bilangan bulat) -- ukuran baca yang diperlukan.

Pengembalian
selalu mengembalikan string, string bisa kosong jika koneksi ditutup.

AppletHTTP.send(applet, pesan)
Kirim Pesan msg pada badan permintaan http.

kasus

· Applet (class_AppletHTTP) -- NS AppletHTTP kelas

· msg (tali) -- pesan yang akan dikirim.

kelas AppletTCP()
Kelas ini digunakan dengan applet yang membutuhkan mode 'tcp'. Applet tcp bisa menjadi
terdaftar dengan inti.register_service() fungsi. Mereka digunakan untuk memproses
aliran tcp seperti server di belakang HAProxy.

AppletTCP.c

Pengembalian
A Konverter kelas

Atribut ini berisi objek kelas Converters.

AppletTCP.sc

Pengembalian
A Konverter kelas

Atribut ini berisi objek kelas Converters. Fungsi dari objek ini
mengembalikan selalu string.

AppletTCP.f

Pengembalian
A Ambil kelas

Atribut ini berisi objek kelas Fetches.

AppletTCP.sf

Pengembalian
A Ambil kelas

Atribut ini berisi objek kelas Fetches.

AppletTCP.getline(applet)
Fungsi ini mengembalikan string yang berisi satu baris dari aliran. Jika datanya
dikembalikan tidak berisi '\n' akhir yang diasumsikan daripada data terakhir yang tersedia
sebelum akhir aliran.

kasus

· Applet (class_AppletTCP) -- NS AppletTCP kelas

Pengembalian
Sebuah benang. String bisa kosong jika kita mencapai akhir aliran.

AppletTCP.terima(applet[, ukuran])
Membaca data dari aliran TCP, sesuai dengan pembacaan yang ditentukan ukuran. Jika ukuran
hilang, fungsi mencoba membaca semua konten aliran hingga akhir.

kasus

· Applet (class_AppletTCP) -- NS AppletTCP kelas

· ukuran (bilangan bulat) -- ukuran baca yang diperlukan.

Pengembalian
selalu mengembalikan string, string bisa kosong jika koneksi ditutup.

AppletTCP.send(appletmsg)
Kirim pesan di aliran.

kasus

· Applet (class_AppletTCP) -- NS AppletTCP kelas

· msg (tali) -- pesan yang akan dikirim.

Banyak perpustakaan lua yang berguna dapat ditemukan di sini:

· https://lua-toolbox.com/

Akses redis:

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

Ini adalah contoh tentang penggunaan perpustakaan Redis dengan HAProxy. Perhatikan bahwa setiap panggilan
fungsi apa pun dari perpustakaan ini dapat menimbulkan kesalahan jika koneksi soket gagal.

-- muat pustaka redis
redis lokal = membutuhkan("redis");

fungsi lakukan_sesuatu(txn)

-- buat dan sambungkan soket tcp baru
tcp lokal = inti.tcp();
tcp:batas waktu(1);
tcp:koneksi("127.0.0.1", 6379);

-- gunakan perpustakaan redis dengan soket baru ini
klien lokal = redis.connect({socket=tcp});
klien:ping();

akhir

OpenSSL:

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

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

Gunakan haproxy-lua online menggunakan layanan onworks.net


Ad


Ad