EnglishFrenchSpanyol

Ad


Favicon OnWorks

haproxy-lua - Dalam Talian di Awan

Jalankan haproxy-lua dalam penyedia pengehosan percuma OnWorks melalui Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS

Ini ialah arahan haproxy-lua yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS.

JADUAL:

NAMA


haproxy-lua - haproxy-lua Dokumentasi

HAPROXY LUA BERGUNA KONTEKS


Kod Lua yang dilaksanakan dalam HAProxy boleh diproses dalam 2 mod utama. Yang pertama ialah
permulaan mod, dan yang kedua ialah runtime mod.

· Di dalam permulaan mod, kami boleh melakukan penyelesaian DNS, tetapi kami tidak boleh melaksanakan soket I/O.
Dalam mod permulaan ini, HAProxy masih disekat semasa pelaksanaan Lua
program.

· Di dalam runtime mod, kami tidak boleh melakukan penyelesaian DNS, tetapi kami boleh menggunakan soket. The
pelaksanaan kod Lua dimultiplekskan dengan pemprosesan permintaan, jadi kod Lua
nampaknya dijalankan dalam menyekat, tetapi ia tidak berlaku.

Kod Lua dimuatkan dalam satu atau lebih fail. Fail ini mengandungi kod dan fungsi utama.
Lua mempunyai 6 konteks pelaksanaan.

1. Fail Lua badan konteks. Ia dilaksanakan semasa memuatkan fail Lua dalam
HAProxy [global] bahagian dengan arahan lua-load. Ia dilaksanakan dalam permulaan
mod. Bahagian ini digunakan untuk mengkonfigurasi pengikatan Lua dalam HAProxy.

2. Lua INIT konteks. Ia adalah fungsi Lua yang dilaksanakan selepas HAProxy
penghuraian konfigurasi. Perlaksanaan berada dalam mod permulaan. Dalam konteks ini
Persekitaran HAProxy sudah dimulakan. Ia berguna untuk menyemak konfigurasi, atau
memulakan sambungan soket atau tugas. Fungsi-fungsi ini diisytiharkan dalam badan
konteks dengan fungsi Lua core.register_init(). Prototaip fungsi tersebut ialah a
fungsi mudah tanpa nilai pulangan dan tanpa parameter, seperti ini: fungsi fcn().

3. Lua tugasan konteks. Ia adalah fungsi Lua yang dilaksanakan selepas permulaan HAProxy
penjadual, dan sejurus selepas pengisytiharan tugas dengan fungsi Lua
core.register_task(). Konteks ini boleh serentak dengan pemprosesan trafik. Ia adalah
dilaksanakan dalam mod masa jalan. Prototaip fungsi adalah fungsi mudah tanpa
nilai pulangan dan tanpa parameter, seperti ini: fungsi fcn().

4. The tindakan konteks. Ia adalah fungsi Lua yang dilaksanakan secara bersyarat. Tindakan ini adalah
didaftarkan oleh arahan Lua "core.register_action()". Prototaip Lua
fungsi dipanggil ialah fungsi dengan tidak mengembalikan apa-apa dan yang mengambil objek
kelas TXN sebagai kemasukan. fungsi fcn(txn).

5. The pengambilan sampel konteks. Fungsi ini mengambil objek TXN sebagai argumen masukan dan
mengembalikan rentetan. Jenis fungsi ini tidak boleh melaksanakan sebarang fungsi menyekat. mereka
berguna untuk mengagregat beberapa pengambilan sampel HAProxy asal dan mengembalikan hasilnya.
Prototaip fungsi tersebut ialah fungsi rentetan fcn(txn). Fungsi-fungsi ini boleh
berdaftar dengan fungsi Lua core.register_fetches(). Setiap pengambilan sampel yang diisytiharkan ialah
diawali dengan rentetan "lua.".

NOTA: Ada kemungkinan bahawa fungsi ini tidak dapat menemui data yang diperlukan dalam asal
Pengambilan sampel HAProxy, dalam kes ini, ia tidak dapat mengembalikan hasilnya. Kes ini belum lagi
disokong

6. The Penukar konteks. Ia adalah fungsi Lua yang mengambil rentetan sebagai input dan kembali
rentetan lain sebagai output. Jenis fungsi ini tidak mempunyai kewarganegaraan, ia tidak boleh mengakses
sebarang konteks. Mereka tidak melaksanakan sebarang fungsi menyekat. Prototaip panggilan ialah fungsi
rentetan fcn(rentetan). Fungsi ini boleh didaftarkan dengan fungsi Lua
core.register_converters(). Setiap penukar yang diisytiharkan diawali dengan rentetan "lua.".

HAPROXY LUA HELLO DUNIA


Fail konfigurasi HAProxy (hello_world.conf):

global
lua-muat hello_world.lua

dengar proksi
mengikat 127.0.0.1:10001
tcp-request inspect-delay 1s
tcp-request content use-service lua.hello_world

Fail HAProxy Lua (hello_world.lua):

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

Bagaimana untuk memulakan HAProxy untuk menguji konfigurasi ini:

./haproxy -f hello_world.conf

Pada terminal lain, anda boleh menguji dengan telnet:

#:~ telnet 127.0.0.1 10001
hello dunia

kelas teras()
Kelas "teras" mengandungi semua fungsi teras HAProxy. Fungsi ini berguna
untuk mengawal aliran pelaksanaan, mendaftar cangkuk, memanipulasi peta global
atau ACL,...

Kelas "teras" pada asasnya disediakan dengan HAProxy. Tidak memerlukan talian diperlukan untuk
menggunakan fungsi ini.

Kelas "teras" adalah statik, tidak mungkin untuk mencipta objek baharu jenis ini.

teras.muncul

Pulangan
integer

Atribut ini ialah integer, ia mengandungi nilai "kecemasan" peringkat log
(0).

teras.amaran

Pulangan
integer

Atribut ini ialah integer, ia mengandungi nilai "alert" peringkat log (1).

teras.crit

Pulangan
integer

Atribut ini ialah integer, ia mengandungi nilai peringkat log "kritikal" (2).

inti.err

Pulangan
integer

Atribut ini ialah integer, ia mengandungi nilai "ralat" peringkat log (3).

teras.amaran

Pulangan
integer

Atribut ini ialah integer, ia mengandungi nilai "amaran" peringkat log (4).

teras.perasan

Pulangan
integer

Atribut ini ialah integer, ia mengandungi nilai "notis" peringkat log (5).

teras.info

Pulangan
integer

Atribut ini ialah integer, ia mengandungi nilai "info" peringkat log (6).

core.debug

Pulangan
integer

Atribut ini ialah integer, ia mengandungi nilai "debug" peringkat log (7).

core.log(peringkat log, mesej)
konteks: badan, init, tugas, tindakan, pengambilan sampel, penukar

Fungsi ini menghantar log. Log dihantar, mengikut HAProxy
fail konfigurasi, pada pelayan syslog lalai jika ia dikonfigurasikan dan pada
stderr jika dibenarkan.

Argumen

· tahap log (integer) -- Adakah tahap log dikaitkan dengan mesej. Ia adalah
nombor antara 0 dan 7.

· msg (rentetan) -- Kandungan log.

Lihat core.emerg, core.alert, core.crit, core.err, core.warning, core.notis,
core.info, core.debug (takrif peringkat log)

Lihat kod.Nyahpepijat

Lihat teras.Maklumat

Lihat teras.Amaran

Lihat teras.Awas

teras.Nyahpepijat(msg)
konteks: badan, init, tugas, tindakan, pengambilan sampel, penukar

Argumen

· msg (rentetan) -- Kandungan log.

Lihat log

Melakukan kerja yang sama daripada:

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

