IngleseFranceseSpagnolo

Ad


Favicon di OnWorks

haproxy-lua - Online nel cloud

Esegui haproxy-lua nel provider di hosting gratuito OnWorks su Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

Questo è il comando haproxy-lua che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

PROGRAMMA:

NOME


haproxy-lua - Documentazione haproxy-lua

HAPROSSI MOON JOGGING vs RUNNING CONTESTI


Il codice Lua eseguito in HAProxy può essere elaborato in 2 modalità principali. Il primo è il
inizializzazione modo, e il secondo è il runtime modo.

· Nel inizializzazione modo, possiamo eseguire risoluzioni DNS, ma non possiamo eseguire I/O socket.
In questa modalità di inizializzazione, HAProxy è ancora bloccato durante l'esecuzione del Lua
.

· Nel runtime modo, non possiamo eseguire risoluzioni DNS, ma possiamo usare i socket. Il
l'esecuzione del codice Lua è multiplexata con l'elaborazione delle richieste, quindi il codice Lua
sembra essere eseguito in blocco, ma non è così.

Il codice Lua viene caricato in uno o più file. Questi file contengono il codice principale e le funzioni.
Lua ha 6 contesti di esecuzione.

1. Il file Lua stile di vita contesto. Viene eseguito durante il caricamento del file Lua nel
HAProxy [globale] sezione con la direttiva lua-carico. Viene eseguito in inizializzazione
modalità. Questa sezione viene utilizzata per configurare i collegamenti Lua in HAProxy.

2. Il Lua init contesto. È una funzione Lua eseguita subito dopo HAProxy
analisi della configurazione L'esecuzione è in modalità di inizializzazione. In questo contesto il
L'ambiente HAProxy è già inizializzato. È utile controllare la configurazione, oppure
inizializzare le connessioni o le attività del socket. Queste funzioni sono dichiarate nel corpo
contesto con la funzione Lua core.register_init(). Il prototipo della funzione è a
semplice funzione senza valore di ritorno e senza parametri, come questa: function FCN().

3. Il Lua compito contesto. È una funzione Lua eseguita dopo l'avvio di HAProxy
scheduler, e subito dopo la dichiarazione del task con la funzione Lua
core.register_task(). Questo contesto può essere concomitante con l'elaborazione del traffico. è
eseguito in modalità runtime. Il prototipo della funzione è una semplice funzione senza
valore restituito e senza parametri, in questo modo: function FCN().

4. il azione contesto. È una funzione Lua eseguita condizionatamente. Queste azioni sono
registrato dalle direttive Lua"core.register_action()". Il prototipo del Lua
la funzione chiamata è una funzione con non restituisce nulla e che prende un oggetto di
classe TXN come voce. function fcn(txn).

5. il campione-fetch contesto. Questa funzione accetta un oggetto TXN come argomento di ingresso e
restituisce una stringa. Questi tipi di funzione non possono eseguire alcuna funzione di blocco. Essi
sono utili per aggregare alcuni campioni di HAProxy originali e restituire il risultato.
Il prototipo della funzione è function stringa fcn(txn). Queste funzioni possono essere
registrato con la funzione Lua core.register_fetches(). Ogni prelievo di campioni dichiarato è
preceduto dalla stringa "lua.".

NOTA: È possibile che questa funzione non riesca a trovare i dati richiesti nell'originale
HAProxy sample-fetch, in questo caso, non può restituire il risultato. Questo caso non è ancora
supportato

6. il convertitore contesto. È una funzione Lua che accetta una stringa come input e restituisce
un'altra stringa come output. Questi tipi di funzioni sono senza stato, non possono accedere a
qualsiasi contesto. Non eseguono alcuna funzione di blocco. Il prototipo di chiamata è function
stringa fcn(stringa). Questa funzione può essere registrata con la funzione Lua
core.register_converters(). Ogni convertitore dichiarato è preceduto dalla stringa "lua.".

HAPROSSI MOON CIAO WORLD


File di configurazione HAProxy (ciao_mondo.conf):

globale
lua-carica hello_world.lua

ascolta proxy
legare 127.0.0.1: 10001
tcp-request inspect-delay 1s
Servizio di utilizzo del contenuto della richiesta tcp lua.hello_world

File HAProxy Lua (ciao_mondo.lua):

core.register_service("hello_world", "tcp", function(applet)
applet:send("ciao mondo\n")
fine)

Come avviare HAProxy per testare questa configurazione:

./haproxy -f ciao_mondo.conf

Su un altro terminale, puoi testare con telnet:

#:~telnet 127.0.0.1 10001
ciao mondo

classe nucleo()
La classe "core" contiene tutte le funzioni principali di HAProxy. Queste funzioni sono utili
per controllare il flusso di esecuzione, registrare hook, manipolare mappe globali
o ACL, ...

La classe "core" è fondamentalmente fornita con HAProxy. No richiedere la linea è necessaria per
utilizza queste funzioni.

La classe "core" è statica, non è possibile creare un nuovo oggetto di questo tipo.

nucleo.emergente

Reso
numero intero

Questo attributo è un intero, contiene il valore del loglevel "emergenza"
(0).

core.alert

Reso
numero intero

Questo attributo è un intero, contiene il valore del loglevel "alert" (1).

core.crit

Reso
numero intero

Questo attributo è un intero, contiene il valore del loglevel "critico" (2).

core.err

Reso
numero intero

Questo attributo è un intero, contiene il valore del loglevel "error" (3).

core.avvertimento

Reso
numero intero

Questo attributo è un intero, contiene il valore del loglevel "warning" (4).

avviso.principale

Reso
numero intero

Questo attributo è un intero, contiene il valore del loglevel "notice" (5).

core.info

Reso
numero intero

Questo attributo è un intero, contiene il valore del loglevel "info" (6).

core.debug

Reso
numero intero

Questo attributo è un intero, contiene il valore del livello di log "debug" (7).

core.log(livellolog, messaggio)
contesto: corpo, init, attività, azione, recupero campioni, convertitore

Questa funzione invia un registro. Il registro viene inviato, in accordo con HAProxy
file di configurazione, sul server syslog predefinito se configurato e sul
stderr se è consentito.

argomenti

· loglevel (numero intero) - È il livello di registro associato al messaggio. È un
numero compreso tra 0 e 7.

· msg (stringa) -- Il contenuto del registro.

See core.emerg, core.alert, core.crit, core.err, core.warning, core.notice,
core.info, core.debug (definizioni a livello di registro)

See codice.Debug

See core.Info

See core.Avviso

See core.Avviso

core.Debug(messaggio)
contesto: corpo, init, attività, azione, recupero campioni, convertitore

argomenti

· msg (stringa) -- Il contenuto del registro.

See ceppo

Fa lo stesso lavoro di:

function Mettere a punto(messaggio)
core.log(core.debug, messaggio)
fine

core.Info(messaggio)
contesto: corpo, init, attività, azione, recupero campioni, convertitore

argomenti

· msg (stringa) -- Il contenuto del registro.

See ceppo

function Info(messaggio)
core.log(core.info, messaggio)
fine

core.Avviso(messaggio)
contesto: corpo, init, attività, azione, recupero campioni, convertitore

argomenti

· msg (stringa) -- Il contenuto del registro.

See ceppo

