EnglezăFrancezăSpaniolă

Ad


Favicon OnWorks

haproxy-lua - Online în cloud

Rulați haproxy-lua în furnizorul de găzduire gratuit OnWorks prin Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

Aceasta este comanda haproxy-lua care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

PROGRAM:

NUME


haproxy-lua - haproxy-lua Documentație

HAPROXIE MOON ALERGARE CONTEXTE


Codul Lua executat în HAProxy poate fi procesat în 2 moduri principale. Primul este
inițializare mod, iar al doilea este Runtime mod.

· În inițializare mod, putem efectua soluții DNS, dar nu putem efectua I/O socket.
În acest mod de inițializare, HAProxy încă s-a blocat în timpul execuției Lua
programul.

· În Runtime mod, nu putem efectua soluții DNS, dar putem folosi socket-uri. The
execuția codului Lua este multiplexată cu procesarea cererilor, deci codul Lua
pare a fi rulat în blocare, dar nu este cazul.

Codul Lua este încărcat în unul sau mai multe fișiere. Aceste fișiere conțin codul și funcțiile principale.
Lua are 6 context de execuție.

1. Dosarul Lua corp context. Este executat în timpul încărcării fișierului Lua în fișierul
HAProxy [global] secţiunea cu directiva lua-încărcare. Se execută la inițializare
modul. Această secțiune este utilizată pentru configurarea legăturilor Lua în HAProxy.

2. Lua înăuntru context. Este o funcție Lua executată imediat după HAProxy
analiza configurației. Execuția este în modul de inițializare. În acest context,
Mediul HAProxy este deja inițializat. Este util să verificați configurația sau
inițializarea conexiunilor de socket sau a sarcinilor. Aceste funcții sunt declarate în organism
context cu funcția Lua core.register_init(). Prototipul funcției este a
funcție simplă fără valoare returnată și fără parametri, ca aceasta: funcţie fcn().

3. Lua sarcină context. Este o funcție Lua executată după pornirea HAProxy
planificator și imediat după declararea sarcinii cu funcția Lua
core.register_task(). Acest context poate fi concomitent cu procesarea traficului. Este
executat în modul runtime. Prototipul funcției este o funcție simplă fără
valoare returnată și fără parametri, așa: funcţie fcn().

4. acțiune context. Este o funcție Lua executată condiționat. Aceste acțiuni sunt
înregistrat prin directivele Lua "core.register_action()„. Prototipul Lua
funcția numită este o funcție cu nu returnează nimic și care ia un obiect de
clasa TXN ca intrare. funcţie fcn(txn).

5. prelevare de probe context. Această funcție ia un obiect TXN ca argument de intrare și
returnează un șir. Aceste tipuri de funcții nu pot executa nicio funcție de blocare. ei
sunt utile pentru a agrega unele dintre extragerile originale HAProxy și pentru a returna rezultatul.
Prototipul funcției este funcţie şir fcn(txn). Aceste funcții pot fi
înregistrat cu funcția Lua core.register_fetches(). Fiecare sample-fetch declarat este
prefixat de șirul „lua.”.

NOTĂ: Este posibil ca această funcție să nu găsească datele necesare în original
HAProxy prelege eșantion, în acest caz, nu poate returna rezultatul. Acest caz nu este încă
sprijinite

6. Convertizor context. Este o funcție Lua care ia un șir ca intrare și returnează
un alt șir ca ieșire. Aceste tipuri de funcții sunt apatride, la care nu pot avea acces
orice context. Nu execută nicio funcție de blocare. Prototipul apelului este funcţie
şir fcn(șir). Această funcție poate fi înregistrată cu funcția Lua
core.register_converters(). Fiecare convertor declarat este prefixat de șirul „lua.”.

HAPROXIE MOON SALUT WORLD


Fișierul de configurare HAProxy (hello_world.conf):

global
lua-load hello_world.lua

asculta proxy
lega 127.0.0.1:10001
tcp-request inspect-delay 1s
tcp-request content use-service lua.hello_world

Fișier HAProxy Lua (hello_world.lua):

core.register_service("hello_world", "tcp", function(applet)
applet:send(„bună ziua, lume\n”)
Sfârșit)

Cum să porniți HAProxy pentru a testa această configurație:

./haproxy -f hello_world.conf

Pe alt terminal, puteți testa cu telnet:

#:~ telnet 127.0.0.1 10001
Bună ziua lume

clasă miez()
Clasa „core” conține toate funcțiile de bază HAProxy. Aceste funcții sunt utile
pentru controlul fluxului de execuție, înregistrarea hook-urilor, manipularea hărților globale
sau ACL,...

Clasa „core” este în principiu furnizată cu HAProxy. Nu necesita linia este obligată să
folosește aceste funcții.

Clasa „core” este statică, nu este posibil să se creeze un nou obiect de acest tip.

miez.emerg

Returnări
întreg

Acest atribut este un număr întreg, conține valoarea nivelului de jurnal „emergency”
(0).

miez.alerta

Returnări
întreg

Acest atribut este un număr întreg, conține valoarea nivelului de jurnal „alert” (1).

miez.crit

Returnări
întreg

Acest atribut este un număr întreg, conține valoarea loglevelului „critic” (2).

miez.err

Returnări
întreg

Acest atribut este un număr întreg, conține valoarea nivelului de jurnal „eroare” (3).

miez.avertisment

Returnări
întreg

Acest atribut este un număr întreg, conține valoarea nivelului de jurnal „warning” (4).

miez.aviz

Returnări
întreg

Acest atribut este un număr întreg, conține valoarea „notice” de la nivel de jurnal (5).

core.info

Returnări
întreg

Acest atribut este un număr întreg, conține valoarea loglevelului „info” (6).

core.debug

Returnări
întreg

Acest atribut este un număr întreg, conține valoarea jurnalului „debug” (7).

core.log(loglevel, mesaj)
context: body, init, task, action, sample-fetch, convertor

Această funcție trimite un jurnal. Jurnalul este trimis, în conformitate cu HAProxy
fișier de configurare, pe serverul syslog implicit dacă este configurat și pe
stderr dacă este permis.

Argumente

· nivel de jurnal (întreg) -- Este nivelul jurnalului asociat cu mesajul. Este un
număr între 0 și 7.

· msg (şir) -- Conținutul jurnalului.

Vedea core.emerg, core.alert, core.crit, core.err, core.warning, core.notice,
core.info, core.debug (definiții la nivel de jurnal)

Vedea cod.Depanare

Vedea miez.Info

Vedea miez.Avertisment

Vedea miez.Alerta

miez.Depanare(mesaj)
context: body, init, task, action, sample-fetch, convertor

Argumente

· msg (şir) -- Conținutul jurnalului.

Vedea log

Face aceeași treabă decât:

funcţie Debug(mesaj)
core.log(core.debug, msg)
capăt

miez.Info(mesaj)
context: body, init, task, action, sample-fetch, convertor

Argumente

· msg (şir) -- Conținutul jurnalului.

Vedea log

funcţie Informație(mesaj)
core.log(core.info, msg)
capăt

miez.Avertisment(mesaj)
context: body, init, task, action, sample-fetch, convertor

Argumente

· msg (şir) -- Conținutul jurnalului.

Vedea log

funcţie avertizare(mesaj)
core.log(core.warning, msg)
capăt

miez.Alerta(mesaj)
context: body, init, task, action, sample-fetch, convertor

Argumente

· msg (şir) -- Conținutul jurnalului.

Vedea log

funcţie Alerta(mesaj)
core.log(core.alert, msg)
capăt