teras.Maklumat(msg)
konteks: badan, init, tugas, tindakan, pengambilan sampel, penukar

Argumen

· msg (rentetan) -- Kandungan log.

Lihat log

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

teras.Amaran(msg)
konteks: badan, init, tugas, tindakan, pengambilan sampel, penukar

Argumen

· msg (rentetan) -- Kandungan log.

Lihat log

fungsi Amaran(msg)
core.log(core.warning, msg)
akhir

teras.Awas(msg)
konteks: badan, init, tugas, tindakan, pengambilan sampel, penukar

Argumen

· msg (rentetan) -- Kandungan log.

Lihat log

fungsi Isyarat(msg)
core.log(core.alert, msg)
akhir

core.add_acl(nama fail, kunci)
konteks: init, tugas, tindakan, pengambilan sampel, penukar

Tambah ACL utama dalam senarai ACL yang dirujuk oleh fail nama fail.

Argumen

· nama fail (rentetan) -- nama fail yang merujuk kepada entri ACL.

· utama (rentetan) -- kunci yang akan ditambah.

core.del_acl(nama fail, kunci)
konteks: init, tugas, tindakan, pengambilan sampel, penukar

Padamkan entri ACL yang dirujuk oleh kekunci utama dalam senarai ACL yang dirujuk oleh
nama fail.

Argumen

· nama fail (rentetan) -- nama fail yang merujuk kepada entri ACL.

· utama (rentetan) -- kunci yang akan dipadamkan.

core.del_map(nama fail, kunci)
konteks: init, tugas, tindakan, pengambilan sampel, penukar

Padamkan entri peta yang diindeks dengan kunci yang ditentukan dalam senarai peta yang dirujuk
dengan nama failnya.

Argumen

· nama fail (rentetan) -- nama fail yang merujuk kepada entri peta.

· utama (rentetan) -- kunci yang akan dipadamkan.

inti.msleep(milisaat)
konteks: badan, init, tugas, tindakan

. core.msleep() menghentikan pelaksanaan Lua antara milisaat yang ditentukan.

Argumen

· milisaat (integer) -- milisaat yang diperlukan.

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

Daftarkan fungsi Lua yang dilaksanakan sebagai tindakan. Semua tindakan berdaftar boleh digunakan
dalam HAProxy dengan awalan "lua.". Tindakan mendapat kelas objek TXN sebagai input.

Argumen

· nama (rentetan) -- ialah nama penukar.

· tindakan (meja) -- ialah jadual rentetan yang menerangkan tindakan HAProxy yang
nak daftar ke. Tindakan yang dijangkakan ialah 'tcp-req', 'tcp-res',
'http-req' atau 'http-res'.

· func (fungsi) -- ialah fungsi Lua dipanggil untuk berfungsi sebagai penukar.

Prototaip fungsi Lua yang digunakan sebagai hujah ialah:

fungsi (txn)

·

txn (TXN kelas): ini is a TXN objek digunakan Untuk memanipulasi yang
permintaan semasa atau aliran TCP.

Di sini, contoh pendaftaran tindakan. tindakan juste menghantar 'Hello world' dalam
balak.

core.register_action("hello-world", { "tcp-req", "http-req" }, function(txn)
txn:Info("Hello world")
akhir)
Kod contoh ini digunakan dalam konfigurasi HAproxy seperti ini:

bahagian hadapan tcp_frt
mod tcp
tcp-meminta kandungan lua.hello-world

bahagian hadapan http_frt
mod http
http-permintaan lua.hello-world

core.register_converters(nama, fungsi)
konteks: badan

Daftarkan fungsi Lua yang dilaksanakan sebagai penukar. Semua penukar berdaftar boleh
digunakan dalam HAProxy dengan awalan "lua.". Penukar mendapat rentetan sebagai input dan
kembalikan rentetan sebagai output. Fungsi berdaftar boleh mengambil sehingga 9 nilai sebagai
parameter. Semua nilai adalah rentetan.

Argumen

· nama (rentetan) -- ialah nama penukar.

· func (fungsi) -- ialah fungsi Lua dipanggil untuk berfungsi sebagai penukar.

Prototaip fungsi Lua yang digunakan sebagai hujah ialah:

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

· str (rentetan): ini ialah nilai input yang ditukar secara automatik dalam rentetan.

· p1 .. p5 (rentetan): ini ialah senarai hujah rentetan yang diisytiharkan dalam haroxy
fail konfigurasi. Bilangan hujah tidak melebihi 5. Urutan dan
sifat ini secara konvensional dipilih oleh pembangun.

core.register_fetches(nama, fungsi)
konteks: badan

Daftarkan fungsi Lua yang dilaksanakan sebagai pengambilan sampel. Semua pengambilan sampel berdaftar
boleh digunakan dalam HAProxy dengan awalan "lua.". Pengambilan sampel Lua mengembalikan rentetan
sebagai output. Fungsi berdaftar boleh mengambil sehingga 9 nilai sebagai parameter. Semua
nilai adalah rentetan.

Argumen

· nama (rentetan) -- ialah nama penukar.

· func (fungsi) -- ialah fungsi Lua dipanggil untuk berfungsi sebagai pengambilan sampel.

Prototaip fungsi Lua yang digunakan sebagai hujah ialah:

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

· txn (TXN kelas): ini ialah objek txn yang dikaitkan dengan permintaan semasa.

· p1 .. p5 (rentetan): ini ialah senarai hujah rentetan yang diisytiharkan dalam haroxy
fail konfigurasi. Bilangan hujah tidak melebihi 5. Urutan dan
sifat ini secara konvensional dipilih oleh pembangun.

· Pulangan: Rentetan yang mengandungi beberapa data, ot nol jika nilai tidak dapat dikembalikan sekarang.

kod contoh lua:

core.register_fetches("hello", function(txn)
kembali "hello"
akhir)
Konfigurasi contoh HAProxy:

contoh bahagian hadapan
http-minta lokasi ubah hala /%[lua.hello]

core.register_service(nama, mod, fungsi)
konteks: badan

Daftarkan fungsi Lua yang dilaksanakan sebagai perkhidmatan. Semua perkhidmatan berdaftar boleh
digunakan dalam HAProxy dengan awalan "lua.". Perkhidmatan mendapat kelas objek sebagai input
mengikut mod yang diperlukan.

Argumen

· nama (rentetan) -- ialah nama penukar.

· mod (rentetan) -- ialah rentetan yang menerangkan mod yang diperlukan. Hanya 'tcp' atau
'http' dibenarkan.

· func (fungsi) -- ialah fungsi Lua dipanggil untuk berfungsi sebagai penukar.

Prototaip fungsi Lua yang digunakan sebagai hujah ialah:

fungsi (applet)

· applet applet adalah untuk AppletTCP kelas atau AppletHTTP kelas. Ia bergantung kepada jenis
daripada applet berdaftar. Sebuah applet yang didaftarkan dengan nilai 'http' untuk mod
parameter akan mendapat a AppletHTTP kelas. Jika mod nilai ialah 'tcp', applet akan
mendapat a AppletTCP kelas.

amaran: Applet jenis 'http' tidak boleh dipanggil daripada 'tcp-' peraturan peraturan. Hanya yang 'http-'
rulesets dibenarkan, ini bermakna tidak mungkin untuk memanggil applet HTTP daripada a
proksi dalam mod tcp. Applet jenis 'tcp' boleh dipanggil dari mana-mana sahaja.

Di sini, contoh pendaftaran perkhidmatan. perkhidmatan hanya menghantar 'Hello world' sebagai
respons http.

core.register_service("hello-world", "http", function(applet)
respons tempatan = "Hello World !"
applet:set_status(200)
applet:add_header("content-length", string.len(respons))
applet:add_header("jenis kandungan", "teks/plain")
applet:start_response()
applet:send(respons)
akhir)
Kod contoh ini digunakan dalam konfigurasi HAproxy seperti ini:

contoh bahagian hadapan
http-permintaan penggunaan perkhidmatan lua.hello-world

core.register_init(func)
konteks: badan

Daftarkan fungsi yang dilaksanakan selepas penghuraian konfigurasi. Ini berguna untuk
semak sebarang parameter.

Argumen

· func (fungsi) -- ialah fungsi Lua dipanggil untuk berfungsi sebagai pemula.

Prototaip fungsi Lua yang digunakan sebagai hujah ialah:

fungsi()
Ia tidak memerlukan input, dan tiada output dijangka.

core.register_task(func)
konteks: badan, init, tugas, tindakan, pengambilan sampel, penukar

Daftar dan mulakan tugas bebas. Tugas dimulakan apabila HAProxy utama
penjadual bermula. Sebagai contoh, jenis tugas ini boleh dilaksanakan untuk melaksanakan kompleks
pemeriksaan kesihatan.

Argumen

· func (fungsi) -- ialah fungsi Lua dipanggil untuk berfungsi sebagai pemula.

Prototaip fungsi Lua yang digunakan sebagai hujah ialah:

fungsi()
Ia tidak memerlukan input, dan tiada output dijangka.

core.set_nice(nice)
konteks: tugas, tindakan, pengambilan sampel, penukar

Tukar kebaikan tugas semasa atau sesi semasa.

Argumen

· baik (integer) -- nilai yang bagus, ia mestilah antara -1024 dan 1024.

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

tetapkan nilai nilai dikaitkan dengan kunci utama dalam peta yang dirujuk oleh nama fail.

Argumen

· nama fail (rentetan) -- rujukan Peta

· utama (rentetan) -- kunci untuk menetapkan atau menggantikan

· nilai (rentetan) -- nilai yang berkaitan

core.sleep(int saat)
konteks: badan, init, tugas, tindakan

. core.sleep() fungsi menghentikan pelaksanaan Lua antara saat yang ditentukan.

Argumen

· saat (integer) -- saat yang diperlukan.

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

Fungsi ini mengembalikan objek baharu a soket kelas.

Pulangan
A Soket kelas objek.

core.done(data)
konteks: badan, init, tugas, tindakan, pengambilan sampel, penukar

Argumen

· data (mana-mana) -- Kembalikan beberapa data untuk pemanggil. Ia berguna dengan
pengambilan sampel dan penukar sampel.

Segera menghentikan pelaksanaan Lua semasa dan kembali kepada pemanggil yang mungkin
pengambilan sampel, penukar atau tindakan dan mengembalikan nilai yang ditentukan (diabaikan
untuk tindakan). Ia digunakan apabila proses LUA menyelesaikan kerjanya dan ingin memberi
kembalikan kawalan kepada HAProxy tanpa melaksanakan kod yang tinggal. Ia boleh dilihat sebagai
"pulangan" pelbagai peringkat.

core.yield()
konteks: tugas, tindakan, pengambilan sampel, penukar

Berikan kembali tangan pada penjadual HAProxy. Ia digunakan apabila pemprosesan LUA
memakan banyak masa pemprosesan.

kelas Mengambil()
Kelas ini mengandungi banyak pengambilan sampel HAProxy dalaman. Lihat HAProxy
dokumentasi "configuration.txt" untuk mendapatkan maklumat lanjut tentang penggunaannya. mereka adalah
bab 7.3.2 hingga 7.3.6.

amaran beberapa pengambilan sampel tidak tersedia dalam beberapa konteks. Batasan ini
dinyatakan dalam dokumentasi ini apabila ia berguna.

Lihat TXN.f

Lihat TXN.sf

Pengambilan berguna untuk:

· dapatkan masa sistem,

· dapatkan pembolehubah persekitaran,

· dapatkan nombor rawak,

· status bahagian belakang yang diketahui seperti bilangan pengguna dalam baris gilir atau bilangan
sambungan diwujudkan,

· maklumat pelanggan seperti sumber ip atau destinasi,

· berurusan dengan meja kayu,

· Maklumat SSL yang ditubuhkan,

· Maklumat HTTP seperti pengepala atau kaedah.

tindakan fungsi (txn)
-- Dapatkan IP sumber
pelanggan tempatan = txn.f:src()
akhir

kelas Penukar()
Kelas ini mengandungi banyak penukar sampel HAProxy dalaman. Lihat HAProxy
dokumentasi "configuration.txt" untuk mendapatkan maklumat lanjut tentang penggunaannya. Its the
bab 7.3.1.

Lihat TXN.c

Lihat TXN.sc

Penukar menyediakan transformasi statefull. Mereka berguna untuk:

· menukar input kepada base64,

· menggunakan cincang pada rentetan input (djb2, crc32, sdbm, wt6),

· format tarikh,

· melarikan diri json,

· mengekstrak bahasa pilihan membandingkan dua senarai,

· beralih kepada aksara bawah atau atas,

· berurusan dengan meja kayu.

kelas Saluran()
HAProxy menggunakan dua penimbal untuk pemprosesan permintaan. Yang pertama digunakan
dengan data permintaan (daripada klien ke pelayan) dan yang kedua digunakan untuk
data tindak balas (dari pelayan kepada klien).

Setiap penimbal mengandungi dua jenis data. Jenis pertama ialah data masuk menunggu
untuk pemprosesan. Bahagian kedua ialah data keluar yang telah diproses. Biasanya,
data masuk diproses, selepas ia ditandakan sebagai data keluar, dan akhirnya ia
sudah di hantar. Fungsi berikut menyediakan alat untuk memanipulasi data ini dalam a
buffer.

Rajah berikut menunjukkan di mana fungsi kelas saluran digunakan.

Amaran: Tidak boleh membaca daripada respons dalam tindakan permintaan, dan memang begitu
tidak boleh dibaca untuk saluran permintaan dalam tindakan tindak balas.
[gambar]

Channel.dup(saluran)
Fungsi ini mengembalikan rentetan yang mengandungi keseluruhan penimbal. Data tidak
keluarkan daripada penimbal dan boleh diproses semula kemudian.

Jika penimbal tidak dapat menerima lebih banyak data, nilai 'tiada' dikembalikan.

Argumen

· saluran (saluran_kelas) -- Saluran yang dimanipulasi.

Pulangan
rentetan yang mengandungi semua data yang tersedia atau tiada.

Channel.get(channel)
Fungsi ini mengembalikan rentetan yang mengandungi keseluruhan penimbal. Data digunakan
daripada penimbal.

Jika penimbal tidak dapat menerima lebih banyak data, nilai 'tiada' dikembalikan.

Argumen

· saluran (saluran_kelas) -- Saluran yang dimanipulasi.

Pulangan
rentetan yang mengandungi semua data yang tersedia atau tiada.

Channel.getline(saluran)
Fungsi ini mengembalikan rentetan yang mengandungi baris pertama penimbal. Data itu
dimakan. Jika data yang dikembalikan tidak mengandungi 'n' akhir yang diandaikan daripadanya
data terakhir yang tersedia dalam penimbal.

Jika penimbal tidak dapat menerima lebih banyak data, nilai 'tiada' dikembalikan.

Argumen

· saluran (saluran_kelas) -- Saluran yang dimanipulasi.

Pulangan
rentetan yang mengandungi baris yang tersedia atau nil.

Channel.set(saluran, tali)
Fungsi ini menggantikan kandungan penimbal dengan rentetan. Fungsi kembali
panjang yang disalin, jika tidak, ia mengembalikan -1.

Set data dengan fungsi ini tidak dihantar. Mereka menunggu penghujung HAProxy
pemprosesan, jadi penimbal boleh penuh.