function avvertimento(messaggio)
core.log(core.avviso, messaggio)
fine

core.Avviso(messaggio)
contesto: corpo, init, attività, azione, recupero campioni, convertitore

argomenti

· msg (stringa) -- Il contenuto del registro.

See ceppo

function Mettere in guardia(messaggio)
core.log(core.alert, messaggio)
fine

core.add_acl(nomefile, chiave)
contesto: init, compito, azione, recupero campioni, convertitore

Aggiungi l'ACL chiave nell'elenco degli ACL a cui fa riferimento il file Nome del file.

argomenti

· Nome del file (stringa) -- il nome del file che fa riferimento alle voci ACL.

· chiave (stringa) -- la chiave che verrà aggiunta.

core.del_acl(nomefile, chiave)
contesto: init, compito, azione, recupero campioni, convertitore

Elimina la voce ACL a cui fa riferimento la chiave chiave nell'elenco degli ACL a cui fa riferimento
Nome del file.

argomenti

· Nome del file (stringa) -- il nome del file che fa riferimento alle voci ACL.

· chiave (stringa) -- la chiave che verrà eliminata.

core.del_map(nomefile, chiave)
contesto: init, compito, azione, recupero campioni, convertitore

Elimina la voce della mappa indicizzata con la chiave specificata nell'elenco delle mappe di riferimento
con il suo nome file.

argomenti

· Nome del file (stringa) -- il nome del file che fa riferimento alle voci della mappa.

· chiave (stringa) -- la chiave che verrà eliminata.

core.msonno(millisecondi)
contesto: corpo, init, compito, azione

I core.msleep() interrompe l'esecuzione di Lua tra i millisecondi specificati.

argomenti

· millisecondi (numero intero) -- i millisecondi richiesti.

core.register_action(nome, Azioni, funzione)
contesto: corpo

Registra una funzione Lua eseguita come azione. Tutte le azioni registrate possono essere utilizzate
in HAProxy con il prefisso "lua.". Un'azione riceve una classe di oggetti TXN come input.

argomenti

· Nome (stringa) - è il nome del convertitore.

· azioni (tavolo) - è una tabella di stringhe che descrive le azioni HAProxy che
vuoi registrarti a. Le azioni previste sono 'tcp-req', 'tcp-res',
'http-req' o 'http-res'.

· func (function) - è la funzione Lua chiamata a fungere da convertitore.

Il prototipo della funzione Lua utilizzata come argomento è:

funzione (txn)

·

grazie (TXN classe): questo is a TXN oggetto utilizzato per manipolazione , il
richiesta corrente o flusso TCP.

Qui, un esempio di registrazione dell'azione. l'azione basta inviare un 'Hello world' nel
log.

core.register_action("hello-world", { "tcp-req", "http-req" }, function(txn)
txn:Info("Ciao mondo")
fine)
Questo codice di esempio viene utilizzato nella configurazione di HAproxy in questo modo:

interfaccia tcp_frt
modalità tcp
tcp-richiesta contenuto lua.hello-world

interfaccia http_frt
modalità http
http-richiesta lua.hello-world

core.register_converters(nome, funzione)
contesto: corpo

Registra una funzione Lua eseguita come convertitore. Tutti i convertitori registrati possono essere
utilizzato in HAProxy con il prefisso "lua.". Un convertitore riceve una stringa come input e
restituisce una stringa come output. La funzione registrata può assumere fino a 9 valori come
parametro. Tutti i valori sono stringhe.

argomenti

· Nome (stringa) - è il nome del convertitore.

· func (function) - è la funzione Lua chiamata a fungere da convertitore.

Il prototipo della funzione Lua utilizzata come argomento è:

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

· str (stringa): questo è il valore di input convertito automaticamente in stringa.

· p1 .. p5 (stringa): questo è un elenco di argomenti stringa dichiarati nell'haroxy
file di configurazione. Il numero di argomenti non supera 5. L'ordine e il
la natura di questi è convenzionalmente scelta dallo sviluppatore.

core.register_fetches(nome, funzione)
contesto: corpo

Registra una funzione Lua eseguita come recupero di esempio. Tutti i recuperi di campioni registrati
può essere utilizzato in HAProxy con il prefisso "lua.". Un prelievo di esempio Lua restituisce una stringa
come uscita. La funzione registrata può assumere fino a 9 valori come parametro. Tutti i
valore sono stringhe.

argomenti

· Nome (stringa) - è il nome del convertitore.

· func (function) - è la funzione Lua chiamata per lavorare come recupero del campione.

Il prototipo della funzione Lua utilizzata come argomento è:

funzione stringa (txn, [p1 [, p2 [, ... [, p5]]]])

· grazie (TXN classe): questo è l'oggetto txn associato alla richiesta corrente.

· p1 .. p5 (stringa): questo è un elenco di argomenti stringa dichiarati nell'haroxy
file di configurazione. Il numero di argomenti non supera 5. L'ordine e il
la natura di questi è convenzionalmente scelta dallo sviluppatore.

· Reso: Una stringa contenente alcuni dati, o nullo se il valore non può essere restituito ora.

codice di esempio lua:

core.register_fetches("ciao", function(txn)
ritorna "ciao"
fine)
Configurazione di esempio di HAProxy:

esempio di frontend
Posizione di reindirizzamento della richiesta http /%[lua.hello]

core.register_service(nome, modalità, funzione)
contesto: corpo

Registra una funzione Lua eseguita come servizio. Tutto il servizio registrato può essere
utilizzato in HAProxy con il prefisso "lua.". Un servizio riceve una classe di oggetti come input
secondo la modalità richiesta.

argomenti

· Nome (stringa) - è il nome del convertitore.

· modo (stringa) - è una stringa che descrive la modalità richiesta. Solo 'tcp' o
'http' sono consentiti.

· func (function) - è la funzione Lua chiamata a fungere da convertitore.

Il prototipo della funzione Lua utilizzata come argomento è:

funzione (applet)

· applet applet sarà una AppletTCP classe o AppletHTTP classe. Dipende dal tipo
dell'applet registrata. Un'applet registrata con il valore 'http' per il modo
parametro otterrà un AppletHTTP classe. Se il modo il valore è 'tcp', l'applet lo farà
ottiene un AppletTCP classe.

identificazione dei warning: le applet di tipo 'http' non possono essere chiamate da 'tcp-' regole. Solo , il 'http-'
i set di regole sono autorizzati, ciò significa che non è possibile chiamare un'applet HTTP da a
proxy in modalità tcp. Le applet di tipo 'tcp' possono essere chiamate da qualsiasi luogo.

Qui, un esempio di registrazione del servizio. il servizio invia semplicemente un "Hello world" come un
risposta http.

core.register_service("hello-world", "http", function(applet)
local response = "Hello World!"
applet:stato_impostato(200)
applet:add_header("lunghezza contenuto", string.len(risposta))
applet:add_header("tipo di contenuto", "testo/normale")
applet:start_response()
applet: invia (risposta)
fine)
Questo codice di esempio viene utilizzato nella configurazione di HAproxy in questo modo:

esempio di frontend
richiesta http per l'uso del servizio lua.hello-world

core.register_init(funzione)
contesto: corpo

Registra una funzione eseguita dopo l'analisi della configurazione. Questo è utile per
controllare eventuali parametri.