core.add_acl(nume fișier, cheie)
context: init, task, action, sample-fetch, convertor

Adăugați ACL cheie în lista de ACL-uri la care face referire fișierul nume de fișier.

Argumente

· nume de fișier (şir) -- numele fișierului care face referire la intrările ACL.

· cheie (şir) -- cheia care va fi adăugată.

core.del_acl(nume fișier, cheie)
context: init, task, action, sample-fetch, convertor

Ștergeți intrarea ACL la care face referire cheie cheie în lista de ACL-uri la care face referire
nume de fișier.

Argumente

· nume de fișier (şir) -- numele fișierului care face referire la intrările ACL.

· cheie (şir) -- cheia care va fi ștearsă.

core.del_map(nume fișier, cheie)
context: init, task, action, sample-fetch, convertor

Ștergeți intrarea hărții indexată cu cheia specificată din lista hărților la care se face referire
după numele lui de fișier.

Argumente

· nume de fișier (şir) -- numele fișierului care face referire la intrările hărții.

· cheie (şir) -- cheia care va fi ștearsă.

miez.msleep(milisecunde)
context: body, init, task, action

core.msleep() oprește execuția Lua între milisecunde specificate.

Argumente

· milisecunde (întreg) -- milisecundele necesare.

core.register_action(nume, acțiuni, func)
context: corp

Înregistrați o funcție Lua executată ca acțiune. Toate acțiunile înregistrate pot fi utilizate
în HAProxy cu prefixul „lua.”. O acțiune primește o clasă de obiecte TXN ca intrare.

Argumente

· nume (şir) -- este numele convertorului.

· acțiuni (tabel) -- este un tabel de șir care descrie acțiunile HAProxy care
vrei să te înregistrezi la. Acțiunile așteptate sunt „tcp-req”, „tcp-res”,
„http-req” sau „http-res”.

· FUNC (funcţie) -- este funcția Lua numită să funcționeze ca convertor.

Prototipul funcției Lua folosit ca argument este:

functie (txn)

·

txn (TXN clasă): acest is a TXN obiect utilizat pentru manipulant il
cererea curentă sau fluxul TCP.

Iată un exemplu de înregistrare a acțiunii. acțiunea doar trimite un „Hello world” în
busteni.

core.register_action("hello-world", { "tcp-req", "http-req" }, function(txn)
txn:Info("Bună lume")
Sfârșit)
Acest exemplu de cod este utilizat în configurația HAproxy astfel:

frontend tcp_frt
modul tcp
tcp-request content lua.hello-world

frontend http_frt
modul http
http-request lua.hello-world

core.register_converters(nume, func)
context: corp

Înregistrați o funcție Lua executată ca convertor. Toti convertorii inregistrati pot fi
folosit în HAProxy cu prefixul „lua.”. Un convertor primește un șir ca intrare și
returnează un șir ca ieșire. Funcția înregistrată poate lua până la 9 valori ca
parametru. Toate valorile sunt șiruri.

Argumente

· nume (şir) -- este numele convertorului.

· FUNC (funcţie) -- este funcția Lua numită să funcționeze ca convertor.

Prototipul funcției Lua folosit ca argument este:

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

· str (şir): aceasta este valoarea de intrare convertită automat în șir.

· p1 .. p5 (şir): aceasta este o listă de argumente șir declarate în haroxy
Fișier de configurare. Numărul de argumente nu depășește 5. Ordinea și
natura acestora este aleasă în mod convențional de către dezvoltator.

core.register_fetches(nume, func)
context: corp

Înregistrați o funcție Lua executată ca preluare de eșantion. Toate probele înregistrate sunt preluate
poate fi folosit în HAProxy cu prefixul „lua.”. Un eșantion Lua returnează un șir
ca ieșire. Funcția înregistrată poate lua până la 9 valori ca parametru. Toate
valoarea sunt șiruri de caractere.

Argumente

· nume (şir) -- este numele convertorului.

· FUNC (funcţie) -- este funcția Lua numită să funcționeze ca preluare de eșantion.

Prototipul funcției Lua folosit ca argument este:

funcție șir (txn, [p1 [, p2 [, ... [, p5]]]])

· txn (TXN clasă): acesta este obiectul txn asociat cu cererea curentă.

· p1 .. p5 (şir): aceasta este o listă de argumente șir declarate în haroxy
Fișier de configurare. Numărul de argumente nu depășește 5. Ordinea și
natura acestora este aleasă în mod convențional de către dezvoltator.

· Returnări: Un șir care conține unele date, sau nul dacă valoarea nu poate fi returnată acum.

cod de exemplu lua:

core.register_fetches(„bună ziua”, funcția(txn)
întoarce "bună ziua"
Sfârșit)
Exemplu de configurare HAProxy:

exemplu de frontend
Locație de redirecționare http-request /%[lua.hello]

core.register_service(nume, mod, func)
context: corp

Înregistrați o funcție Lua executată ca serviciu. Toate serviciile înregistrate pot fi
folosit în HAProxy cu prefixul „lua.”. Un serviciu primește o clasă de obiect ca intrare
conform modului cerut.

Argumente

· nume (şir) -- este numele convertorului.

· mod (şir) -- este șirul care descrie modul necesar. Numai „tcp” sau
„http” sunt permise.

· FUNC (funcţie) -- este funcția Lua numită să funcționeze ca convertor.

Prototipul funcției Lua folosit ca argument este:

funcție (applet)

· applet applet va fi a AppletTCP clasă sau un AppletHTTP clasă. Depinde de tip
a appletului înregistrat. Un applet înregistrat cu valoarea „http” pentru mod
parametrul va obține a AppletHTTP clasă. Dacă mod valoarea este „tcp”, applet-ul va
primește un AppletTCP clasă.

de avertizare: Appleturile de tip „http” nu pot fi apelate din „tcp-' seturi de reguli. Numai il 'http-'
seturile de reguli sunt autorizate, aceasta înseamnă că nu este posibil să apelați un applet HTTP dintr-un
proxy în modul tcp. Appleturile de tip „tcp” pot fi apelate de oriunde.

Iată un exemplu de înregistrare a serviciului. serviciul trimite doar un „Hello world” ca un
răspuns http.

core.register_service("hello-world", "http", function(applet)
răspuns local = „Bună lume!”
applet:set_status(200)
applet:add_header(„lungimea conținutului”, string.len(răspuns))
applet:add_header(„tip de conținut”, „text/plat”)
applet:start_response()
applet:trimite(răspuns)
Sfârșit)
Acest exemplu de cod este utilizat în configurația HAproxy astfel:

exemplu de frontend
http-request use-service lua.hello-world

core.register_init(func)
context: corp

Înregistrați o funcție executată după parsarea configurației. Acest lucru este util pentru
verificați orice parametri.

Argumente

· FUNC (funcţie) -- este funcția Lua numită să funcționeze ca inițializator.

Prototipul funcției Lua folosit ca argument este:

funcţie()
Nu necesită intrare și nu este așteptată nicio ieșire.

core.register_task(func)
context: body, init, task, action, sample-fetch, convertor

Înregistrați-vă și începeți o activitate independentă. Sarcina este pornită atunci când principalul HAProxy
pornește programatorul. De exemplu, acest tip de sarcini pot fi executate pentru a efectua complexe
controale de sănătate.

Argumente

· FUNC (funcţie) -- este funcția Lua numită să funcționeze ca inițializator.

Prototipul funcției Lua folosit ca argument este:

funcţie()
Nu necesită intrare și nu este așteptată nicio ieșire.