Argumen

· saluran (saluran_kelas) -- Saluran yang dimanipulasi.

· rentetan (rentetan) -- Data yang akan dihantar.

Pulangan
integer yang mengandungi jumlah bait yang disalin atau -1.

Channel.append(saluran, tali)
Fungsi ini menambahkan hujah rentetan pada kandungan penimbal. Fungsinya
mengembalikan panjang yang disalin, jika tidak, ia mengembalikan -1.

Set data dengan fungsi ini tidak dihantar. Mereka menunggu penghujung HAProxy
pemprosesan, jadi penimbal boleh penuh.

Argumen

· saluran (saluran_kelas) -- Saluran yang dimanipulasi.

· rentetan (rentetan) -- Data yang akan dihantar.

Pulangan
integer yang mengandungi jumlah bait yang disalin atau -1.

Channel.send(saluran, tali)
Fungsi ini memerlukan penghantaran segera data. Kecuali jika sambungannya
ditutup, penimbal sentiasa disiram dan semua rentetan boleh dihantar.

Argumen

· saluran (saluran_kelas) -- Saluran yang dimanipulasi.

· rentetan (rentetan) -- Data yang akan dihantar.

Pulangan
integer yang mengandungi jumlah bait yang disalin atau -1.

Channel.get_in_length(channel)
Fungsi ini mengembalikan panjang bahagian input penimbal.

Argumen

· saluran (saluran_kelas) -- Saluran yang dimanipulasi.

Pulangan
integer yang mengandungi jumlah bait yang tersedia.

Channel.get_out_length(channel)
Fungsi ini mengembalikan panjang bahagian keluaran penimbal.

Argumen

· saluran (saluran_kelas) -- Saluran yang dimanipulasi.

Pulangan
integer yang mengandungi jumlah bait yang tersedia.

Channel.forward(saluran, int)
Fungsi ini memindahkan bait dari bahagian input penimbal ke bahagian output.

Argumen

· saluran (saluran_kelas) -- Saluran yang dimanipulasi.

· int (integer) -- Jumlah data yang akan dimajukan.

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

HTTP.req_get_headers(http)
Mengembalikan tatasusunan yang mengandungi semua pengepala permintaan.

Argumen

· http (kelas_http) -- Objek http yang berkaitan.

Pulangan
susunan tajuk.

Lihat HTTP.res_get_headers()

Ini adalah bentuk tatasusunan yang dikembalikan:

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

hdr tempatan = HTTP:req_get_headers()
hdr["hos"][0] = "www.test.com"
hdr["accept"][0] = "audio/asas q=1"
hdr["accept"][1] = "audio/*, q=0.2"
hdr["terima"][2] = "*/*, q=0.1"

HTTP.res_get_headers(http)
Mengembalikan tatasusunan yang mengandungi semua pengepala respons.

Argumen

· http (kelas_http) -- Objek http yang berkaitan.

Pulangan
susunan tajuk.

Lihat HTTP.req_get_headers()

Ini adalah bentuk tatasusunan yang dikembalikan:

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

hdr tempatan = HTTP:req_get_headers()
hdr["hos"][0] = "www.test.com"
hdr["accept"][0] = "audio/asas q=1"
hdr["accept"][1] = "audio/*, q=0.2"
hdr["terima"][2] = "*.*, q=0.1"

HTTP.req_add_header(http, nama, nilai)
Menambah medan pengepala HTTP dalam permintaan yang namanya dinyatakan dalam "nama" dan
yang nilainya ditakrifkan dalam "nilai".

Argumen

· http (kelas_http) -- Objek http yang berkaitan.

· nama (rentetan) -- Nama pengepala.

· nilai (rentetan) -- Nilai pengepala.

Lihat HTTP.res_add_header()

HTTP.res_add_header(http, nama, nilai)
menambahkan medan pengepala HTTP dalam respons yang namanya dinyatakan dalam "nama" dan
yang nilainya ditakrifkan dalam "nilai".

Argumen

· http (kelas_http) -- Objek http yang berkaitan.

· nama (rentetan) -- Nama pengepala.

· nilai (rentetan) -- Nilai pengepala.

Lihat HTTP.req_add_header()

HTTP.req_del_header(http, nama)
Mengalih keluar semua medan pengepala HTTP dalam permintaan yang namanya dinyatakan dalam "nama".

Argumen

· http (kelas_http) -- Objek http yang berkaitan.

· nama (rentetan) -- Nama pengepala.

Lihat HTTP.res_del_header()

HTTP.res_del_header(http, nama)
Mengalih keluar semua medan pengepala HTTP dalam respons yang namanya dinyatakan dalam "nama".

Argumen

· http (kelas_http) -- Objek http yang berkaitan.

· nama (rentetan) -- Nama pengepala.

Lihat HTTP.req_del_header()

HTTP.req_set_header(http, nama, nilai)
Pembolehubah ini menggantikan semua kejadian semua tajuk "nama", dengan hanya satu yang mengandungi
nilai".

Argumen

· http (kelas_http) -- Objek http yang berkaitan.

· nama (rentetan) -- Nama pengepala.

· nilai (rentetan) -- Nilai pengepala.

Lihat HTTP.res_set_header()

Fungsi ini melakukan kerja yang sama seperti kod berikut:

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

HTTP.res_set_header(http, nama, nilai)
Pembolehubah ini menggantikan semua kejadian semua tajuk "nama", dengan hanya satu yang mengandungi
nilai".

Argumen

· http (kelas_http) -- Objek http yang berkaitan.

· nama (rentetan) -- Nama pengepala.

· nilai (rentetan) -- Nilai pengepala.

Lihat HTTP.req_rep_header()

HTTP.req_rep_header(http, nama, regex, menggantikan)
Padan dengan ungkapan biasa dalam semua kemunculan medan pengepala "nama" mengikut
kepada "regex", dan menggantikannya dengan argumen "ganti". Nilai gantian
boleh mengandungi rujukan belakang seperti 1, 2, ... Fungsi ini berfungsi dengan permintaan.

Argumen

· http (kelas_http) -- Objek http yang berkaitan.

· nama (rentetan) -- Nama pengepala.

· regex (rentetan) -- Ungkapan tetap padanan.

· menggantikan (rentetan) -- Nilai gantian.

Lihat HTTP.res_rep_header()

HTTP.res_rep_header(http, nama, regex, tali)
Padan dengan ungkapan biasa dalam semua kemunculan medan pengepala "nama" mengikut
kepada "regex", dan menggantikannya dengan argumen "ganti". Nilai gantian
boleh mengandungi rujukan belakang seperti 1, 2, ... Fungsi ini berfungsi dengan permintaan.

Argumen

· http (kelas_http) -- Objek http yang berkaitan.

· nama (rentetan) -- Nama pengepala.

· regex (rentetan) -- Ungkapan tetap padanan.

· menggantikan (rentetan) -- Nilai gantian.

Lihat HTTP.req_replace_header()

HTTP.req_replace_value(http, nama, regex, menggantikan)
Berfungsi seperti "HTTP.req_replace_header()" kecuali ia sepadan dengan regex
setiap nilai dipisahkan koma bagi medan pengepala "nama" dan bukannya keseluruhannya
kepala.

Argumen

· http (kelas_http) -- Objek http yang berkaitan.

· nama (rentetan) -- Nama pengepala.

· regex (rentetan) -- Ungkapan tetap padanan.

· menggantikan (rentetan) -- Nilai gantian.

Lihat HTTP.req_replace_header()

Lihat HTTP.res_replace_value()

HTTP.res_replace_value(http, nama, regex, menggantikan)
Berfungsi seperti "HTTP.res_replace_header()" kecuali ia sepadan dengan regex
setiap nilai dipisahkan koma bagi medan pengepala "nama" dan bukannya keseluruhannya
kepala.