argomenti

· func (function) - è la funzione Lua chiamata per funzionare come inizializzatore.

Il prototipo della funzione Lua utilizzata come argomento è:

funzione()
Non richiede input e non è previsto alcun output.

core.register_task(funzione)
contesto: corpo, init, attività, azione, recupero campioni, convertitore

Registrati e avvia un'attività indipendente. L'attività viene avviata quando HAProxy main
l'utilità di pianificazione si avvia. Ad esempio questo tipo di attività può essere eseguito per eseguire complesse
controlli sanitari.

argomenti

· func (function) - è la funzione Lua chiamata per funzionare come inizializzatore.

Il prototipo della funzione Lua utilizzata come argomento è:

funzione()
Non richiede input e non è previsto alcun output.

core.set_nice(bello)
contesto: compito, azione, recupero del campione, convertitore

Cambia il bello dell'attività corrente o della sessione corrente.

argomenti

· bello (numero intero) -- il valore nice, deve essere compreso tra -1024 e 1024.

core.set_map(nomefile, chiave, valore)
contesto: init, compito, azione, recupero campioni, convertitore

imposta il valore APPREZZIAMO associato alla chiave chiave nella mappa a cui fa riferimento Nome del file.

argomenti

· Nome del file (stringa) -- il riferimento della mappa

· chiave (stringa) -- la chiave per impostare o sostituire

· APPREZZIAMO (stringa) -- il valore associato

core.sonno(int secondi)
contesto: corpo, init, compito, azione

I core.sonno() le funzioni interrompono l'esecuzione di Lua tra i secondi specificati.

argomenti

· secondo (numero intero) -- i secondi richiesti.

core.tcp()
contesto: init, compito, azione

Questa funzione restituisce un nuovo oggetto di a presa di corrente classe.

Reso
A presa di corrente classe oggetto.

core.done(dati)
contesto: corpo, init, attività, azione, recupero campioni, convertitore

argomenti

· dati (in qualsiasi) -- Restituisce alcuni dati per il chiamante. È utile con
prelevamenti di campioni e convertitori di campioni.

Interrompe immediatamente l'esecuzione Lua in corso e ritorna al chiamante che potrebbe essere
un prelievo di esempio, un convertitore o un'azione e restituisce il valore specificato (ignorato
per azioni). Viene utilizzato quando il processo LUA termina il suo lavoro e vuole dare
riportare il controllo su HAProxy senza eseguire il codice rimanente. Può essere visto come
un "ritorno" multilivello.

core.rendimento()
contesto: compito, azione, recupero del campione, convertitore

Restituisci la mano allo scheduler HAProxy. Viene utilizzato quando l'elaborazione LUA
consuma molto tempo di elaborazione.

classe Recuperi()
Questa classe contiene molti campioni di HAProxy interni. Vedi HAProxy
documentazione "configuration.txt" per ulteriori informazioni sul suo utilizzo. sono
i capitoli da 7.3.2 a 7.3.6.

identificazione dei warning alcuni recuperi di esempio non sono disponibili in alcuni contesti. Queste limitazioni
sono specificati in questa documentazione quando sono utili.

See TXN.f

See TXN.sf

I recuperi sono utili per:

· ottenere l'ora del sistema,

· ottenere variabile d'ambiente,

· ottenere numeri casuali,

· stato noto del backend come il numero di utenti in coda o il numero di
connessioni stabilite,

· informazioni sul cliente come l'origine o la destinazione dell'ip,

· occuparsi di tavole steccate,

· Informazioni SSL stabilite,

· Informazioni HTTP come intestazioni o metodo.

funzione azione (txn)
-- Ottieni l'IP di origine
clientip locale = txn.f:src()
fine

classe Convertitori()
Questa classe contiene molti convertitori di campioni HAProxy interni. Vedi HAProxy
documentazione "configuration.txt" per ulteriori informazioni sul suo utilizzo. È il
capitolo 7.3.1.

See TXN.c

See TXN.sc

I convertitori forniscono una trasformazione statefull. Sono utili per:

· convertire l'input in base64,

· applicare hash sulla stringa di input (djb2, crc32, sdbm, wt6),

· formato data,

· json fuga,

· estrazione della lingua preferita confrontando due liste,

· passare a caratteri inferiori o superiori,

· occuparsi di tavole di bastone.

classe Canale()
HAProxy utilizza due buffer per l'elaborazione delle richieste. Il primo è usato
con i dati di richiesta (dal client al server) e il secondo viene utilizzato per
i dati di risposta (dal server al client).

Ogni buffer contiene due tipi di dati. Il primo tipo sono i dati in arrivo in attesa
per una lavorazione. La seconda parte sono i dati in uscita già elaborati. Solitamente,
i dati in entrata vengono elaborati, dopo che sono stati contrassegnati come dati in uscita e infine
è inviato. Le seguenti funzioni forniscono strumenti per manipolare questi dati in un
tampone.

Il diagramma seguente mostra dove viene applicata la funzione della classe di canale.

avvertimento: Non è possibile leggere dalla risposta nell'azione di richiesta, ed è
non è possibile leggere per il canale di richiesta nell'azione di risposta.
[immagine]

Canale.dup(canale)
Questa funzione restituisce una stringa che contiene l'intero buffer. I dati non lo sono
rimuovere dal buffer e può essere rielaborato in seguito.

Se il buffer non può ricevere più dati, viene restituito un valore "nil".

argomenti

· canale (class_channel) -- Il canale manipolato.

Reso
una stringa contenente tutti i dati disponibili o zero.

Canale.get(canale)
Questa funzione restituisce una stringa che contiene l'intero buffer. I dati vengono consumati
dal tampone.

Se il buffer non può ricevere più dati, viene restituito un valore "nil".

argomenti

· canale (class_channel) -- Il canale manipolato.

Reso
una stringa contenente tutti i dati disponibili o zero.

Canale.getline(canale)
Questa funzione restituisce una stringa che contiene la prima riga del buffer. I dati
è consumato. Se i dati restituiti non contengono una 'n' finale si presume che la sua
gli ultimi dati disponibili nel buffer.

Se il buffer non può ricevere più dati, viene restituito un valore "nil".

argomenti

· canale (class_channel) -- Il canale manipolato.

Reso
una stringa contenente la riga disponibile o nil.

Channel.set(canale, corda)
Questa funzione sostituisce il contenuto del buffer con la stringa. La funzione ritorna
la lunghezza copiata, altrimenti restituisce -1.

I dati impostati con questa funzione non vengono inviati. Aspettano la fine di HAProxy
elaborazione, quindi il buffer può essere pieno.

argomenti

· canale (class_channel) -- Il canale manipolato.

· stringa (stringa) -- I dati che verranno inviati.

Reso
un numero intero contenente la quantità di byte copiati o -1.

Canale.append(canale, corda)
Questa funzione aggiunge l'argomento stringa al contenuto del buffer. La funzione
restituisce la lunghezza copiata, altrimenti restituisce -1.

I dati impostati con questa funzione non vengono inviati. Aspettano la fine di HAProxy
elaborazione, quindi il buffer può essere pieno.

argomenti

· canale (class_channel) -- Il canale manipolato.

· stringa (stringa) -- I dati che verranno inviati.