core.set_nice(frumos)
context: sarcină, acțiune, prelevare de eșantion, convertor

Schimbați aspectul sarcinii curente sau sesiunii curente.

Argumente

· frumos (întreg) -- valoarea frumoasă, trebuie să fie între -1024 și 1024.

core.set_map(nume fișier, cheie, valoare)
context: init, task, action, sample-fetch, convertor

setați valoarea valoare asociat cheii cheie în harta la care face referire nume de fișier.

Argumente

· nume de fișier (şir) -- referința hărții

· cheie (şir) -- cheia pentru setare sau înlocuire

· valoare (şir) -- valoarea asociată

miez.somn (int secunde)
context: body, init, task, action

core.sleep() funcțiile opresc execuția Lua între secunde specificate.

Argumente

· secunde (întreg) -- secundele necesare.

core.tcp()
context: init, sarcină, acțiune

Această funcție returnează un nou obiect al lui a priză clasă.

Returnări
A Priză clasă obiect.

core.done(date)
context: body, init, task, action, sample-fetch, convertor

Argumente

· de date (Orice) -- Returnează câteva date pentru apelant. Este util cu
sample-fetches și sample-converter.

Oprește imediat execuția curentă Lua și revine la apelant care poate fi
un eșantion de preluare, un convertor sau o acțiune și returnează valoarea specificată (ignorat
pentru acțiuni). Este folosit atunci când procesul LUA își termină munca și vrea să dea
înapoi controlul la HAProxy fără a executa codul rămas. Poate fi văzut ca
un „întoarcere” pe mai multe niveluri.

core.yield()
context: sarcină, acțiune, prelevare de eșantion, convertor

Dați înapoi mâna la programatorul HAProxy. Este utilizat atunci când procesează LUA
consumă mult timp de procesare.

clasă Preluări()
Această clasă conține o mulțime de preluări interne de mostre HAProxy. Vedeți HAProxy
documentația „configuration.txt” pentru mai multe informații despre utilizarea ei. sunt
capitolele 7.3.2 până la 7.3.6.

de avertizare unele exemple de preluare nu sunt disponibile într-un anumit context. Aceste limitări
sunt specificate în această documentație atunci când sunt utile.

Vedea TXN.f

Vedea TXN.sf

Preluările sunt utile pentru:

· obțineți ora sistemului,

· obține variabila de mediu,

· obțineți numere aleatorii,

· starea backend cunoscută, cum ar fi numărul de utilizatori în coadă sau numărul de
conexiuni stabilite,

· informații despre client, cum ar fi sursa sau destinația IP,

· se ocupă de mesele cu stick,

· Informații SSL stabilite,

· Informații HTTP, cum ar fi antete sau metodă.

acțiune funcție (txn)
-- Obțineți IP-ul sursă
clientip local = txn.f:src()
capăt

clasă Convertoare()
Această clasă conține o mulțime de convertoare interne de mostre HAProxy. Vedeți HAProxy
documentația „configuration.txt” pentru mai multe informații despre utilizarea ei. Este
Capitolul 7.3.1.

Vedea TXN.c

Vedea TXN.sc

Converters oferă transformare completă. Sunt utile pentru:

· conversia intrării în base64,

· aplicarea hash pe șirul de intrare (djb2, crc32, sdbm, wt6),

· format data,

· json escape,

· extragerea limbii preferate comparând două liste,

· treceți la caracterele inferioare sau superioare,

· se ocupă cu mesele cu stick.

clasă Canal()
HAProxy folosește două buffere pentru procesarea cererilor. Primul este folosit
cu datele de solicitare (de la client la server) iar al doilea este folosit pentru
datele de răspuns (de la server la client).

Fiecare buffer conține două tipuri de date. Primul tip este datele primite în așteptare
pentru o prelucrare. A doua parte este datele de ieșire deja procesate. De obicei,
datele de intrare sunt procesate, după ce sunt etichetate ca date de ieșire și, în final, acestea
este trimis. Următoarele funcții oferă instrumente pentru manipularea acestor date într-un
tampon.

Următoarea diagramă arată unde sunt aplicate funcția de clasă de canal.

avertizare: Nu este posibil să citiți din răspunsul în acțiunea de solicitare și este
nu este posibil de citit pentru canalul de solicitare în acțiunea de răspuns.
[Image]

Channel.dup(canal)
Această funcție returnează un șir care conține întregul buffer. Datele nu sunt
îndepărtați din buffer și pot fi reprocesate ulterior.

Dacă tamponul nu poate primi mai multe date, este returnată o valoare „nulă”.

Argumente

· canal (canal_clasă) -- Canalul manipulat.

Returnări
un șir care conține toate datele disponibile sau zero.

Channel.get(canal)
Această funcție returnează un șir care conține întregul buffer. Datele sunt consumate
din tampon.

Dacă tamponul nu poate primi mai multe date, este returnată o valoare „nulă”.

Argumente

· canal (canal_clasă) -- Canalul manipulat.

Returnări
un șir care conține toate datele disponibile sau zero.

Channel.getline(canal)
Această funcție returnează un șir care conține prima linie a tamponului. Datele
se consumă. Dacă datele returnate nu conțin un „n” final, este presupus decât sa
ultimele date disponibile din buffer.

Dacă tamponul nu poate primi mai multe date, este returnată o valoare „nulă”.

Argumente

· canal (canal_clasă) -- Canalul manipulat.

Returnări
un șir care conține linia disponibilă sau nil.

Channel.set(canal, şir)
Această funcție înlocuiește conținutul buffer-ului cu șirul. Funcția revine
lungimea copiată, în caz contrar, returnează -1.

Setul de date cu această funcție nu este trimis. Ei așteaptă sfârșitul HAProxy
procesare, astfel încât memoria tampon poate fi plină.

Argumente

· canal (canal_clasă) -- Canalul manipulat.

· şir (şir) -- Datele care vor fi trimise.

Returnări
un număr întreg care conține cantitatea de octeți copiați sau -1.

Channel.append(canal, şir)
Această funcție adaugă argumentul șir la conținutul bufferului. Functia
returnează lungimea copiată, în caz contrar, returnează -1.

Setul de date cu această funcție nu este trimis. Ei așteaptă sfârșitul HAProxy
procesare, astfel încât memoria tampon poate fi plină.

Argumente

· canal (canal_clasă) -- Canalul manipulat.

· şir (şir) -- Datele care vor fi trimise.

Returnări
un număr întreg care conține cantitatea de octeți copiați sau -1.

Channel.send(canal, şir)
Această funcție a necesitat trimiterea imediată a datelor. Cu excepția cazului în care conexiunea este
închis, tamponul este curățat în mod regulat și tot șirul poate fi trimis.

Argumente

· canal (canal_clasă) -- Canalul manipulat.

· şir (şir) -- Datele care vor fi trimise.

Returnări
un număr întreg care conține cantitatea de octeți copiați sau -1.

Channel.get_in_length(canal)
Această funcție returnează lungimea părții de intrare a tamponului.

Argumente

· canal (canal_clasă) -- Canalul manipulat.

Returnări
un număr întreg care conține cantitatea de octeți disponibili.

Channel.get_out_length(canal)
Această funcție returnează lungimea părții de ieșire a tamponului.

Argumente

· canal (canal_clasă) -- Canalul manipulat.

Returnări
un număr întreg care conține cantitatea de octeți disponibili.

Channel.forward(canal, int)
Această funcție transferă octeți din partea de intrare a tamponului în partea de ieșire.

Argumente