Argumen

· http (kelas_http) -- Objek http yang berkaitan.

· nama (rentetan) -- Nama pengepala.

· regex (rentetan) -- Ungkapan tetap padanan.

· menggantikan (rentetan) -- Nilai gantian.

Lihat HTTP.res_replace_header()

Lihat HTTP.req_replace_value()

HTTP.req_set_method(http, kaedah)
Menulis semula kaedah permintaan dengan parameter "kaedah".

Argumen

· http (kelas_http) -- Objek http yang berkaitan.

· kaedah (rentetan) -- Kaedah baru.

HTTP.req_set_path(http, jalan)
Menulis semula laluan permintaan dengan parameter "laluan".

Argumen

· http (kelas_http) -- Objek http yang berkaitan.

· jalan (rentetan) -- Jalan baru.

HTTP.req_set_query(http, pertanyaan)
Menulis semula rentetan pertanyaan permintaan yang muncul selepas tanda soal pertama
("?") dengan parameter "pertanyaan".

Argumen

· http (kelas_http) -- Objek http yang berkaitan.

· pertanyaan (rentetan) -- Pertanyaan baharu.

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

Argumen

· http (kelas_http) -- Objek http yang berkaitan.

· uri (rentetan) -- Uri baru.

HTTP.res_set_status(http, status)
Menulis semula kod status respons dengan parameter "kod". Perhatikan bahawa sebabnya
secara automatik disesuaikan dengan kod baharu.

Argumen

· http (kelas_http) -- Objek http yang berkaitan.

· terkini (integer) -- Kod status respons baharu.

kelas TXN()
Kelas txn mengandungi semua fungsi yang berkaitan dengan transaksi http atau tcp
(Nota daripada strim tcp adalah sama daripada transaksi tcp, tetapi transaksi HTTP
tidak sama dengan aliran tcp).

Penggunaan kelas ini membenarkan untuk mendapatkan semula data daripada permintaan, mengubahnya dan
memajukannya.

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

TXN.c

Pulangan
An Converters kelas.

Atribut ini mengandungi objek kelas Converters.

TXN.sc

Pulangan
An Converters kelas.

Atribut ini mengandungi objek kelas Converters. Fungsi objek ini
kembali sentiasa rentetan.

TXN.f

Pulangan
An Pengambilan kelas.

Atribut ini mengandungi objek kelas Fetches.

TXN.sf

Pulangan
An Pengambilan kelas.

Atribut ini mengandungi objek kelas Fetches. Fungsi objek ini
kembali sentiasa rentetan.

TXN.req

Pulangan
An Saluran kelas.

Atribut ini mengandungi objek kelas saluran untuk penimbal permintaan.

TXN.res

Pulangan
An Saluran kelas.

Atribut ini mengandungi objek kelas saluran untuk penimbal tindak balas.

TXN.http

Pulangan
An HTTP kelas.

Atribut ini mengandungi objek kelas HTTP. Ia tersedia hanya jika proksi mempunyai
"mod http" didayakan.

TXN.log(TXN, peringkat log, mesej)
Fungsi ini menghantar log. Log dihantar, mengikut HAProxy
fail konfigurasi, pada pelayan syslog lalai jika ia dikonfigurasikan dan pada
stderr jika dibenarkan.

Argumen

· txn (kelas_txn) -- Objek kelas txn yang mengandungi data.

· tahap log (integer) -- Adakah tahap log dikaitkan dengan mesej. Ia adalah
nombor antara 0 dan 7.

· msg (rentetan) -- Kandungan log.

Lihat core.emerg, core.alert, core.crit, core.err, core.warning, core.notis,
core.info, core.debug (takrif peringkat log)

Lihat TXN.deflog

Lihat TXN.Nyahpepijat

Lihat TXN.Info

Lihat TXN.Amaran

Lihat TXN.Amaran

TXN.deflog(TXN, mesej)
Menghantar baris log dengan peringkat log lalai untuk proksi yang dikaitkan dengan
transaksi.

Argumen

· txn (kelas_txn) -- Objek kelas txn yang mengandungi data.

· msg (rentetan) -- Kandungan log.

Lihat TXN.log

TXN.Debug(txn, mesej)

Argumen

· txn (kelas_txn) -- Objek kelas txn yang mengandungi data.

· msg (rentetan) -- Kandungan log.

Lihat TXN.log

Melakukan kerja yang sama daripada:

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

TXN.Info(txn, mesej)

Argumen

· txn (kelas_txn) -- Objek kelas txn yang mengandungi data.

· msg (rentetan) -- Kandungan log.

Lihat TXN.log

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

TXN.Amaran(txn, mesej)

Argumen

· txn (kelas_txn) -- Objek kelas txn yang mengandungi data.

· msg (rentetan) -- Kandungan log.

Lihat TXN.log

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

TXN.Alert(txn, mesej)

Argumen

· txn (kelas_txn) -- Objek kelas txn yang mengandungi data.

· msg (rentetan) -- Kandungan log.

Lihat TXN.log

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

TXN.get_priv(txn)
Kembalikan data Lua yang disimpan dalam transaksi semasa (dengan TXN.set_priv())
fungsi. Jika tiada data disimpan, ia mengembalikan nilai nol.

Argumen

· txn (kelas_txn) -- Objek kelas txn yang mengandungi data.

Pulangan
data legap yang disimpan sebelum ini, atau tiada jika tiada yang tersedia.

TXN.set_priv(txn, Tarikh)
Simpan sebarang data dalam transaksi HAProxy semasa. Tindakan ini menggantikan yang lama
data yang disimpan.

Argumen

· txn (kelas_txn) -- Objek kelas txn yang mengandungi data.

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

TXN.set_var(TXN, terdapat, nilai)
Menukar jenis Lua dalam jenis HAProxy dan menyimpannya dalam pembolehubah .

Argumen

· txn (kelas_txn) -- Objek kelas txn yang mengandungi data.

· var (rentetan) -- Nama pembolehubah mengikut pembolehubah HAProxy
Sintaks.

· nilai (legap) -- Data yang disimpan dalam pembolehubah.

TXN.get_var(TXN, var)
Mengembalikan data yang disimpan dalam penukar pembolehubah dalam jenis Lua.

Argumen

· txn (kelas_txn) -- Objek kelas txn yang mengandungi data.

· var (rentetan) -- Nama pembolehubah mengikut pembolehubah HAProxy
Sintaks.

TXN.get_headers(txn)
Fungsi ini mengembalikan tatasusunan pengepala.

Argumen

· txn (kelas_txn) -- Objek kelas txn yang mengandungi data.

Pulangan
susunan tajuk.

TXN.selesai(txn)
Fungsi ini menamatkan pemprosesan transaksi dan sesi yang berkaitan.
Ia boleh digunakan apabila ralat kritikal dikesan atau untuk menamatkan pemprosesan selepas itu
beberapa data telah dikembalikan kepada klien (cth: ubah hala).

Argumen

· txn (kelas_txn) -- Objek kelas txn yang mengandungi data.

TXN.set_loglevel(txn, peringkat log)
Digunakan untuk menukar tahap log permintaan semasa. "Tahap log" mestilah satu
integer antara 0 dan 7.

Argumen

· txn (kelas_txn) -- Objek kelas txn yang mengandungi data.

· tahap log (integer) -- Tahap log yang diperlukan. Pembolehubah ini boleh menjadi salah satu daripada

Lihat teras.

TXN.set_tos(txn, tos)
Digunakan untuk menetapkan nilai medan TOS atau DSCP bagi paket yang dihantar kepada klien ke
nilai yang diluluskan dalam "tos" pada platform yang menyokong ini.