Reso
un numero intero contenente la quantità di byte copiati o -1.

Canale.send(canale, corda)
Questa funzione richiedeva l'invio immediato dei dati. A meno che la connessione non sia
close, il buffer viene regolarmente svuotato e tutta la stringa può essere inviata.

argomenti

· canale (class_channel) -- Il canale manipolato.

· stringa (stringa) -- I dati che verranno inviati.

Reso
un numero intero contenente la quantità di byte copiati o -1.

Canale.get_in_length(canale)
Questa funzione restituisce la lunghezza della parte di input del buffer.

argomenti

· canale (class_channel) -- Il canale manipolato.

Reso
un numero intero contenente la quantità di byte disponibili.

Canale.get_out_length(canale)
Questa funzione restituisce la lunghezza della parte di output del buffer.

argomenti

· canale (class_channel) -- Il canale manipolato.

Reso
un numero intero contenente la quantità di byte disponibili.

Canale.forward(canale, intero)
Questa funzione trasferisce byte dalla parte di input del buffer alla parte di output.

argomenti

· canale (class_channel) -- Il canale manipolato.

· int (numero intero) -- La quantità di dati che verranno inoltrati.

classe HTTP()
Questa classe contiene tutte le funzioni di manipolazione HTTP.

HTTP.req_get_headers(http)
Restituisce un array contenente tutte le intestazioni della richiesta.

argomenti

· http (classe_http) -- L'oggetto http correlato.

Reso
serie di intestazioni.

See HTTP.res_get_headers()

Questa è la forma dell'array restituito:

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

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

HTTP.res_get_headers(http)
Restituisce un array contenente tutte le intestazioni di risposta.

argomenti

· http (classe_http) -- L'oggetto http correlato.

Reso
serie di intestazioni.

See HTTP.req_get_headers()

Questa è la forma dell'array restituito:

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

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

HTTP.req_add_header(http, nome, valore)
Aggiunge un campo di intestazione HTTP nella richiesta il cui nome è specificato in "nome" e
il cui valore è definito in "valore".

argomenti

· http (classe_http) -- L'oggetto http correlato.

· Nome (stringa) -- Il nome dell'intestazione.

· APPREZZIAMO (stringa) -- Il valore dell'intestazione.

See HTTP.res_add_header()

HTTP.res_add_header(http, nome, valore)
aggiunge un campo di intestazione HTTP nella risposta il cui nome è specificato in "nome" e
il cui valore è definito in "valore".

argomenti

· http (classe_http) -- L'oggetto http correlato.

· Nome (stringa) -- Il nome dell'intestazione.

· APPREZZIAMO (stringa) -- Il valore dell'intestazione.

See HTTP.req_add_header()

HTTP.req_del_header(http, nome)
Rimuove tutti i campi di intestazione HTTP nella richiesta il cui nome è specificato in "nome".

argomenti

· http (classe_http) -- L'oggetto http correlato.

· Nome (stringa) -- Il nome dell'intestazione.

See HTTP.res_del_header()

HTTP.res_del_header(http, nome)
Rimuove tutti i campi di intestazione HTTP nella risposta il cui nome è specificato in "nome".

argomenti

· http (classe_http) -- L'oggetto http correlato.

· Nome (stringa) -- Il nome dell'intestazione.

See HTTP.req_del_header()

HTTP.req_set_header(http, nome, valore)
Questa variabile sostituisce tutte le occorrenze di tutte le intestazioni "nome", con una sola contenente
il valore".

argomenti

· http (classe_http) -- L'oggetto http correlato.

· Nome (stringa) -- Il nome dell'intestazione.

· APPREZZIAMO (stringa) -- Il valore dell'intestazione.

See HTTP.res_set_header()

Questa funzione fa lo stesso lavoro del seguente codice:

funzione fcn(txn)
TXN.http:req_del_header("intestazione")
TXN.http:req_add_header("intestazione", "valore")
fine

HTTP.res_set_header(http, nome, valore)
Questa variabile sostituisce tutte le occorrenze di tutte le intestazioni "nome", con una sola contenente
il valore".

argomenti

· http (classe_http) -- L'oggetto http correlato.

· Nome (stringa) -- Il nome dell'intestazione.

· APPREZZIAMO (stringa) -- Il valore dell'intestazione.

See HTTP.req_rep_header()

HTTP.req_rep_header(http, nome, regolare, sostituire)
Corrisponde all'espressione regolare in tutte le occorrenze del campo di intestazione "nome" secondo
a "regex" e li sostituisce con l'argomento "replace". Il valore di sostituzione
può contenere riferimenti a ritroso come 1, 2, ... Questa funzione funziona con la richiesta.

argomenti

· http (classe_http) -- L'oggetto http correlato.

· Nome (stringa) -- Il nome dell'intestazione.

· regex (stringa) -- L'espressione regolare di corrispondenza.

· sostituire (stringa) -- Il valore di sostituzione.

See HTTP.res_rep_header()

HTTP.res_rep_header(http, nome, regolare, corda)
Corrisponde all'espressione regolare in tutte le occorrenze del campo di intestazione "nome" secondo
a "regex" e li sostituisce con l'argomento "replace". Il valore di sostituzione
può contenere riferimenti a ritroso come 1, 2, ... Questa funzione funziona con la richiesta.

argomenti

· http (classe_http) -- L'oggetto http correlato.

· Nome (stringa) -- Il nome dell'intestazione.

· regex (stringa) -- L'espressione regolare di corrispondenza.

· sostituire (stringa) -- Il valore di sostituzione.

See HTTP.req_replace_header()

HTTP.req_replace_value(http, nome, regolare, sostituire)
Funziona come "HTTP.req_replace_header()" tranne per il fatto che corrisponde alla regex contro
ogni valore delimitato da virgole del campo di intestazione "nome" invece dell'intero
intestazione.

argomenti

· http (classe_http) -- L'oggetto http correlato.

· Nome (stringa) -- Il nome dell'intestazione.

· regex (stringa) -- L'espressione regolare di corrispondenza.

· sostituire (stringa) -- Il valore di sostituzione.

See HTTP.req_replace_header()

See HTTP.res_replace_value()

HTTP.res_replace_value(http, nome, regolare, sostituire)
Funziona come "HTTP.res_replace_header()" tranne per il fatto che corrisponde alla regex contro
ogni valore delimitato da virgole del campo di intestazione "nome" invece dell'intero
intestazione.

argomenti

· http (classe_http) -- L'oggetto http correlato.

· Nome (stringa) -- Il nome dell'intestazione.

· regex (stringa) -- L'espressione regolare di corrispondenza.

· sostituire (stringa) -- Il valore di sostituzione.

See HTTP.res_replace_header()

See HTTP.req_replace_value()

HTTP.req_set_method(http, metodo)
Riscrive il metodo di richiesta con il parametro "metodo".

argomenti

· http (classe_http) -- L'oggetto http correlato.

· metodo (stringa) -- Il nuovo metodo.

HTTP.req_set_path(http, percorso)
Riscrive il percorso della richiesta con il parametro "percorso".

argomenti

· http (classe_http) -- L'oggetto http correlato.

· sentiero (stringa) -- Il nuovo percorso.

HTTP.req_set_query(http, domanda)
Riscrive la stringa di query della richiesta che appare dopo il primo punto interrogativo
("?") con il parametro "query".