· canal (canal_clasă) -- Canalul manipulat.

· int (întreg) -- Cantitatea de date care vor fi transmise.

clasă HTTP()
Această clasă conține toate funcțiile de manipulare HTTP.

HTTP.req_get_headers(http)
Returnează o matrice care conține toate anteturile cererii.

Argumente

· http (clasa_http) -- Obiectul http asociat.

Returnări
matrice de anteturi.

Vedea HTTP.res_get_headers()

Aceasta este forma matricei returnate:

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

hdr local = HTTP:req_get_headers()
hdr["gazdă"][0] = "www.test.com"
hdr["accept"][0] = "audio/de bază q=1"
hdr["accept"][1] = "audio/*, q=0.2"
hdr["accept"][2] = "*/*, q=0.1"

HTTP.res_get_headers(http)
Returnează o matrice care conține toate anteturile răspunsului.

Argumente

· http (clasa_http) -- Obiectul http asociat.

Returnări
matrice de anteturi.

Vedea HTTP.req_get_headers()

Aceasta este forma matricei returnate:

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

hdr local = HTTP:req_get_headers()
hdr["gazdă"][0] = "www.test.com"
hdr["accept"][0] = "audio/de bază q=1"
hdr["accept"][1] = "audio/*, q=0.2"
hdr["accept"][2] = "*.*, q=0.1"

HTTP.req_add_header(http, Nume, valoare)
Adaugă un câmp de antet HTTP în cerere al cărui nume este specificat în „nume” și
a cărui valoare este definită în „valoare”.

Argumente

· http (clasa_http) -- Obiectul http asociat.

· nume (şir) -- Numele antetului.

· valoare (şir) -- Valoarea antetului.

Vedea HTTP.res_add_header()

HTTP.res_add_header(http, Nume, valoare)
adaugă un câmp de antet HTTP în răspunsul al cărui nume este specificat în „nume” și
a cărui valoare este definită în „valoare”.

Argumente

· http (clasa_http) -- Obiectul http asociat.

· nume (şir) -- Numele antetului.

· valoare (şir) -- Valoarea antetului.

Vedea HTTP.req_add_header()

HTTP.req_del_header(http, Nume)
Elimină toate câmpurile de antet HTTP din cererea al cărei nume este specificat în „nume”.

Argumente

· http (clasa_http) -- Obiectul http asociat.

· nume (şir) -- Numele antetului.

Vedea HTTP.res_del_header()

HTTP.res_del_header(http, Nume)
Elimină toate câmpurile de antet HTTP din răspunsul al căror nume este specificat în „nume”.

Argumente

· http (clasa_http) -- Obiectul http asociat.

· nume (şir) -- Numele antetului.

Vedea HTTP.req_del_header()

HTTP.req_set_header(http, Nume, valoare)
Această variabilă înlocuiește toate aparițiile tuturor antetului „nume”, cu doar unul care conține
valoarea".

Argumente

· http (clasa_http) -- Obiectul http asociat.

· nume (şir) -- Numele antetului.

· valoare (şir) -- Valoarea antetului.

Vedea HTTP.res_set_header()

Această funcție face aceeași activitate ca și codul următor:

funcția fcn(txn)
TXN.http:req_del_header(„header”)
TXN.http:req_add_header(„antet”, „valoare”)
capăt

HTTP.res_set_header(http, Nume, valoare)
Această variabilă înlocuiește toate aparițiile tuturor antetului „nume”, cu doar unul care conține
valoarea".

Argumente

· http (clasa_http) -- Obiectul http asociat.

· nume (şir) -- Numele antetului.

· valoare (şir) -- Valoarea antetului.

Vedea HTTP.req_rep_header()

HTTP.req_rep_header(http, Nume, regex, a inlocui)
Se potrivește cu expresia regulată din toate aparițiile câmpului antet „nume”.
la „regex” și le înlocuiește cu argumentul „replace”. Valoarea de înlocuire
poate conține referințe înapoi precum 1, 2, ... Această funcție funcționează cu cererea.

Argumente

· http (clasa_http) -- Obiectul http asociat.

· nume (şir) -- Numele antetului.

· regex (şir) -- Se potrivește expresia regulată.

· înlocui (şir) -- Valoarea de înlocuire.

Vedea HTTP.res_rep_header()

HTTP.res_rep_header(http, Nume, regex, şir)
Se potrivește cu expresia regulată din toate aparițiile câmpului antet „nume”.
la „regex” și le înlocuiește cu argumentul „replace”. Valoarea de înlocuire
poate conține referințe înapoi precum 1, 2, ... Această funcție funcționează cu cererea.

Argumente

· http (clasa_http) -- Obiectul http asociat.

· nume (şir) -- Numele antetului.

· regex (şir) -- Se potrivește expresia regulată.

· înlocui (şir) -- Valoarea de înlocuire.

Vedea HTTP.req_replace_header()

HTTP.req_replace_value(http, Nume, regex, a inlocui)
Funcționează ca „HTTP.req_replace_header()”, cu excepția faptului că se potrivește cu expresia regex
fiecare valoare delimitată prin virgulă a câmpului antet „nume” în loc de întreg
antet.

Argumente

· http (clasa_http) -- Obiectul http asociat.

· nume (şir) -- Numele antetului.

· regex (şir) -- Se potrivește expresia regulată.

· înlocui (şir) -- Valoarea de înlocuire.

Vedea HTTP.req_replace_header()

Vedea HTTP.res_replace_value()

HTTP.res_replace_value(http, Nume, regex, a inlocui)
Funcționează ca „HTTP.res_replace_header()”, cu excepția faptului că se potrivește cu expresia regex
fiecare valoare delimitată prin virgulă a câmpului antet „nume” în loc de întreg
antet.

Argumente

· http (clasa_http) -- Obiectul http asociat.

· nume (şir) -- Numele antetului.

· regex (şir) -- Se potrivește expresia regulată.

· înlocui (şir) -- Valoarea de înlocuire.

Vedea HTTP.res_replace_header()

Vedea HTTP.req_replace_value()

HTTP.req_set_method(http, metodă)
Rescrie metoda de solicitare cu parametrul „metoda”.

Argumente

· http (clasa_http) -- Obiectul http asociat.

· metodă (şir) -- Noua metodă.

HTTP.req_set_path(http, cale)
Rescrie calea cererii cu parametrul „cale”.

Argumente

· http (clasa_http) -- Obiectul http asociat.

· cale (şir) -- Noua cale.

HTTP.req_set_query(http, interogare)
Rescrie șirul de interogare al cererii care apare după primul semn de întrebare
("?") cu parametrul "interogare".

Argumente

· http (clasa_http) -- Obiectul http asociat.

· întrebare (şir) -- Noua interogare.

HTTP.req_set_uri(http, uri)
Rescrie URI-ul cererii cu parametrul „uri”.

Argumente

· http (clasa_http) -- Obiectul http asociat.

· uri (şir) -- Noul uri.

HTTP.res_set_status(http, stare)
Rescrie codul de stare a răspunsului cu parametrul „cod”. Rețineți că motivul
este adaptat automat la noul cod.

Argumente

· http (clasa_http) -- Obiectul http asociat.

· Starea (întreg) -- Noul cod de stare a răspunsului.

clasă TXN()
Clasa txn conține toate funcțiile referitoare la tranzacția http sau tcp
(Rețineți că un flux tcp este același cu o tranzacție tcp, dar o tranzacție HTTP
nu este același lucru cu un flux tcp).

Utilizarea acestei clase permite preluarea datelor din cereri, modificarea acestora și
transmite-l.