Argumen

· txn (kelas_txn) -- Objek kelas txn yang mengandungi data.

· tos (integer) -- TOS os DSCP baharu.

TXN.set_mark(txn, tanda)
Digunakan untuk menetapkan MARK Penapis Net pada semua paket yang dihantar kepada pelanggan kepada nilai
diluluskan dalam "tanda" pada platform yang menyokongnya.

Argumen

· txn (kelas_txn) -- Objek kelas txn yang mengandungi data.

· tanda (integer) -- Nilai markah.

kelas Soket()
Kelas ini mesti serasi dengan kelas Lua Socket. Hanya 'pelanggan'
fungsi tersedia. Lihat dokumentasi Soket Lua:

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

Soket.tutup(soket)
Menutup objek TCP. Soket dalaman yang digunakan oleh objek ditutup dan tempatan
alamat tempat objek terikat disediakan untuk aplikasi lain. Tidak
operasi selanjutnya (kecuali untuk panggilan lanjut ke kaedah tutup) dibenarkan pada a
Soket tertutup.

Argumen

· soket (soket_kelas) -- Adakah Soket yang dimanipulasi.

Nota: Adalah penting untuk menutup semua soket terpakai apabila ia tidak diperlukan, kerana, dalam
banyak sistem, setiap soket menggunakan deskriptor fail, yang merupakan sistem terhad
sumber. Objek kutipan sampah ditutup secara automatik sebelum dimusnahkan,
walaupun.

Socket.connect(soket, alamat [, pelabuhan])
Percubaan untuk menyambungkan objek soket ke hos jauh.

Sekiranya berlaku ralat, kaedah mengembalikan sifar diikuti dengan rentetan yang menerangkan ralat.
Sekiranya berjaya, kaedah mengembalikan 1.

Argumen

· soket (soket_kelas) -- Adakah Soket yang dimanipulasi.

· alamat (rentetan) -- boleh menjadi alamat IP atau nama hos. Lihat di bawah untuk
maklumat lanjut.

· pelabuhan (integer) -- mestilah nombor integer dalam julat [1..64K].

Pulangan
1 atau tiada.

sambungan medan alamat membenarkan untuk menggunakan fungsi connect() untuk disambungkan
aliran lain daripada TCP. Sintaks yang mengandungi alamat simpleipv4 atau ipv6 ialah
pada asasnya format yang dijangkakan. Format ini memerlukan port.

Format lain yang diterima ialah laluan soket seperti "/socket/path", ia membenarkan untuk menyambung
ke soket. ruang nama abstrak disokong dengan awalan "abns@", dan akhirnya
filedescriotr boleh dihantar dengan awalan "fd@". Awalan "ipv4@", "ipv6@"
dan "unix@" juga disokong. Port boleh dihantar ke dalam rentetan. Sintaks
"127.0.0.1:1234" adalah sah. dalam kes ini, parameter pelabuhan tidak diendahkan.

Socket.connect_ssl(soket, alamat, port)
Tingkah laku yang sama daripada soket fungsi:sambung, tetapi menggunakan SSL.

Argumen

· soket (soket_kelas) -- Adakah Soket yang dimanipulasi.

Pulangan
1 atau tiada.

Socket.getpeername(socket)
Mengembalikan maklumat tentang bahagian jauh objek klien yang disambungkan.

Mengembalikan rentetan dengan alamat IP rakan sebaya, diikuti dengan nombor port itu
rakan sebaya menggunakan untuk sambungan. Sekiranya ralat, kaedah mengembalikan sifar.

Argumen

· soket (soket_kelas) -- Adakah Soket yang dimanipulasi.

Pulangan
rentetan yang mengandungi maklumat pelayan.

Socket.getsockname(soket)
Mengembalikan maklumat alamat setempat yang dikaitkan dengan objek.

Kaedah ini mengembalikan rentetan dengan alamat IP tempatan dan nombor dengan port. Dalam
kes ralat, kaedah mengembalikan sifar.

Argumen

· soket (soket_kelas) -- Adakah Soket yang dimanipulasi.

Pulangan
rentetan yang mengandungi maklumat pelanggan.

Socket.receive(soket[, corak[, awalan]])
Membaca data daripada objek klien, mengikut corak bacaan yang ditentukan. Corak
ikut format I/O fail Lua, dan perbezaan prestasi antara semua
corak boleh diabaikan.

Argumen

· soket (soket_kelas) -- Adakah Soket yang dimanipulasi.

· pola (rentetan|integer) -- Terangkan perkara yang diperlukan (lihat di bawah).

· awalan (rentetan) -- Rentetan yang akan menjadi awalan data yang dikembalikan.

Pulangan
rentetan yang mengandungi data yang diperlukan atau nil.

Corak boleh menjadi mana-mana yang berikut:

·

`*a`: dibaca dari yang soket sehingga yang sambungan is tertutup. Tidak
terjemahan akhir baris dilakukan;

·

`*l`: dibaca a selaras of teks dari yang soket. . selaras is ditamatkan by a
Aksara LF (ASCII 10), secara pilihan didahului oleh aksara CR (ASCII 13).
Aksara CR dan LF tidak termasuk dalam baris yang dikembalikan. sebenarnya,
semua aksara CR diabaikan oleh corak. Ini ialah corak lalai.

·

Nombor: sebab-sebab yang kaedah kepada membaca a dinyatakan nombor of bait dari yang
soket. Awalan ialah rentetan pilihan untuk digabungkan ke permulaan
sebarang data yang diterima sebelum pemulangan.

· kosong: Jika corak dibiarkan kosong, pilihan lalai ialah *l.

Jika berjaya, kaedah tersebut mengembalikan corak yang diterima. Sekiranya berlaku kesilapan,
kaedah mengembalikan sifar diikuti dengan mesej ralat yang boleh menjadi rentetan 'ditutup'
kes sambungan ditutup sebelum penghantaran selesai atau rentetan
'masa tamat' sekiranya terdapat tamat masa semasa operasi. Juga, selepas ralat
mesej, fungsi mengembalikan hasil separa penghantaran.

Nota penting: Fungsi ini telah diubah dengan teruk. Ia digunakan untuk menyokong berbilang
corak (tetapi saya tidak pernah melihat ciri ini digunakan) dan kini tidak lagi.
Keputusan separa digunakan untuk dikembalikan dengan cara yang sama seperti hasil yang berjaya. ini
ciri terakhir melanggar idea bahawa semua fungsi harus mengembalikan sifar apabila ralat. Justeru
ia juga diubah.

Socket.send(soket, data [, mulakan [, tamat]])
Menghantar data melalui objek klien.

Argumen

· soket (soket_kelas) -- Adakah Soket yang dimanipulasi.

· data (rentetan) -- Data yang akan dihantar.

· permulaan (integer) -- Kedudukan permulaan dalam penimbal data yang akan
dihantar.

· akhir (integer) -- Kedudukan akhir dalam penimbal data yang akan
dihantar.

Pulangan
lihat di bawah.

Data ialah rentetan yang akan dihantar. Argumen pilihan i dan j berfungsi sama seperti
string standard.sub Fungsi Lua untuk membenarkan pemilihan subrentetan dihantar.

Jika berjaya, kaedah mengembalikan indeks bait terakhir dalam [mula, tamat]
yang telah dihantar. Perhatikan bahawa, jika permulaan adalah 1 atau tidak hadir, ini adalah berkesan
jumlah bilangan bait yang dihantar. Sekiranya ralat, kaedah mengembalikan sifar, diikuti dengan
mesej ralat, diikuti dengan indeks bait terakhir dalam [mula, tamat] itu
telah dihantar. Anda mungkin mahu mencuba lagi dari bait berikutan itu. Kesalahan
mesej boleh 'ditutup' sekiranya sambungan ditutup sebelum penghantaran
telah selesai atau rentetan 'masa tamat' sekiranya terdapat tamat masa semasa
operasi.