argomenti

· http (classe_http) -- L'oggetto http correlato.

· domanda (stringa) -- La nuova query.

HTTP.req_set_uri(http, uri)
Riscrive l'URI della richiesta con il parametro "uri".

argomenti

· http (classe_http) -- L'oggetto http correlato.

· uri (stringa) -- Il nuovo uri.

HTTP.res_set_status(http, stato)
Riscrive il codice di stato della risposta con il parametro "code". Nota che il motivo
viene automaticamente adattato al nuovo codice.

argomenti

· http (classe_http) -- L'oggetto http correlato.

· status (numero intero) -- Il nuovo codice di stato della risposta.

classe TXN()
La classe txn contiene tutte le funzioni relative alla transazione http o tcp
(Nota che un flusso tcp è uguale a una transazione tcp, ma una transazione HTTP
non è lo stesso di un flusso tcp).

L'uso di questa classe permette di recuperare i dati dalle richieste, modificarli e
inoltralo.

Tutte le funzioni fornite da questa classe sono disponibili nel contesto
campioni-recuperi ed azioni.

TXN.c

Reso
An Convertitori classe.

Questo attributo contiene un oggetto di classe Converters.

TXN.sc

Reso
An Convertitori classe.

Questo attributo contiene un oggetto di classe Converters. Le funzioni di questo oggetto
restituisce sempre una stringa.

TXN.f

Reso
An Recupera classe.

Questo attributo contiene un oggetto di classe Fetches.

TXN.sf

Reso
An Recupera classe.

Questo attributo contiene un oggetto di classe Fetches. Le funzioni di questo oggetto
restituisce sempre una stringa.

TXN.richiesta

Reso
An canale classe.

Questo attributo contiene un oggetto classe di canale per il buffer di richiesta.

TXN.res

Reso
An canale classe.

Questo attributo contiene un oggetto classe di canale per il buffer di risposta.

TXN. http

Reso
An HTTP classe.

Questo attributo contiene un oggetto di classe HTTP. È disponibile solo se il proxy ha
la "modalità http" abilitata.

TXN.log(TXN, livello di log, messaggio)
Questa funzione invia un registro. Il registro viene inviato, in accordo con HAProxy
file di configurazione, sul server syslog predefinito se configurato e sul
stderr se è consentito.

argomenti

· grazie (classe_txn) -- L'oggetto di classe txn che contiene i dati.

· loglevel (numero intero) - È il livello di registro associato al messaggio. È un
numero compreso tra 0 e 7.

· msg (stringa) -- Il contenuto del registro.

See core.emerg, core.alert, core.crit, core.err, core.warning, core.notice,
core.info, core.debug (definizioni a livello di registro)

See TXN.deflog

See TXN.Debug

See TXN.Info

See TXN.Avviso

See TXN.Avviso

TXN.deflog(TXN, messaggio)
Invia una riga di registro con il livello di registro predefinito per il proxy associato al
transazione.

argomenti

· grazie (classe_txn) -- L'oggetto di classe txn che contiene i dati.

· msg (stringa) -- Il contenuto del registro.

See TXN.log

TXN.Debug(txn, messaggio)

argomenti

· grazie (classe_txn) -- L'oggetto di classe txn che contiene i dati.

· msg (stringa) -- Il contenuto del registro.

See TXN.log

Fa lo stesso lavoro di:

funzione Debug (txn, msg)
TXN.log(txn, core.debug, msg)
fine

TXN.Info(txn, messaggio)

argomenti

· grazie (classe_txn) -- L'oggetto di classe txn che contiene i dati.

· msg (stringa) -- Il contenuto del registro.

See TXN.log

funzione Debug (txn, msg)
TXN.log(txn, core.info, msg)
fine

TXN.Avviso(txn, messaggio)

argomenti

· grazie (classe_txn) -- L'oggetto di classe txn che contiene i dati.

· msg (stringa) -- Il contenuto del registro.

See TXN.log

funzione Debug (txn, msg)
TXN.log(txn, core.avviso, msg)
fine

TXN.Avviso(txn, messaggio)

argomenti

· grazie (classe_txn) -- L'oggetto di classe txn che contiene i dati.

· msg (stringa) -- Il contenuto del registro.

See TXN.log

funzione Debug (txn, msg)
TXN.log(txn, core.alert, msg)
fine

TXN.get_priv(txn)
Restituire i dati Lua memorizzati nella transazione corrente (con il TXN.set_priv())
funzione. Se non vengono memorizzati dati, restituisce un valore nullo.

argomenti

· grazie (classe_txn) -- L'oggetto di classe txn che contiene i dati.

Reso
i dati opachi precedentemente memorizzati, o nulli se nulla è disponibile.

TXN.set_priv(txn, dati)
Memorizza tutti i dati nella transazione HAProxy corrente. Questa azione sostituisce la vecchia
dati memorizzati.

argomenti

· grazie (classe_txn) -- L'oggetto di classe txn che contiene i dati.

· dati (opaco) - I dati che vengono memorizzati nella transazione.