Toate funcțiile oferite de această clasă sunt disponibile în context
prelegeri de mostre și acțiuni.

TXN.c

Returnări
An convertoare clasă.

Acest atribut conține un obiect de clasă Converters.

TXN.sc

Returnări
An convertoare clasă.

Acest atribut conține un obiect de clasă Converters. Funcțiile acestui obiect
returnează întotdeauna un șir.

TXN.f

Returnări
An Preluări clasă.

Acest atribut conține un obiect de clasă Fetches.

TXN.sf

Returnări
An Preluări clasă.

Acest atribut conține un obiect de clasă Fetches. Funcțiile acestui obiect
returnează întotdeauna un șir.

TXN.req

Returnări
An Canal clasă.

Acest atribut conține un obiect de clasă de canal pentru tamponul de solicitare.

TXN.res

Returnări
An Canal clasă.

Acest atribut conține un obiect de clasă de canal pentru tamponul de răspuns.

TXN.http

Returnări
An HTTP clasă.

Acest atribut conține un obiect de clasă HTTP. Este disponibil doar dacă proxy-ul are
„modul http” activat.

TXN.log(TXN, nivel de jurnal, mesaj)
Această funcție trimite un jurnal. Jurnalul este trimis, în conformitate cu HAProxy
fișier de configurare, pe serverul syslog implicit dacă este configurat și pe
stderr dacă este permis.

Argumente

· txn (class_txn) -- Obiectul clasei txn care conține datele.

· nivel de jurnal (întreg) -- Este nivelul jurnalului asociat cu mesajul. Este un
număr între 0 și 7.

· msg (şir) -- Conținutul jurnalului.

Vedea core.emerg, core.alert, core.crit, core.err, core.warning, core.notice,
core.info, core.debug (definiții la nivel de jurnal)

Vedea TXN.deflog

Vedea TXN.Depanare

Vedea TXN.Info

Vedea TXN.Avertisment

Vedea TXN.Alerta

TXN.deflog(TXN, mesaj)
Trimite o linie de jurnal cu nivelul de jurnal implicit pentru proxy-ul asociat cu
tranzacţie.

Argumente

· txn (class_txn) -- Obiectul clasei txn care conține datele.

· msg (şir) -- Conținutul jurnalului.

Vedea TXN.log

TXN.Debug(txn, mesaj)

Argumente

· txn (class_txn) -- Obiectul clasei txn care conține datele.

· msg (şir) -- Conținutul jurnalului.

Vedea TXN.log

Face aceeași treabă decât:

funcția Debug(txn, msg)
TXN.log(txn, core.debug, msg)
capăt

TXN.Info(txn, mesaj)

Argumente

· txn (class_txn) -- Obiectul clasei txn care conține datele.

· msg (şir) -- Conținutul jurnalului.

Vedea TXN.log

funcția Debug(txn, msg)
TXN.log(txn, core.info, msg)
capăt

TXN.Avertisment(txn, mesaj)

Argumente

· txn (class_txn) -- Obiectul clasei txn care conține datele.

· msg (şir) -- Conținutul jurnalului.

Vedea TXN.log

funcția Debug(txn, msg)
TXN.log(txn, core.warning, msg)
capăt

TXN.Alert(txn, mesaj)

Argumente

· txn (class_txn) -- Obiectul clasei txn care conține datele.

· msg (şir) -- Conținutul jurnalului.

Vedea TXN.log

funcția Debug(txn, msg)
TXN.log(txn, core.alert, msg)
capăt

TXN.get_priv(txn)
Returnează datele Lua stocate în tranzacția curentă (cu TXN.set_priv())
funcţie. Dacă nu sunt stocate date, returnează o valoare zero.

Argumente

· txn (class_txn) -- Obiectul clasei txn care conține datele.

Returnări
datele opace stocate anterior sau nul dacă nimic nu este disponibil.

TXN.set_priv(txn, date)
Stocați orice date în tranzacția curentă HAProxy. Această acțiune o înlocuiește pe cea veche
datele stocate.

Argumente

· txn (class_txn) -- Obiectul clasei txn care conține datele.

· de date (opac) -- Datele care sunt stocate în tranzacție.

TXN.set_var(TXN, există, valoare)
Convertește un tip Lua într-un tip HAProxy și îl stochează într-o variabilă .

Argumente

· txn (class_txn) -- Obiectul clasei txn care conține datele.

· a fost (şir) -- Numele variabilei conform cu variabila HAProxy
sintaxă.

· valoare (opac) -- Datele care sunt stocate în variabilă.

TXN.get_var(TXN, var)
Returnează datele stocate în convertorul de variabile în tip Lua.

Argumente

· txn (class_txn) -- Obiectul clasei txn care conține datele.

· a fost (şir) -- Numele variabilei conform cu variabila HAProxy
sintaxă.

TXN.get_headers(txn)
Această funcție returnează o matrice de anteturi.

Argumente

· txn (class_txn) -- Obiectul clasei txn care conține datele.

Returnări
o serie de anteturi.

TXN.terminat(txn)
Această funcție încheie procesarea tranzacției și a sesiunii asociate.
Poate fi folosit atunci când este detectată o eroare critică sau pentru a opri procesarea după
unele date au fost returnate clientului (ex: o redirecționare).

Argumente

· txn (class_txn) -- Obiectul clasei txn care conține datele.

TXN.set_loglevel(txn, loglevel)
Este folosit pentru a modifica nivelul de jurnal al cererii curente. „Loglevel” trebuie să fie un
întreg între 0 și 7.

Argumente

· txn (class_txn) -- Obiectul clasei txn care conține datele.

· nivel de jurnal (întreg) -- Nivelul de jurnal necesar. Această variabilă poate fi una dintre

Vedea miez.

TXN.set_tos(txn, tos)
Este folosit pentru a seta valoarea câmpului TOS sau DSCP a pachetelor trimise către client către
valoarea transmisă în „tos” pe platformele care acceptă acest lucru.

Argumente

· txn (class_txn) -- Obiectul clasei txn care conține datele.

· tuse (întreg) -- Noul TOS os DSCP.

TXN.set_mark(txn, marcă)
Este folosit pentru a seta valoarea Netfilter MARK pe toate pachetele trimise clientului
trecut în „marca” pe platformele care îl susțin.

Argumente

· txn (class_txn) -- Obiectul clasei txn care conține datele.

· marca (întreg) -- Valoarea mărcii.

clasă Priză()
Această clasă trebuie să fie compatibilă cu clasa Lua Socket. Doar "clientul"
funcțiile sunt disponibile. Consultați documentația Lua Socket:

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

Socket.close(socket)
Închide un obiect TCP. Priza internă folosită de obiect este închisă și cea locală
adresa la care a fost legat obiectul este pusă la dispoziția altor aplicații. Nu
operațiuni ulterioare (cu excepția apelurilor ulterioare la metoda de închidere) sunt permise pe a
Priză închisă.

Argumente

· priză (priză_clasă) -- Este soclul manipulat.

Notă: Este important să închideți toate prizele folosite odată ce nu sunt necesare, deoarece, în
multe sisteme, fiecare socket folosește un descriptor de fișier, care sunt sistem limitat
resurse. Obiectele colectate în gunoi sunt închise automat înainte de distrugere,
deşi.

Socket.connect(priză, abordare[, port])
Încercările de a conecta un obiect socket la o gazdă la distanță.

În caz de eroare, metoda returnează nil urmat de un șir care descrie eroarea.
În caz de succes, metoda returnează 1.

Argumente