Nota: Output tidak ditimbal. Untuk rentetan kecil, ia sentiasa lebih baik untuk digabungkan
mereka dalam Lua (dengan operator '..') dan hantar hasilnya dalam satu panggilan dan bukannya
memanggil kaedah beberapa kali.

Socket.setoption(soket, pilihan [, nilai])
Hanya dilaksanakan untuk keserasian, cal ini tidak melakukan apa-apa.

Socket.settimeout(soket, nilai [, mod])
Menukar nilai tamat masa untuk objek. Semua operasi I/O disekat. Itu
ialah, sebarang panggilan ke kaedah menghantar, menerima dan menerima akan disekat selama-lamanya,
sehingga operasi selesai. Kaedah settimeout mentakrifkan had pada amaun
masa kaedah I/O boleh menyekat. Apabila masa tamat masa telah berlalu, yang terjejas
kaedah berputus asa dan gagal dengan kod ralat.

Jumlah masa untuk menunggu ditentukan sebagai parameter nilai, dalam saat.

Mod tamat masa adalah bot dilaksanakan, satu-satunya tamat masa yang boleh ditetapkan ialah ketidakaktifan
masa menunggu untuk menyelesaikan buffer dalaman menghantar atau menunggu menerima data.

Argumen

· soket (soket_kelas) -- Adakah Soket yang dimanipulasi.

· nilai (integer) -- Nilai tamat masa.

kelas Peta()
Kelas ini membenarkan untuk melakukan beberapa carian dalam peta HAProxy. Peta yang diisytiharkan boleh
diubah suai semasa masa jalan melalui soket pengurusan HAProxy.

lalai = "usa"

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

-- Buat pengambilan baharu yang mengembalikan negara pengguna
core.register_fetches("negara", fungsi(txn)
src tempatan;
loc tempatan;

src = txn.f:fhdr("x-forwarded-for");
jika (src == nil) maka
src = txn.f:src()
jika (src == nil) maka
pulangkan lalai;
akhir
akhir

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

jika (loc == nil) maka
pulangkan lalai;
akhir

tempat pulang;
akhir);

Map.int
Lihat fail HAProxy configuration.txt, bab "Menggunakan ACL dan mengambil sampel"
ans subchapter "ACL basics" untuk memahami kaedah padanan corak ini.

Map.ip Lihat fail HAProxy configuration.txt, bab "Menggunakan ACL dan mengambil sampel"
ans subchapter "ACL basics" untuk memahami kaedah padanan corak ini.

Map.str
Lihat fail HAProxy configuration.txt, bab "Menggunakan ACL dan mengambil sampel"
ans subchapter "ACL basics" untuk memahami kaedah padanan corak ini.

Peta.beg
Lihat fail HAProxy configuration.txt, bab "Menggunakan ACL dan mengambil sampel"
ans subchapter "ACL basics" untuk memahami kaedah padanan corak ini.

Map.sub
Lihat fail HAProxy configuration.txt, bab "Menggunakan ACL dan mengambil sampel"
ans subchapter "ACL basics" untuk memahami kaedah padanan corak ini.

Map.dir
Lihat fail HAProxy configuration.txt, bab "Menggunakan ACL dan mengambil sampel"
ans subchapter "ACL basics" untuk memahami kaedah padanan corak ini.

Map.dom
Lihat fail HAProxy configuration.txt, bab "Menggunakan ACL dan mengambil sampel"
ans subchapter "ACL basics" untuk memahami kaedah padanan corak ini.

Map.end
Lihat fail HAProxy configuration.txt, bab "Menggunakan ACL dan mengambil sampel"
ans subchapter "ACL basics" untuk memahami kaedah padanan corak ini.

Map.reg
Lihat fail HAProxy configuration.txt, bab "Menggunakan ACL dan mengambil sampel"
ans subchapter "ACL basics" untuk memahami kaedah padanan corak ini.

Map.new(fail, kaedah)
Mencipta dan memuatkan peta.

Argumen

· fail (rentetan) -- Adakah fail yang mengandungi peta.

· kaedah (integer) -- Adakah kaedah padanan corak peta. Lihat atribut
daripada kelas Peta.

Pulangan
objek Peta kelas.

Lihat Atribut Peta.

Map.lookup(peta, str)
Lakukan carian dalam peta.

Argumen

· peta (peta_kelas) -- Adakah objek Peta kelas.

· str (rentetan) -- Adakah rentetan digunakan sebagai kunci.

Pulangan
rentetan yang mengandungi keputusan atau nol jika tiada padanan.

Map.slookup(peta, str)
Lakukan carian dalam peta.

Argumen

· peta (peta_kelas) -- Adakah objek Peta kelas.

· str (rentetan) -- Adakah rentetan digunakan sebagai kunci.

Pulangan
rentetan yang mengandungi hasil atau rentetan kosong jika tiada padanan.

kelas AppletHTTP()
Kelas ini digunakan dengan applet yang memerlukan mod 'http'. Applet http boleh
berdaftar dengan core.register_service() fungsi. Mereka digunakan untuk
memproses permintaan http seperti pelayan di belakang HAProxy.

Ini ialah kod contoh hello world:

core.register_service("hello-world", "http", function(applet)
respons tempatan = "Hello World !"
applet:set_status(200)
applet:add_header("content-length", string.len(respons))
applet:add_header("jenis kandungan", "teks/plain")
applet:start_response()
applet:send(respons)
akhir)

AppletHTTP.c

Pulangan
A Converters kelas

Atribut ini mengandungi objek kelas Converters.

AppletHTTP.sc

Pulangan
A Converters kelas

Atribut ini mengandungi objek kelas Converters. Fungsi objek ini
kembali sentiasa rentetan.

AppletHTTP.f

Pulangan
A Pengambilan kelas

Atribut ini mengandungi objek kelas Fetches. Ambil perhatian bahawa pelaksanaan applet
tempat tidak boleh mengakses transaksi HTTP teras HAProxy yang sah, jadi beberapa sampel
kesan yang berkaitan dengan nilai bergantung HTTP (hdr, laluan, ...) tidak tersedia.

AppletHTTP.sf

Pulangan
A Pengambilan kelas

Atribut ini mengandungi objek kelas Fetches. Fungsi objek ini
kembali sentiasa rentetan. Ambil perhatian bahawa tempat pelaksanaan applet tidak boleh mengakses a
transaksi HTTP teras HAProxy yang sah, jadi beberapa sampel berkaitan dengan HTTP
nilai bergantung (hdr, laluan, ...) tidak tersedia.

AppletHTTP.method

Pulangan
rentetan

Kaedah atribut mengembalikan rentetan yang mengandungi kaedah HTTP.

AppletHTTP.version

Pulangan
rentetan

Versi atribut, mengembalikan rentetan yang mengandungi versi permintaan HTTP.

AppletHTTP.path

Pulangan
rentetan

Laluan atribut mengembalikan rentetan yang mengandungi laluan permintaan HTTP.

AppletHTTP.qs

Pulangan
rentetan

Atribut qs mengembalikan rentetan yang mengandungi rentetan pertanyaan permintaan HTTP.

AppletHTTP.length

Pulangan
integer

Panjang atribut mengembalikan integer yang mengandungi panjang badan HTTP.

AppletHTTP.headers

Pulangan
pelbagai

Pengepala atribut mengembalikan tatasusunan yang mengandungi pengepala HTTP. Pengepala
nama sentiasa dalam huruf kecil. Oleh kerana nama pengepala boleh ditemui lebih daripada
sekali dalam setiap permintaan, nilai diindeks dengan 0 sebagai nilai indeks pertama. Tatasusunan
mempunyai borang ini:

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

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