TXN.set_var(TXN, c'è, valore)
Converte un tipo Lua in un tipo HAProxy e lo memorizza in una variabile .

argomenti

· grazie (classe_txn) -- L'oggetto di classe txn che contiene i dati.

· var (stringa) -- Il nome della variabile in accordo con la variabile HAProxy
sintassi.

· APPREZZIAMO (opaco) - I dati che sono memorizzati nella variabile.

TXN.get_var(TXN, variabile)
Restituisce i dati memorizzati nel convertitore di variabili di tipo Lua.

argomenti

· grazie (classe_txn) -- L'oggetto di classe txn che contiene i dati.

· var (stringa) -- Il nome della variabile in accordo con la variabile HAProxy
sintassi.

TXN.get_headers(txn)
Questa funzione restituisce un array di intestazioni.

argomenti

· grazie (classe_txn) -- L'oggetto di classe txn che contiene i dati.

Reso
una serie di intestazioni.

TXN.fatto(txn)
Questa funzione termina l'elaborazione della transazione e della sessione associata.
Può essere utilizzato quando viene rilevato un errore critico o per terminare l'elaborazione dopo
alcuni dati sono stati restituiti al client (es: un redirect).

argomenti

· grazie (classe_txn) -- L'oggetto di classe txn che contiene i dati.

TXN.set_loglevel(txn, livello di log)
Viene utilizzato per modificare il livello di registro della richiesta corrente. Il "loglevel" deve essere an
intero compreso tra 0 e 7.

argomenti

· grazie (classe_txn) -- L'oggetto di classe txn che contiene i dati.

· loglevel (numero intero) -- Il livello di registro richiesto. Questa variabile può essere una delle

See nucleo.

TXN.set_tos(txn, a)
Viene utilizzato per impostare il valore del campo TOS o DSCP dei pacchetti inviati al client al
valore passato in "tos" su piattaforme che supportano questo.

argomenti

· grazie (classe_txn) -- L'oggetto di classe txn che contiene i dati.

· tos (numero intero) -- Il nuovo sistema operativo TOS DSCP.

TXN.set_mark(txn, marchio)
Viene utilizzato per impostare il MARK Netfilter su tutti i pacchetti inviati al client al valore
passato in "mark" sulle piattaforme che lo supportano.

argomenti

· grazie (classe_txn) -- L'oggetto di classe txn che contiene i dati.

· marchio (numero intero) -- Il valore del segno.

classe Presa()
Questa classe deve essere compatibile con la classe Lua Socket. Solo il "cliente"
funzioni sono disponibili. Vedere la documentazione Lua Socket:

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

Socket.close (presa)
Chiude un oggetto TCP. Il socket interno utilizzato dall'oggetto viene chiuso e il local
l'indirizzo a cui era legato l'oggetto è reso disponibile ad altre applicazioni. No
ulteriori operazioni (salvo ulteriori chiamate al metodo close) sono consentite su a
presa chiusa.

argomenti

· presa di corrente (class_socket) - È il Socket manipolato.

Nota: è importante chiudere tutte le prese utilizzate una volta che non sono necessarie, poiché, in
molti sistemi, ogni socket utilizza un descrittore di file, che sono un sistema limitato
risorse. Gli oggetti raccolti nella spazzatura vengono chiusi automaticamente prima della distruzione,
però.

Socket.connect (presa, indirizzo[, porta])
Tenta di connettere un oggetto socket a un host remoto.

In caso di errore, il metodo restituisce nil seguito da una stringa che descrive l'errore.
In caso di successo, il metodo restituisce 1.

argomenti

· presa di corrente (class_socket) - È il Socket manipolato.

· indirizzo (stringa) - può essere un indirizzo IP o un nome host. Vedi sotto per
maggiori informazioni.

· porto (numero intero) -- deve essere un numero intero nell'intervallo [1..64K].

Reso
1 o zero.

un'estensione del campo dell'indirizzo consente di utilizzare la funzione connect() per connettersi a
flusso diverso da TCP. La sintassi contenente un indirizzo simpleipv4 o ipv6 è la
formato sostanzialmente previsto. Questo formato richiede la porta.

Un altro formato accettato è un percorso socket come "/socket/path", permette di connettersi
a una presa. gli spazi dei nomi astratti sono supportati con il prefisso "abns@", e infine
un filedeskriotr può essere passato con il prefisso "fd@". Il prefisso "ipv4@", "ipv6@"
e sono supportati anche "unix@". La porta può essere passata nella stringa. la sintassi
"127.0.0.1:1234" è valido. in questo caso il parametro porto viene ignorato.

Socket.connect_ssl(socket, indirizzo, port)
Stesso comportamento della funzione socket:connect, ma utilizza SSL.

argomenti

· presa di corrente (class_socket) - È il Socket manipolato.

Reso
1 o zero.

Socket.getpeername(socket)
Restituisce informazioni sul lato remoto di un oggetto client connesso.

Restituisce una stringa con l'indirizzo IP del peer, seguito dal numero di porta che
peer sta usando per la connessione. In caso di errore, il metodo restituisce zero.

argomenti

· presa di corrente (class_socket) - È il Socket manipolato.

Reso
una stringa contenente le informazioni sul server.

Socket.getsockname(socket)
Restituisce le informazioni sull'indirizzo locale associate all'oggetto.

Il metodo restituisce una stringa con l'indirizzo IP locale e un numero con la porta. In
caso di errore, il metodo restituisce zero.

argomenti

· presa di corrente (class_socket) - È il Socket manipolato.

Reso
una stringa contenente le informazioni sul client.

Socket.receive(socket[, modello[, prefisso]])
Legge i dati da un oggetto client, in base al modello di lettura specificato. Modelli
seguire il formato I/O del file Lua e la differenza di prestazioni tra tutti
modelli è trascurabile.

argomenti

· presa di corrente (class_socket) - È il Socket manipolato.

· modello (stringa|intero) -- Descrivi cosa è richiesto (vedi sotto).

· prefisso (stringa) -- Una stringa che sarà il prefisso dei dati restituiti.

Reso
una stringa contenente i dati richiesti o zero.

Il modello può essere uno dei seguenti:

·

"*a": legge da , il presa di corrente fino a quando , il veloce is chiuso. Non
viene eseguita la traduzione di fine riga;

·

`*l`: legge a linea of testo da , il presa di corrente I linea is terminato by a
Carattere LF (ASCII 10), preceduto facoltativamente da un carattere CR (ASCII 13).
I caratteri CR e LF non sono inclusi nella riga restituita. Di fatto,
tutti i caratteri CR vengono ignorati dal pattern. Questo è il modello predefinito.

·

numero: cause , il metodo a read a specificato numero of bytes da , il
Presa. Il prefisso è una stringa facoltativa da concatenare all'inizio
di eventuali dati ricevuti prima della restituzione.

· vuoto: Se il motivo viene lasciato vuoto, l'opzione predefinita è *l.

In caso di successo, il metodo restituisce il modello ricevuto. In caso di errore, il
il metodo restituisce nil seguito da un messaggio di errore che può essere la stringa 'chiuso' in
caso la connessione è stata chiusa prima che la trasmissione fosse completata o la stringa
'timeout' nel caso si sia verificato un timeout durante l'operazione. Inoltre, dopo l'errore
messaggio, la funzione restituisce il risultato parziale della trasmissione.

Nota importante: questa funzione è stata modificata notevolmente. Ha usato per supportare più
patterns (ma non ho mai visto questa funzione utilizzata) e ora non lo fa più.
I risultati parziali venivano restituiti allo stesso modo dei risultati positivi. Questo
l'ultima caratteristica violava l'idea che tutte le funzioni dovessero restituire zero in caso di errore. così
è stato anche cambiato.

Socket.send(presa, dati[, inizio[, fine]])
Invia i dati tramite l'oggetto client.

argomenti

· presa di corrente (class_socket) - È il Socket manipolato.

· dati (stringa) -- I dati che verranno inviati.

· inizia a (numero intero) -- La posizione iniziale nel buffer dei dati che sarà
essere inviato.

· fine (numero intero) -- La posizione finale nel buffer dei dati che sarà
inviato.

Reso
vedi sotto.

Data è la stringa da inviare. Gli argomenti opzionali i e j funzionano esattamente come
funzione standard string.sub Lua per consentire la selezione di una sottostringa da inviare.

In caso di successo, il metodo restituisce l'indice dell'ultimo byte entro [inizio, fine]
che è stato inviato. Notare che, se inizio è 1 o assente, questo è effettivamente il
numero totale di byte inviati. In caso di errore, il metodo restituisce nil, seguito da
un messaggio di errore, seguito dall'indice dell'ultimo byte entro [inizio, fine] che
è stato inviato. Potresti voler riprovare dal byte successivo. L'errore
messaggio può essere "chiuso" nel caso in cui la connessione sia stata chiusa prima della trasmissione
è stato completato o la stringa 'timeout' nel caso si sia verificato un timeout durante il
funzionamento.

Nota: l'output non è bufferizzato. Per le stringhe piccole, è sempre meglio concatenare
li in Lua (con l'operatore '..') e inviano il risultato in una chiamata invece di
chiamando il metodo più volte.

Socket.setoption(presa, opzione[, valore])
Appena implementato per compatibilità, questo cal non fa nulla.

Socket.settimeout(socket, valore[, modalità])
Modifica i valori di timeout per l'oggetto. Tutte le operazioni di I/O sono bloccanti. Quella
vale a dire, qualsiasi chiamata ai metodi invia, riceve e accetta si bloccherà a tempo indeterminato,
fino al completamento dell'operazione. Il metodo settimeout definisce un limite all'importo
di tempo che i metodi di I/O possono bloccare. Quando è trascorso un tempo di timeout, l'interessato
i metodi si arrendono e falliscono con un codice di errore.

Il tempo di attesa è specificato come parametro value, in secondi.

Le modalità di timeout sono implementate da bot, l'unico timeout impostabile è l'inattività
tempo di attesa per completare l'invio del buffer interno o in attesa di ricevere i dati.

argomenti

· presa di corrente (class_socket) - È il Socket manipolato.

· APPREZZIAMO (numero intero) -- Il valore di timeout.

classe Carta geografica()
Questa classe permette di fare qualche ricerca nelle mappe HAProxy. Le mappe dichiarate possono essere
modificato durante il runtime tramite il socket di gestione HAProxy.

default = "usa"

-- Crea e carica mappa
geo = Map.new("geo.map", Map.ip);

-- Crea un nuovo recupero che restituisce il paese dell'utente
core.register_fetches("paese", funzione(txn)
src locale;
locale;

src = txn.f:fhdr("x-inoltrato-per");
if (src == nil) allora
src = txn.f:src()
if (src == nil) allora
ritorno predefinito;
fine
fine

-- Esegui la ricerca
loc = geo:ricerca(src);

if (loc == nil) allora
ritorno predefinito;
fine

luogo di ritorno;
fine);

Mappa.int
Vedere il file HAProxy configuration.txt, capitolo "Utilizzo di ACL e recupero di campioni"
ans sottocapitolo "Nozioni di base sull'ACL" per comprendere questo metodo di corrispondenza del modello.

Mappa.ip Vedere il file HAProxy configuration.txt, capitolo "Utilizzo di ACL e recupero di campioni"
ans sottocapitolo "Nozioni di base sull'ACL" per comprendere questo metodo di corrispondenza del modello.

Mappa.str
Vedere il file HAProxy configuration.txt, capitolo "Utilizzo di ACL e recupero di campioni"
ans sottocapitolo "Nozioni di base sull'ACL" per comprendere questo metodo di corrispondenza del modello.

Mappa.beg
Vedere il file HAProxy configuration.txt, capitolo "Utilizzo di ACL e recupero di campioni"
ans sottocapitolo "Nozioni di base sull'ACL" per comprendere questo metodo di corrispondenza del modello.

Mappa.sub
Vedere il file HAProxy configuration.txt, capitolo "Utilizzo di ACL e recupero di campioni"
ans sottocapitolo "Nozioni di base sull'ACL" per comprendere questo metodo di corrispondenza del modello.

Mappa.dir
Vedere il file HAProxy configuration.txt, capitolo "Utilizzo di ACL e recupero di campioni"
ans sottocapitolo "Nozioni di base sull'ACL" per comprendere questo metodo di corrispondenza del modello.

Mappa.dom
Vedere il file HAProxy configuration.txt, capitolo "Utilizzo di ACL e recupero di campioni"
ans sottocapitolo "Nozioni di base sull'ACL" per comprendere questo metodo di corrispondenza del modello.

Mappa.fine
Vedere il file HAProxy configuration.txt, capitolo "Utilizzo di ACL e recupero di campioni"
ans sottocapitolo "Nozioni di base sull'ACL" per comprendere questo metodo di corrispondenza del modello.

Mappa.reg
Vedere il file HAProxy configuration.txt, capitolo "Utilizzo di ACL e recupero di campioni"
ans sottocapitolo "Nozioni di base sull'ACL" per comprendere questo metodo di corrispondenza del modello.

Mappa.nuovo(file, metodo)
Crea e carica una mappa.

argomenti

· filetto (stringa) - È il file che contiene la mappa.

· metodo (numero intero) -- È il metodo di corrispondenza del modello di mappa. Guarda gli attributi
della classe Mappa.

Reso
un oggetto Map di classe.

See Gli attributi della mappa.

Map.lookup(mappa, stra)
Eseguire una ricerca in una mappa.

argomenti

· carta geografica (mappa_classe) - È l'oggetto Mappa di classe.

· str (stringa) - È la stringa utilizzata come chiave.

Reso
una stringa contenente il risultato o nil se nessuna corrispondenza.

Map.slookup(mappa, stra)
Eseguire una ricerca in una mappa.

argomenti

· carta geografica (mappa_classe) - È l'oggetto Mappa di classe.

· str (stringa) - È la stringa utilizzata come chiave.

Reso
una stringa contenente il risultato o una stringa vuota se nessuna corrispondenza.

classe AppletHTTP()
Questa classe viene utilizzata con applet che richiedono la modalità 'http'. L'applet http può
essere registrato con il core.register_service() funzione. Sono usati per
elaborare una richiesta http come un server dietro HAProxy.

Questo è un codice di esempio Hello World:

core.register_service("hello-world", "http", function(applet)
local response = "Hello World!"
applet:stato_impostato(200)
applet:add_header("lunghezza contenuto", string.len(risposta))
applet:add_header("tipo di contenuto", "testo/normale")
applet:start_response()
applet: invia (risposta)
fine)

AppletHTTP.c

Reso
A Convertitori classe

Questo attributo contiene un oggetto di classe Converters.

AppletHTTP.sc

Reso
A Convertitori classe

Questo attributo contiene un oggetto di classe Converters. Le funzioni di questo oggetto
restituisce sempre una stringa.

AppletHTTP.f

Reso
A Recupera classe

Questo attributo contiene un oggetto di classe Fetches. Nota che l'esecuzione dell'applet
place non può accedere a una transazione HTTP core HAProxy valida, quindi alcuni campioni
i fetti relativi ai valori dipendenti da HTTP (hdr, path, ...) non sono disponibili.

AppletHTTP.sf

Reso
A Recupera classe

Questo attributo contiene un oggetto di classe Fetches. Le funzioni di questo oggetto
restituisce sempre una stringa. Nota che il luogo di esecuzione dell'applet non può accedere a a
transazione HTTP core HAProxy valida, quindi alcuni esempi di fetti relativi all'HTTP
i valori dipendenti (hdr, percorso, ...) non sono disponibili.

Metodo.AppletHTTP

Reso
stringa

Il metodo dell'attributo restituisce una stringa contenente il metodo HTTP.

AppletHTTP.versione

Reso
stringa

La versione dell'attributo restituisce una stringa contenente la versione della richiesta HTTP.

AppletHTTP.percorso

Reso
stringa

Il percorso dell'attributo restituisce una stringa contenente il percorso della richiesta HTTP.

AppletHTTP.qs

Reso
stringa

L'attributo qs restituisce una stringa contenente la stringa di query della richiesta HTTP.

AppletHTTP.lunghezza

Reso
numero intero

La lunghezza dell'attributo restituisce un numero intero contenente la lunghezza del corpo HTTP.

AppletHTTP.headers

Reso
schieramento

Le intestazioni degli attributi restituiscono un array contenente le intestazioni HTTP. l'intestazione
i nomi sono sempre in minuscolo. Poiché il nome dell'intestazione può essere incontrato più di
una volta in ogni richiesta, il valore viene indicizzato con 0 come primo valore di indice. la matrice
avere questa forma:

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

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

AppletHTTP.headers
Contiene un array contenente tutte le intestazioni della richiesta.

AppletHTTP.set_status(applet, codice)
Questa funzione imposta il codice di stato HTTP per la risposta. Il codice consentito proviene da
100 a 599.

argomenti

· applet (class_AppletHTTP) -- Un AppletHTTP classe

· codice (numero intero) -- il codice di stato restituito al client.

AppletHTTP.add_header(applet, nome, valore)
Questa funzione aggiunge un'intestazione nella risposta. Le intestazioni duplicate non vengono compresse.
L'intestazione speciale lunghezza del contenuto viene utilizzato per determinare la lunghezza della risposta. se è
non esiste, a codifica di trasferimento: Chunked è impostato, e tutta la scrittura dalla funzione
AppletHTTP:invia() diventare un pezzo.

argomenti

· applet (class_AppletHTTP) -- Un AppletHTTP classe

· Nome (stringa) -- il nome dell'intestazione

· APPREZZIAMO (stringa) -- il valore dell'intestazione

AppletHTTP.start_response(applet)
Questa funzione indica al motore HTTP che può elaborare e inviare il
intestazioni di risposta. Dopo questa chiamata non possiamo aggiungere intestazioni alla risposta; Noi
impossibile usare il AppletHTTP:invia() funzione se il AppletHTTP:start_response() non è
chiamato.

argomenti

· applet (class_AppletHTTP) -- Un AppletHTTP classe

AppletHTTP.getline(applet)
Questa funzione restituisce una stringa contenente una riga dal corpo http. Se i dati
restituito non contiene un '\n' finale si presume che siano gli ultimi dati disponibili
prima della fine del flusso.

argomenti

· applet (class_AppletHTTP) -- Un AppletHTTP classe

Reso
una stringa. La stringa può essere vuota se raggiungiamo la fine del flusso.

AppletHTTP.receive(applet[, dimensione])
Legge i dati dal corpo HTTP, secondo la lettura specificata Taglia. Se il Taglia is
mancante, la funzione cerca di leggere tutto il contenuto dello stream fino alla fine. Se
, il Taglia è più grande del corpo http, restituisce la quantità di dati disponibili.

argomenti

· applet (class_AppletHTTP) -- Un AppletHTTP classe

· Taglia (numero intero) -- la dimensione di lettura richiesta.

Reso
restituisce sempre una stringa, la stringa può essere vuota se la connessione è chiusa.

AppletHTTP.send(applet, messaggio)
Inviare il messaggio msg nel corpo della richiesta http.

argomenti

· applet (class_AppletHTTP) -- Un AppletHTTP classe

· msg (stringa) -- il messaggio da inviare.

classe AppletTCP()
Questa classe è usata con applet che richiedono la modalità 'tcp'. L'applet tcp può essere
registrato con il core.register_service() funzione. Sono utilizzati per l'elaborazione
un flusso tcp come un server dietro HAProxy.

AppletTCP.c

Reso
A Convertitori classe

Questo attributo contiene un oggetto di classe Converters.

AppletTCP.sc

Reso
A Convertitori classe

Questo attributo contiene un oggetto di classe Converters. Le funzioni di questo oggetto
restituisce sempre una stringa.

AppletTCP.f

Reso
A Recupera classe

Questo attributo contiene un oggetto di classe Fetches.

AppletTCP.sf

Reso
A Recupera classe

Questo attributo contiene un oggetto di classe Fetches.

AppletTCP.getline(applet)
Questa funzione restituisce una stringa contenente una riga dal flusso. Se i dati
restituito non contiene un '\n' finale si presume che siano gli ultimi dati disponibili
prima della fine del flusso.

argomenti

· applet (class_AppletTCP) -- Un AppletTCP classe

Reso
una stringa. La stringa può essere vuota se raggiungiamo la fine del flusso.

AppletTCP.receive(applet[, dimensione])
Legge i dati dal flusso TCP, in base alla lettura specificata Taglia. Se il Taglia
manca, la funzione cerca di leggere tutto il contenuto dello stream fino alla fine.

argomenti

· applet (class_AppletTCP) -- Un AppletTCP classe

· Taglia (numero intero) -- la dimensione di lettura richiesta.

Reso
restituisce sempre una stringa, la stringa può essere vuota se la connessione è chiusa.

AppletTCP.send(appletmsg)
Invia il messaggio sullo stream.

argomenti

· applet (class_AppletTCP) -- Un AppletTCP classe

· msg (stringa) -- il messaggio da inviare.

Molte utili librerie lua possono essere trovate qui:

· https://lua-toolbox.com/

Accesso Redis:

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

Questo è un esempio sull'utilizzo della libreria Redis con HAProxy. Nota che ogni chiamata
di qualsiasi funzione di questa libreria può generare un errore se la connessione socket fallisce.

-- carica la libreria redis
redis locale = require("redis");

funzione fa_qualcosa(txn)

-- crea e collega un nuovo socket tcp
tcp locale = core.tcp();
TCP:tempo scaduto(1);
tcp:connect("127.0.0.1", 6379);

-- usa la libreria redis con questo nuovo socket
client locale = redis.connect({socket=tcp});
cliente:ping();

fine

Apri SSL:

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

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

Utilizzare haproxy-lua online utilizzando i servizi onworks.net


Server e workstation gratuiti

Scarica app per Windows e Linux

  • 1
    Zabbix
    Zabbix
    Zabbix è un open di classe enterprise
    soluzione di monitoraggio distribuito alla fonte
    progettato per monitorare e tracciare
    prestazioni e disponibilità della rete
    server, dispositivo...
    Scarica Zabbix
  • 2
    KDiff3
    KDiff3
    Questo repository non è più mantenuto
    ed è conservata a scopo di archivio. Vedere
    https://invent.kde.org/sdk/kdiff3 for
    il codice più recente e
    https://download.kde.o...
    Scarica KDiff3
  • 3
    USB LoaderGX
    USB LoaderGX
    USBLoaderGX è una GUI per
    Caricatore USB di Waninkoko, basato su
    libwiigui. Consente la quotazione e
    lancio di giochi Wii, giochi Gamecube e
    homebrew su Wii e WiiU...
    Scarica USBLoaderGX
  • 4
    Firebird
    Firebird
    Firebird RDBMS offre funzionalità ANSI SQL
    e funziona su Linux, Windows e
    diverse piattaforme Unix. Caratteristiche
    concorrenza e prestazioni eccellenti
    & potenza...
    Scarica l'uccello di fuoco
  • 5
    KompoZer
    KompoZer
    KompoZer è un editor HTML wysiwyg che utilizza
    la base di codice di Mozilla Composer. Come
    Lo sviluppo di Nvu è stato interrotto
    nel 2005, KompoZer risolve molti bug e
    aggiunge una f...
    Scarica KompoZer
  • 6
    Downloader di manga gratuito
    Downloader di manga gratuito
    Il Free Manga Downloader (FMD) è un
    applicazione open source scritta
    Object-Pascal per la gestione e
    scaricare manga da vari siti web.
    Questo è uno specchio...
    Scarica il downloader manga gratuito
  • Di Più "

Comandi Linux

Ad