· priză (priză_clasă) -- Este soclul manipulat.

· adresa (şir) -- poate fi o adresă IP sau un nume de gazdă. Vezi mai jos pentru
mai multe informatii.

· port (întreg) -- trebuie să fie un număr întreg în intervalul [1..64K].

Returnări
1 sau zero.

o extensie a câmpului de adresă permite utilizarea funcției connect() pentru a vă conecta
alt flux decât TCP. Sintaxa care conține o adresă simpleipv4 sau ipv6 este
în principiu, formatul așteptat. Acest format necesită portul.

Alte formate acceptate sunt o cale de socket precum „/socket/path”, care permite conectarea
la o priză. spațiile de nume abstracte sunt acceptate cu prefixul „abns@”, și în final
un filedescriotr poate fi trecut cu prefixul „fd@”. Prefixul „ipv4@”, „ipv6@”
și „unix@” sunt de asemenea acceptate. Portul poate fi transmis în șir. Sintaxa
„127.0.0.1:1234” este valid. în acest caz, parametrul port este ignorat.

Socket.connect_ssl(socket, abordare, Port)
Același comportament ca și funcția socket:connect, dar folosește SSL.

Argumente

· priză (priză_clasă) -- Este soclul manipulat.

Returnări
1 sau zero.

Socket.getpeername(socket)
Returnează informații despre partea la distanță a unui obiect client conectat.

Returnează un șir cu adresa IP a peer-ului, urmată de numărul portului care
peer-ul folosește pentru conexiune. În caz de eroare, metoda returnează zero.

Argumente

· priză (priză_clasă) -- Este soclul manipulat.

Returnări
un șir care conține informațiile serverului.

Socket.getsockname(socket)
Returnează informațiile despre adresa locală asociate obiectului.

Metoda returnează un șir cu adresa IP locală și un număr cu portul. În
în caz de eroare, metoda returnează zero.

Argumente

· priză (priză_clasă) -- Este soclul manipulat.

Returnări
un șir care conține informații despre client.

socket.receive(socket[, model[, prefix]])
Citește date de la un obiect client, conform modelului de citire specificat. Modele
urmați formatul I/O fișier Lua și diferența de performanță între toate
modele este neglijabilă.

Argumente

· priză (priză_clasă) -- Este soclul manipulat.

· model (șir|întreg) -- Descrieți ceea ce este necesar (a se vedea mai jos).

· prefix (şir) -- Un șir care va fi prefixul datelor returnate.

Returnări
un șir care conține datele necesare sau nul.

Modelul poate fi oricare dintre următoarele:

·

`*a`: citește din il priză până la il conexiune is închis. Nu
se efectuează traducerea finală;

·

`*l`: citește a linie of a) Sport and Nutrition Awareness Day in Manasia Around XNUMX people from the rural commune Manasia have participated in a sports and healthy nutrition oriented activity in one of the community’s sports ready yards. This activity was meant to gather, mainly, middle-aged people from a Romanian rural community and teach them about the benefits that sports have on both their mental and physical health and on how sporting activities can be used to bring people from a community closer together. Three trainers were made available for this event, so that the participants would get the best possible experience physically and so that they could have the best access possible to correct information and good sports/nutrition practices. b) Sports Awareness Day in Poiana Țapului A group of young participants have taken part in sporting activities meant to teach them about sporting conduct, fairplay, and safe physical activities. The day culminated with a football match. din il Priză. linie is încheiată by a
Caracter LF (ASCII 10), precedat opțional de un caracter CR (ASCII 13).
Caracterele CR și LF nu sunt incluse în rândul returnat. De fapt,
toate caracterele CR sunt ignorate de model. Acesta este modelul implicit.

·

număr: cauze il metodă la citit a specificată număr of bytes din il
Priză. Prefixul este un șir opțional care trebuie concatenat la început
a oricăror date primite înainte de returnare.

· gol: Dacă modelul este lăsat gol, opțiunea implicită este *l.

Dacă are succes, metoda returnează modelul primit. În caz de eroare,
metoda returnează nil urmat de un mesaj de eroare care poate fi șirul „închis” în
în cazul în care conexiunea a fost închisă înainte ca transmisia să fie finalizată sau șirul
„timeout” în cazul în care a existat un timeout în timpul operației. De asemenea, după eroare
mesaj, funcția returnează rezultatul parțial al transmisiei.

Notă importantă: Această funcție a fost modificată sever. Obișnuia să suporte mai multe
modele (dar nu am văzut niciodată folosită această caracteristică) și acum nu mai este.
Rezultatele parțiale erau returnate în același mod ca rezultatele de succes. Acest
Ultima caracteristică a încălcat ideea că toate funcțiile ar trebui să returneze zero în caz de eroare. Prin urmare
s-a schimbat si el.

Socket.send(socket, date[, start[, Sfârșit]])
Trimite date prin obiectul client.

Argumente

· priză (priză_clasă) -- Este soclul manipulat.

· de date (şir) -- Datele care vor fi trimise.

· Începe (întreg) -- Poziția de pornire în memoria tampon a datelor care va
fi trimis.

· capăt (întreg) -- Poziția finală în memoria tampon a datelor care vor fi
trimis.

Returnări
Vezi mai jos.

Datele sunt șirul care trebuie trimis. Argumentele opționale i și j funcționează exact ca
funcția standard șir.sub Lua pentru a permite selectarea unui subșir care urmează să fie trimis.

Dacă are succes, metoda returnează indexul ultimului octet în [start, end]
care a fost trimis. Observați că, dacă startul este 1 sau absent, acesta este efectiv
numărul total de octeți trimiși. În caz de eroare, metoda returnează zero, urmat de
un mesaj de eroare, urmat de indexul ultimului octet din [start, end] that
a fost trimis. Poate doriți să încercați din nou din octetul care urmează. Eroarea
mesajul poate fi „închis” în cazul în care conexiunea a fost închisă înainte de transmitere
a fost finalizat sau șirul „timeout” în cazul în care a existat un timeout în timpul
operațiune.

Notă: Ieșirea nu este tamponată. Pentru șiruri mici, este întotdeauna mai bine să se concateneze
le în Lua (cu operatorul '..') și trimiteți rezultatul într-un singur apel în loc de
apelând metoda de mai multe ori.

Socket.setoption(socket, opțiune[, valoare])
Tocmai implementat pentru compatibilitate, acest cal nu face nimic.

Socket.settimeout(socket, valoare[, mod])
Modifică valorile timeout pentru obiect. Toate operațiunile I/O sunt blocate. Acea
înseamnă că orice apel la metodele de trimitere, primire și acceptare se va bloca pe termen nelimitat,
până la finalizarea operației. Metoda settimeout definește o limită a sumei
de timp metodele I/O se pot bloca. Când a trecut un timp de expirare, cel afectat
metodele renunță și eșuează cu un cod de eroare.

Timpul de așteptare este specificat ca parametru de valoare, în secunde.

Modurile de timeout sunt implementate prin bot, singurul timeout setat este inactivitatea
timp de așteptare pentru finalizarea trimiterii bufferului intern sau de așteptare pentru primirea datelor.

Argumente

· priză (priză_clasă) -- Este soclul manipulat.

· valoare (întreg) -- Valoarea timeout.

clasă Hartă()
Această clasă permite efectuarea unor căutări în hărțile HAProxy. Hărțile declarate pot fi
modificat în timpul execuției prin intermediul soclului de gestionare HAProxy.

implicit = "sUA"

-- Creați și încărcați harta
geo = Map.new("geo.map", Map.ip);