AppletHTTP.headers
Mengandungi tatasusunan yang mengandungi semua pengepala permintaan.

AppletHTTP.set_status(applet, kod)
Fungsi ini menetapkan kod status HTTP untuk respons. Kod yang dibenarkan adalah daripada
100 599.

Argumen

· applet (class_AppletHTTP) -- An AppletHTTP kelas

· kod (integer) -- kod status dikembalikan kepada klien.

AppletHTTP.add_header(applet, nama, nilai)
Fungsi ini menambah pengepala dalam respons. Pengepala pendua tidak diruntuhkan.
Tajuk khas panjang kandungan digunakan untuk menentukan panjang tindak balas. Jika ia
tidak wujud, a pengekodan pemindahan: tergelincir ditetapkan, dan semua penulisan daripada funcion
AppletHTTP:hantar() menjadi seketul.

Argumen

· applet (class_AppletHTTP) -- An AppletHTTP kelas

· nama (rentetan) -- nama pengepala

· nilai (rentetan) -- nilai pengepala

AppletHTTP.start_response(applet)
Fungsi ini menunjukkan kepada enjin HTTP bahawa ia boleh memproses dan menghantar
tajuk respons. Selepas ini dipanggil, kami tidak boleh menambah pengepala pada respons; Kami
tidak boleh menggunakan AppletHTTP:hantar() berfungsi jika AppletHTTP:start_response() tidak
dipanggil.

Argumen

· applet (class_AppletHTTP) -- An AppletHTTP kelas

AppletHTTP.getline(applet)
Fungsi ini mengembalikan rentetan yang mengandungi satu baris daripada badan http. Jika data
dikembalikan tidak mengandungi '\n' akhir yang diandaikan daripada data terakhir yang tersedia
sebelum tamat aliran.

Argumen

· applet (class_AppletHTTP) -- An AppletHTTP kelas

Pulangan
seutas tali. Rentetan boleh kosong jika kita sampai ke penghujung aliran.

AppletHTTP.receive(applet[, saiz])
Membaca data daripada badan HTTP, mengikut bacaan yang ditentukan saiz. Jika saiz is
hilang, fungsi cuba membaca semua kandungan strim sehingga tamat. Jika
yang saiz lebih besar daripada badan http, ia mengembalikan jumlah data yang tersedia.

Argumen

· applet (class_AppletHTTP) -- An AppletHTTP kelas

· saiz (integer) -- saiz bacaan yang diperlukan.

Pulangan
sentiasa kembalikan rentetan, rentetan itu boleh kosong apabila sambungan ditutup.

AppletHTTP.send(applet, mesej)
Hantar mesej msg pada badan permintaan http.

Argumen

· applet (class_AppletHTTP) -- An AppletHTTP kelas

· msg (rentetan) -- mesej untuk dihantar.

kelas AppletTCP()
Kelas ini digunakan dengan applet yang memerlukan mod 'tcp'. Applet tcp boleh
berdaftar dengan core.register_service() fungsi. Mereka digunakan untuk pemprosesan
aliran tcp seperti pelayan di belakang HAProxy.

AppletTCP.c

Pulangan
A Converters kelas

Atribut ini mengandungi objek kelas Converters.

AppletTCP.sc

Pulangan
A Converters kelas

Atribut ini mengandungi objek kelas Converters. Fungsi objek ini
kembali sentiasa rentetan.

AppletTCP.f

Pulangan
A Pengambilan kelas

Atribut ini mengandungi objek kelas Fetches.

AppletTCP.sf

Pulangan
A Pengambilan kelas

Atribut ini mengandungi objek kelas Fetches.

AppletTCP.getline(applet)
Fungsi ini mengembalikan rentetan yang mengandungi satu baris daripada aliran. Jika data
dikembalikan tidak mengandungi '\n' akhir yang diandaikan daripada data terakhir yang tersedia
sebelum tamat aliran.

Argumen

· applet (class_AppletTCP) -- An AppletTCP kelas

Pulangan
seutas tali. Rentetan boleh kosong jika kita sampai ke penghujung aliran.

AppletTCP.receive(applet[, saiz])
Membaca data daripada aliran TCP, mengikut bacaan yang ditentukan saiz. Jika saiz
tiada, fungsi cuba membaca semua kandungan strim sehingga tamat.

Argumen

· applet (class_AppletTCP) -- An AppletTCP kelas

· saiz (integer) -- saiz bacaan yang diperlukan.

Pulangan
sentiasa kembalikan rentetan, rentetan itu boleh kosong apabila sambungan ditutup.

AppletTCP.send(appletmsg)
Hantar mesej pada strim.

Argumen

· applet (class_AppletTCP) -- An AppletTCP kelas

· msg (rentetan) -- mesej untuk dihantar.

Banyak perpustakaan lua yang berguna boleh didapati di sini:

· https://lua-toolbox.com/

Redis akses:

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

Ini adalah contoh tentang penggunaan perpustakaan Redis dengan HAProxy. Perhatikan bahawa setiap panggilan
mana-mana fungsi perpustakaan ini boleh menimbulkan ralat jika sambungan soket gagal.

-- muatkan perpustakaan redis
local redis = memerlukan("redis");

fungsi melakukan_sesuatu (txn)

-- cipta dan sambungkan soket tcp baharu
tcp tempatan = core.tcp();
tcp:tetapkan masa tamat(1);
tcp:connect("127.0.0.1", 6379);

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

akhir

OpenSSL:

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

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

Gunakan haproxy-lua dalam talian menggunakan perkhidmatan onworks.net


Pelayan & Stesen Kerja Percuma

Muat turun apl Windows & Linux

  • 1
    Zabbix
    Zabbix
    Zabbix adalah terbuka kelas perusahaan
    penyelesaian pemantauan teragih sumber
    direka untuk memantau dan menjejaki
    prestasi dan ketersediaan rangkaian
    pelayan, peranti...
    Muat turun Zabbix
  • 2
    KDiff3
    KDiff3
    Repositori ini tidak lagi diselenggara
    dan disimpan untuk tujuan arkib. Lihat
    https://invent.kde.org/sdk/kdiff3 for
    kod terbaru dan
    https://download.kde.o...
    Muat turun KDiff3
  • 3
    USBLoaderGX
    USBLoaderGX
    USBLoaderGX ialah GUI untuk
    Pemuat USB Waninkoko, berdasarkan
    libwiigui. Ia membenarkan penyenaraian dan
    melancarkan permainan Wii, permainan Gamecube dan
    homebrew di Wii dan WiiU...
    Muat turun USBLoaderGX
  • 4
    Firebird
    Firebird
    Firebird RDBMS menawarkan ciri ANSI SQL
    & berjalan pada Linux, Windows &
    beberapa platform Unix. ciri-ciri
    konkurensi & prestasi cemerlang
    & kuasa...
    Muat turun Firebird
  • 5
    KompoZer
    KompoZer
    KompoZer ialah editor HTML wysiwyg menggunakan
    pangkalan kod Mozilla Composer. Sebagai
    Pembangunan Nvu telah dihentikan
    pada tahun 2005, KompoZer membetulkan banyak pepijat dan
    menambah f...
    Muat turun KompoZer
  • 6
    Muat turun Manga Percuma
    Muat turun Manga Percuma
    The Free Manga Downloader (FMD) ialah sebuah
    aplikasi sumber terbuka yang ditulis dalam
    Objek-Pascal untuk mengurus dan
    memuat turun manga dari pelbagai laman web.
    Ini adalah cermin...
    Muat turun Manga Downloader Percuma
  • Lebih »

Arahan Linux

Ad