-- Creați o nouă preluare care returnează țara utilizatorului
core.register_fetches(„țara”, funcția(txn)
local src;
loc local;

src = txn.f:fhdr("x-redirecționat-pentru");
dacă (src == nil) atunci
src = txn.f:src()
dacă (src == nil) atunci
returnează implicit;
capăt
capăt

-- Efectuați o căutare
loc = geo:lookup(src);

if (loc == nil) atunci
returnează implicit;
capăt

return loc;
Sfârșit);

Map.int
Consultați fișierul HAProxy configuration.txt, capitolul „Utilizarea ACL-urilor și preluarea mostrelor”
și subcapitolul „Noțiuni de bază ACL” pentru a înțelege această metodă de potrivire a modelelor.

Harta.ip Consultați fișierul HAProxy configuration.txt, capitolul „Utilizarea ACL-urilor și preluarea mostrelor”
și subcapitolul „Noțiuni de bază ACL” pentru a înțelege această metodă de potrivire a modelelor.

Harta.str
Consultați fișierul HAProxy configuration.txt, capitolul „Utilizarea ACL-urilor și preluarea mostrelor”
și subcapitolul „Noțiuni de bază ACL” pentru a înțelege această metodă de potrivire a modelelor.

Harta.beg
Consultați fișierul HAProxy configuration.txt, capitolul „Utilizarea ACL-urilor și preluarea mostrelor”
și subcapitolul „Noțiuni de bază ACL” pentru a înțelege această metodă de potrivire a modelelor.

Harta.sub
Consultați fișierul HAProxy configuration.txt, capitolul „Utilizarea ACL-urilor și preluarea mostrelor”
și subcapitolul „Noțiuni de bază ACL” pentru a înțelege această metodă de potrivire a modelelor.

Map.dir
Consultați fișierul HAProxy configuration.txt, capitolul „Utilizarea ACL-urilor și preluarea mostrelor”
și subcapitolul „Noțiuni de bază ACL” pentru a înțelege această metodă de potrivire a modelelor.

Harta.dom
Consultați fișierul HAProxy configuration.txt, capitolul „Utilizarea ACL-urilor și preluarea mostrelor”
și subcapitolul „Noțiuni de bază ACL” pentru a înțelege această metodă de potrivire a modelelor.

Harta.sfarsit
Consultați fișierul HAProxy configuration.txt, capitolul „Utilizarea ACL-urilor și preluarea mostrelor”
și subcapitolul „Noțiuni de bază ACL” pentru a înțelege această metodă de potrivire a modelelor.

Hartă.reg
Consultați fișierul HAProxy configuration.txt, capitolul „Utilizarea ACL-urilor și preluarea mostrelor”
și subcapitolul „Noțiuni de bază ACL” pentru a înțelege această metodă de potrivire a modelelor.

Map.new(fișier, metodă)
Creează și încarcă o hartă.

Argumente

· fişier (şir) -- Este fișierul care conține harta.

· metodă (întreg) -- Este metoda de potrivire a modelului de hartă. Vezi atributele
din clasa Map.

Returnări
un obiect Map de clasă.

Vedea Atributele Hărții.

Map.lookup(harta, str)
Efectuați o căutare pe o hartă.

Argumente

· Hartă (hartă_clasă) -- Este obiectul Map de clasă.

· str (şir) -- Este șirul folosit ca cheie.

Returnări
un șir care conține rezultatul sau nul dacă nu se potrivește.

Map.lookup(hartă, str)
Efectuați o căutare pe o hartă.

Argumente

· Hartă (hartă_clasă) -- Este obiectul Map de clasă.

· str (şir) -- Este șirul folosit ca cheie.

Returnări
un șir care conține rezultatul sau șir gol dacă nu se potrivește.

clasă AppletHTTP()
Această clasă este utilizată cu applet-uri care necesită modul „http”. Appletul http poate
fi înregistrat la core.register_service() funcţie. Sunt folosite pentru
procesarea unei cereri http ca un server în spatele HAProxy.

Acesta este un exemplu de cod al lumii:

core.register_service("hello-world", "http", function(applet)
răspuns local = „Bună lume!”
applet:set_status(200)
applet:add_header(„lungimea conținutului”, string.len(răspuns))
applet:add_header(„tip de conținut”, „text/plat”)
applet:start_response()
applet:trimite(răspuns)
Sfârșit)

AppletHTTP.c

Returnări
A convertoare clasă

Acest atribut conține un obiect de clasă Converters.

AppletHTTP.sc

Returnări
A convertoare clasă

Acest atribut conține un obiect de clasă Converters. Funcțiile acestui obiect
returnează întotdeauna un șir.

AppletHTTP.f

Returnări
A Preluări clasă

Acest atribut conține un obiect de clasă Fetches. Rețineți că execuția applet-ului
locul nu poate accesa o tranzacție HTTP de bază HAProxy validă, așa că unele mostre
Efectele legate de valorile dependente de HTTP (hdr, cale, ...) nu sunt disponibile.

AppletHTTP.sf

Returnări
A Preluări clasă

Acest atribut conține un obiect de clasă Fetches. Funcțiile acestui obiect
returnează întotdeauna un șir. Rețineți că locul de execuție a appletului nu poate accesa a
Tranzacție HTTP de bază HAProxy validă, deci câteva eșantion de efecte legate de HTTP
valorile dependente (hdr, cale, ...) nu sunt disponibile.

AppletHTTP.metoda

Returnări
şir

Metoda atribute returnează un șir care conține metoda HTTP.

AppletHTTP.versiune

Returnări
şir

Versiunea atributului, returnează un șir care conține versiunea solicitării HTTP.

AppletHTTP.cale

Returnări
şir

Calea atributului returnează un șir care conține calea solicitării HTTP.

AppletHTTP.qs

Returnări
şir

Atributul qs returnează un șir care conține șirul de interogare HTTP.

AppletHTTP.lungime

Returnări
întreg

Lungimea atributului returnează un număr întreg care conține lungimea corpului HTTP.

AppletHTTP.headers

Returnări
mulțime

Antetele atributelor returnează o matrice care conține antetele HTTP. Antetul
numele sunt întotdeauna cu litere mici. Deoarece numele antetului poate fi întâlnit mai mult decât
o dată la fiecare cerere, valoarea este indexată cu 0 ca primă valoare de index. Matricea
au aceasta forma:

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

AppletHTTP.headers["gazdă"][0] = "www.test.com"
AppletHTTP.headers["accept"][0] = "audio/de bază q=1"
AppletHTTP.headers["accept"][1] = "audio/*, q=0.2"
AppletHTTP.headers["accept"][2] = "*/*, q=0.1"

AppletHTTP.headers
Conține o matrice care conține toate anteturile cererii.

AppletHTTP.set_status(applet, cod)
Această funcție setează codul de stare HTTP pentru răspuns. Codurile permise sunt de la
100 la 599.

Argumente

· applet (class_AppletHTTP) -- An AppletHTTP clasă

· cod (întreg) -- codul de stare returnat clientului.

AppletHTTP.add_header(applet, Nume, valoare)
Această funcție adaugă un antet în răspuns. Antetele duplicate nu sunt restrânse.
Antetul special lungime-conținut este folosit pentru a determina lungimea răspunsului. Daca
nu există, a codificare de transfer: zdrobit este setat și toate scrierile din funcție
AppletHTTP:send() deveni o bucată.

Argumente

· applet (class_AppletHTTP) -- An AppletHTTP clasă

· nume (şir) -- numele antetului

· valoare (şir) -- valoarea antetului

AppletHTTP.start_response(applet)
Această funcție indică motorului HTTP că poate procesa și trimite
antete de răspuns. După acest apel, nu putem adăuga anteturi la răspuns; Noi
nu pot folosi AppletHTTP:send() funcția dacă AppletHTTP:start_response() nu este
numit.

Argumente

· applet (class_AppletHTTP) -- An AppletHTTP clasă

AppletHTTP.getline(applet)
Această funcție returnează un șir care conține o linie din corpul http. Dacă datele
returnat nu conține un „\n” final, este presupus decât ultimele date disponibile
înainte de sfârșitul fluxului.

Argumente

· applet (class_AppletHTTP) -- An AppletHTTP clasă

Returnări
o sfoară. Șirul poate fi gol dacă ajungem la capătul fluxului.

AppletHTTP.receive(applet[, mărimea])
Citește datele din corpul HTTP, conform citirii specificate mărimea. Dacă mărimea is
lipsește, funcția încearcă să citească tot conținutul fluxului până la sfârșit. Dacă
il mărimea este mai mare decât corpul http, returnează cantitatea de date disponibilă.

Argumente

· applet (class_AppletHTTP) -- An AppletHTTP clasă

· mărimea (întreg) -- dimensiunea de citire necesară.

Returnări
returnează întotdeauna un șir, șirul poate fi gol dacă conexiunea este închisă.

AppletHTTP.send(applet, mesaj)
Trimiteți mesajul msg pe corpul solicitării http.

Argumente

· applet (class_AppletHTTP) -- An AppletHTTP clasă

· msg (şir) -- mesajul de trimis.

clasă AppletTCP()
Această clasă este utilizată cu applet-uri care necesită modul „tcp”. Appletul tcp poate fi
înregistrat la core.register_service() funcţie. Sunt folosite pentru prelucrare
un flux tcp ca un server în spatele HAProxy.

AppletTCP.c

Returnări
A convertoare clasă

Acest atribut conține un obiect de clasă Converters.

AppletTCP.sc

Returnări
A convertoare clasă

Acest atribut conține un obiect de clasă Converters. Funcțiile acestui obiect
returnează întotdeauna un șir.

AppletTCP.f

Returnări
A Preluări clasă

Acest atribut conține un obiect de clasă Fetches.

AppletTCP.sf

Returnări
A Preluări clasă

Acest atribut conține un obiect de clasă Fetches.

AppletTCP.getline(applet)
Această funcție returnează un șir care conține o linie din flux. Dacă datele
returnat nu conține un „\n” final, este presupus decât ultimele date disponibile
înainte de sfârșitul fluxului.

Argumente

· applet (class_AppletTCP) -- An AppletTCP clasă

Returnări
o sfoară. Șirul poate fi gol dacă ajungem la capătul fluxului.

AppletTCP.receive(applet[, mărimea])
Citește date din fluxul TCP, conform citirii specificate mărimea. Dacă mărimea
lipsește, funcția încearcă să citească tot conținutul fluxului până la sfârșit.

Argumente

· applet (class_AppletTCP) -- An AppletTCP clasă

· mărimea (întreg) -- dimensiunea de citire necesară.

Returnări
returnează întotdeauna un șir, șirul poate fi gol dacă conexiunea este închisă.

AppletTCP.send(appletmsg)
Trimite mesajul în flux.

Argumente

· applet (class_AppletTCP) -- An AppletTCP clasă

· msg (şir) -- mesajul de trimis.

O mulțime de biblioteci Lua utile pot fi găsite aici:

· https://lua-toolbox.com/

Redis acces:

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

Acesta este un exemplu despre utilizarea bibliotecii Redis cu HAProxy. Rețineți că fiecare apel
a oricărei funcții a acestei biblioteci poate genera o eroare dacă conexiunea la socket eșuează.

-- încărcați biblioteca redis
local redis = require("redis");

funcția face_something(txn)

-- creați și conectați un nou soclu tcp
local tcp = core.tcp();
tcp:settimeout(1);
tcp:connect("127.0.0.1", 6379);

-- utilizați biblioteca redis cu acest nou soclu
client local = redis.connect({socket=tcp});
client:ping();

capăt

OpenSSL:

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

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

Utilizați haproxy-lua online folosind serviciile onworks.net


Servere și stații de lucru gratuite

Descărcați aplicații Windows și Linux

  • 1
    ÎNGHIŢITURĂ
    ÎNGHIŢITURĂ
    SWIG este un instrument de dezvoltare software
    care conectează programele scrise în C și
    C++ cu o varietate de nivel înalt
    limbaje de programare. SWIG este folosit cu
    diferit...
    Descărcați SWIG
  • 2
    Tema WooCommerce Nextjs React
    Tema WooCommerce Nextjs React
    Tema React WooCommerce, construită cu
    Urmează JS, Webpack, Babel, Node și
    Express, folosind GraphQL și Apollo
    Client. Magazin WooCommerce în React(
    contine: Produse...
    Descărcați tema WooCommerce Nextjs React
  • 3
    archlabs_repo
    archlabs_repo
    Pachetul depozit pentru ArchLabs Acesta este un
    aplicație care poate fi, de asemenea, preluată
    din
    https://sourceforge.net/projects/archlabs-repo/.
    A fost găzduit în OnWorks în...
    Descărcați archlabs_repo
  • 4
    Proiectul Zephyr
    Proiectul Zephyr
    Proiectul Zephyr este o nouă generație
    sistem de operare în timp real (RTOS) care
    suportă mai multe hardware-uri
    arhitecturi. Se bazează pe a
    nucleu cu amprentă mică...
    Descărcați Zephyr Project
  • 5
    SCcons
    SCcons
    SCons este un instrument de construcție software
    aceasta este o alternativă superioară
    instrument clasic de construcție „Make” care
    cu toții cunoaștem și iubim. SCons este
    implementat un...
    Descărcați SCons
  • 6
    PSeInt
    PSeInt
    PSeInt este un interpret de pseudo-cod pentru
    studenți de programare vorbitori de spaniolă.
    Scopul său principal este de a fi un instrument pentru
    învăţarea şi înţelegerea elementelor de bază
    concept...
    Descărcați PSeInt
  • Mai mult »

Comenzi Linux

  • 1
    7z
    7z
    7z - Un arhivator de fișiere cu cea mai mare
    rata compresiei ...
    Rulați 7z
  • 2
    7za
    7za
    7za - Un arhivator de fișiere cu cea mai mare
    rata compresiei ...
    Run 7za
  • 3
    înfiorător
    înfiorător
    CREEPY - O informație de geolocalizare
    agregator DESCRIERE: înfiorător este un
    aplicație care vă permite să adunați
    informații legate de geolocalizare despre
    utilizatori din...
    Fugi înfiorător
  • 4
    cricket-compilare
    cricket-compilare
    cricket - Un program pentru gestionarea
    colectarea și afișarea seriilor temporale
    date ...
    Rulați cricket-compile
  • 5
    g-wrap-config
    g-wrap-config
    g-wrap-config - script pentru a obține
    informații despre versiunea instalată
    de G-Wrap...
    Rulați g-wrap-config
  • 6
    g.iarbă de acces
    g.iarbă de acces
    g.access - Controlează accesul la
    setul de hărți curent pentru alți utilizatori de pe
    sistem. Dacă nu este oferită nicio opțiune, se imprimă
    Statusul curent. CUVINTE CHEIE: general, hartă
    management, p...
    Rulați g.accessgrass
  • Mai mult »

Ad