InglêsFrancêsEspanhol

Executar servidores | Ubuntu > | Fedora > |


favicon do OnWorks

haproxy-lua - Online na nuvem

Execute haproxy-lua no provedor de hospedagem gratuita OnWorks no Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

Este é o comando haproxy-lua que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

PROGRAMA:

NOME


haproxy-lua - haproxy-lua Documentação

FELIZ LUA CORRENDO CONTEXTOS


O código Lua executado no HAProxy pode ser processado em 2 modos principais. O primeiro é o
inicialização modo, e o segundo é o tempo de execução modo.

· No inicialização modo, podemos realizar soluções de DNS, mas não podemos realizar E / S de soquete.
Neste modo de inicialização, o HAProxy ainda é bloqueado durante a execução da Lua
.

· No tempo de execução modo, não podemos realizar soluções de DNS, mas podemos usar soquetes. o
a execução do código Lua é multiplexada com o processamento das solicitações, portanto, o código Lua
parece ser executado no bloqueio, mas não é o caso.

O código Lua é carregado em um ou mais arquivos. Esses arquivos contêm o código principal e as funções.
Lua tem 6 contextos de execução.

1. O arquivo Lua corpo contexto. É executado durante o carregamento do arquivo Lua no
HAPROxy [global] seção com a diretiva lua-load. É executado na inicialização
modo. Esta seção é usada para configurar ligações Lua no HAProxy.

2. A Lua o init contexto. É uma função Lua executada logo após o HAProxy
análise de configuração. A execução está em modo de inicialização. Neste contexto, o
O ambiente HAProxy já foi inicializado. É útil verificar a configuração ou
inicialização de conexões de soquete ou tarefas. Essas funções são declaradas no corpo
contexto com a função Lua core.register_init (). O protótipo da função é um
função simples sem valor de retorno e sem parâmetros, como este: função fcn ().

3. A Lua tarefa contexto. É uma função Lua executada após o início do HAProxy
agendador, e logo após a declaração da tarefa com a função Lua
core.register_task (). Este contexto pode ser simultâneo ao processamento do tráfego. Isto é
executado no modo runtime. O protótipo da função é uma função simples sem
valor de retorno e sem parâmetros, como este: função fcn ().

4. A açao contexto. É uma função Lua executada condicionalmente. Essas ações são
registrado pelas diretivas da Lua "core.register_action ()". O protótipo da Lua
função chamada é uma função que não retorna nada e que leva um objeto de
classe TXN como entrada. função fcn (txn).

5. A busca de amostra contexto. Esta função leva um objeto TXN como argumento de entrada e
retorna uma string. Esses tipos de função não podem executar nenhuma função de bloqueio. Elas
são úteis para agregar algumas das buscas de amostra originais do HAProxy e retornar o resultado.
O protótipo da função é função corda fcn (txn). Essas funções podem ser
registrado com a função Lua core.register_fetches (). Cada busca de amostra declarada é
prefixado pela string "lua.".

NOTA: É possível que esta função não encontre os dados necessários no original
HAProxy sample-fetches, neste caso, ele não pode retornar o resultado. Este caso ainda não é
suportado

6. A conversor contexto. É uma função Lua que recebe uma string como entrada e retorna
outra string como saída. Esses tipos de função não têm estado, não podem acessar
qualquer contexto. Eles não executam nenhuma função de bloqueio. O protótipo da chamada é função
corda fcn (string). Esta função pode ser registrada com a função Lua
core.register_converters (). Cada conversor declarado é prefixado pela string "lua.".

FELIZ LUA OLÁ MUNDO


Arquivo de configuração HAProxy (hello_world.conf):

global
lua-load hello_world.lua

ouvir proxy
vincular 127.0.0.1:10001
tcp-request inspect-delay 1s
tcp-request lua.hello_world-service uso de conteúdo

Arquivo HAProxy Lua (hello_world.lua):

core.register_service ("hello_world", "tcp", função (miniaplicativo)
miniaplicativo: enviar ("olá, mundo \ n")
fim)

Como iniciar o HAProxy para testar esta configuração:

./haproxy -f hello_world.conf

Em outro terminal, você pode testar com telnet:

#: ~ telnet 127.0.0.1 10001
Olá mundo

classe essencial()
A classe "core" contém todas as funções básicas do HAProxy. Estas funções são úteis
para controlar o fluxo de execução, registrar ganchos, manipular mapas globais
ou ACL, ...

A classe "principal" é fornecida basicamente com o HAProxy. Não requerer linha é necessária para
usa essas funções.

A classe "core" é estática, não sendo possível criar um novo objeto deste tipo.

core.emerg

Devoluções
número inteiro

Este atributo é um número inteiro, ele contém o valor do nível de log "emergência"
(0).

core.alert

Devoluções
número inteiro

Este atributo é um inteiro, ele contém o valor do loglevel "alert" (1).

core.crit

Devoluções
número inteiro

Este atributo é um inteiro, ele contém o valor do nível de log "crítico" (2).

core.err

Devoluções
número inteiro

Este atributo é um inteiro, ele contém o valor do loglevel "erro" (3).

núcleo.aviso

Devoluções
número inteiro

Este atributo é um inteiro, ele contém o valor do loglevel "aviso" (4).

núcleo.aviso

Devoluções
número inteiro

Este atributo é um inteiro, ele contém o valor do loglevel "Notice" (5).

core.info

Devoluções
número inteiro

Este atributo é um inteiro, ele contém o valor do nível de log "info" (6).

core.debug

Devoluções
número inteiro

Este atributo é um inteiro, ele contém o valor do loglevel "debug" (7).

core.log (loglevel, msg)
contexto: corpo, init, tarefa, ação, busca de amostra, conversor

Esta função envia um log. O log é enviado, de acordo com o HAProxy
arquivo de configuração, no servidor syslog padrão se estiver configurado e no
stderr se for permitido.

Argumentos

· nível de log (número inteiro) - O nível de log está associado à mensagem. É um
número entre 0 e 7.

· msg (corda) - O conteúdo do log.

Vejo core.emerg, core.alert, core.crit, core.err, core.warning, core.notice,
core.info, core.debug (definições de nível de log)

Vejo código.Depurar

Vejo core.Info

Vejo núcleo.Aviso

Vejo core.Alerta

core.Debug(mensagem)
contexto: corpo, init, tarefa, ação, busca de amostra, conversor

Argumentos

· msg (corda) - O conteúdo do log.

Vejo log

Faz o mesmo trabalho que:

função depurar(mensagem)
core.log (core.debug, msg)
final

core.Info(mensagem)
contexto: corpo, init, tarefa, ação, busca de amostra, conversor

Argumentos

· msg (corda) - O conteúdo do log.

Vejo log

função Informação(mensagem)
core.log (core.info, msg)
final

núcleo.Aviso(mensagem)
contexto: corpo, init, tarefa, ação, busca de amostra, conversor

Argumentos

· msg (corda) - O conteúdo do log.

Vejo log

função Aviso(mensagem)
core.log (core.warning, msg)
final

core.Alerta(mensagem)
contexto: corpo, init, tarefa, ação, busca de amostra, conversor

Argumentos

· msg (corda) - O conteúdo do log.

Vejo log

função Alertar(mensagem)
core.log (core.alert, msg)
final

core.add_acl (nome do arquivo, chave)
contexto: init, tarefa, ação, busca de amostra, conversor

Adicione a ACL chave na lista de ACLs referenciada pelo arquivo nome do arquivo.

Argumentos

· nome do arquivo (corda) - o nome do arquivo que faz referência às entradas ACL.

· chave (corda) - a chave que será adicionada.

core.del_acl (nome do arquivo, chave)
contexto: init, tarefa, ação, busca de amostra, conversor

Exclua a entrada ACL referenciada pela chave chave na lista de ACLs referenciados por
nome do arquivo.

Argumentos

· nome do arquivo (corda) - o nome do arquivo que faz referência às entradas ACL.

· chave (corda) - a chave que será excluída.

core.del_map (nome do arquivo, chave)
contexto: init, tarefa, ação, busca de amostra, conversor

Exclua a entrada do mapa indexada com a chave especificada na lista de mapas referenciados
por seu nome de arquivo.

Argumentos

· nome do arquivo (corda) - o nome do arquivo que faz referência às entradas do mapa.

· chave (corda) - a chave que será excluída.

core.msleep(milissegundos)
contexto: corpo, inicialização, tarefa, ação

A core.msleep () interrompe a execução de Lua entre os milissegundos especificados.

Argumentos

· milissegundos (número inteiro) - os milissegundos necessários.

core.register_action (nome, ações, função)
contexto: corpo

Registre uma função Lua executada como ação. Todas as ações registradas podem ser usadas
no HAProxy com o prefixo "lua.". Uma ação obtém uma classe de objeto TXN como entrada.

Argumentos

· nome (corda) - é o nome do conversor.

· ações (mesa) - é uma tabela de string que descreve as ações do HAProxy que
deseja registrar-se. As ações esperadas são 'tcp-req', 'tcp-res',
'http-req' ou 'http-res'.

· função (função) - é a função Lua chamada para funcionar como conversor.

O protótipo da função Lua usada como argumento é:

função (txn)

·

txn (TXN classe): isto is a TXN objeto usava por manipulando do
solicitação atual ou fluxo TCP.

Aqui, um exemplo de registro de ação. a ação juste enviar um 'Olá, mundo' no
Histórico.

core.register_action ("hello-world", {"tcp-req", "http-req"}, função (txn)
txn: Info ("Olá, mundo")
fim)
Este exemplo de código é usado na configuração HAproxy desta forma:

frontend tcp_frt
modo tcp
tcp-solicitação de conteúdo lua.hello mundo

front-end http_frt
modo http
http-request lua.hello-world

core.register_converters (nome, função)
contexto: corpo

Registre uma função Lua executada como conversor. Todos os conversores registrados podem ser
usado no HAProxy com o prefixo "lua.". Um conversor obtém uma string como entrada e
retorna uma string como saída. A função registrada pode ter até 9 valores como
parâmetro. Todos os valores são strings.

Argumentos

· nome (corda) - é o nome do conversor.

· função (função) - é a função Lua chamada para funcionar como conversor.

O protótipo da função Lua usada como argumento é:

função (str, [p1 [, p2 [, ... [, p5]]]])

· str (corda): este é o valor de entrada convertido automaticamente em string.

· p1 .. p5 (corda): esta é uma lista de argumentos de string declarados no haroxy
arquivo de configuração. O número de argumentos não excede 5. A ordem e o
natureza destes é convencionalmente escolhida pelo desenvolvedor.

core.register_fetches (nome, função)
contexto: corpo

Registre uma função Lua executada como busca de amostra. Todas as buscas de amostra registradas
pode ser usado no HAProxy com o prefixo "lua.". Uma busca de amostra de Lua retorna uma string
como saída. A função registrada pode ter até 9 valores como parâmetro. Todos
valor são strings.

Argumentos

· nome (corda) - é o nome do conversor.

· função (função) - é a função Lua chamada para funcionar como busca de amostra.

O protótipo da função Lua usada como argumento é:

função string (txn, [p1 [, p2 [, ... [, p5]]]])

· txn (TXN classe): este é o objeto txn associado à solicitação atual.

· p1 .. p5 (corda): esta é uma lista de argumentos de string declarados no haroxy
arquivo de configuração. O número de argumentos não excede 5. A ordem e o
natureza destes é convencionalmente escolhida pelo desenvolvedor.

· Devoluções: Uma string contendo alguns dados, ou nulo se o valor não puder ser retornado agora.

código de exemplo lua:

core.register_fetches ("olá", função (txn)
retornar "olá"
fim)
Configuração de exemplo do HAProxy:

exemplo de frontend
http-request local de redirecionamento /%[lua.hello]

core.register_service (nome, Modo, função)
contexto: corpo

Registre uma função Lua executada como um serviço. Todos os serviços cadastrados podem ser
usado no HAProxy com o prefixo "lua.". Um serviço obtém uma classe de objeto como entrada
de acordo com o modo necessário.

Argumentos

· nome (corda) - é o nome do conversor.

· modo (corda) - é uma string que descreve o modo necessário. Apenas 'tcp' ou
'http' são permitidos.

· função (função) - é a função Lua chamada para funcionar como conversor.

O protótipo da função Lua usada como argumento é:

função (miniaplicativo)

· applet applet será Applet TCP classe ou um AppletHTTP classe. Depende do tipo
do miniaplicativo registrado. Um miniaplicativo registrado com o valor 'http' para o modo
parâmetro obterá um AppletHTTP classe. Se o modo valor é 'tcp', o miniaplicativo irá
pega um Applet TCP classe.

aviso: Applets do tipo 'http' não podem ser chamados de 'tcp-' conjuntos de regras. Somente do 'http-'
conjuntos de regras são autorizados, isso significa que não é possível chamar um miniaplicativo HTTP de um
proxy no modo tcp. Os miniaplicativos do tipo 'tcp' podem ser chamados de qualquer lugar.

Aqui, um exemplo de registro de serviço. o serviço apenas envia um 'Olá, mundo' como um
resposta http.

core.register_service ("hello-world", "http", função (miniaplicativo)
resposta local = "Olá, mundo!"
miniaplicativo:set_status(200)
miniaplicativo: add_header ("content-length", string.len (resposta))
applet: add_header ("content-type", "text / plain")
miniaplicativo: start_response ()
miniaplicativo: enviar (resposta)
fim)
Este exemplo de código é usado na configuração HAproxy desta forma:

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

core.register_init (func)
contexto: corpo

Registre uma função executada após a análise da configuração. Isso é útil para
verifique todos os parâmetros.

Argumentos

· função (função) - é a função Lua chamada para funcionar como inicializador.

O protótipo da função Lua usada como argumento é:

função()
Não requer entrada e nenhuma saída é esperada.

core.register_task (func)
contexto: corpo, init, tarefa, ação, busca de amostra, conversor

Registre-se e inicie a tarefa independente. A tarefa é iniciada quando o HAProxy principal
o programador é iniciado. Por exemplo, este tipo de tarefas pode ser executado para realizar tarefas complexas
verificações de saúde.

Argumentos

· função (função) - é a função Lua chamada para funcionar como inicializador.

O protótipo da função Lua usada como argumento é:

função()
Não requer entrada e nenhuma saída é esperada.

core.set_nice (legal)
contexto: tarefa, ação, busca de amostra, conversor

Altere o aspecto da tarefa ou sessão atual.

Argumentos

· agradável (número inteiro) - o valor ideal, deve estar entre -1024 e 1024.

core.set_map (nome do arquivo, chave, valor)
contexto: init, tarefa, ação, busca de amostra, conversor

defina o valor valor associado à chave chave no mapa referenciado por nome do arquivo.

Argumentos

· nome do arquivo (corda) - a referência do mapa

· chave (corda) - a chave para definir ou substituir

· valor (corda) - o valor associado

core.sleep (int segundos)
contexto: corpo, inicialização, tarefa, ação

A core.sleep () funções param a execução de Lua entre os segundos especificados.

Argumentos

· segundo (número inteiro) - os segundos necessários.

core.tcp ()
contexto: init, tarefa, ação

Esta função retorna um novo objeto de um soquete classe.

Devoluções
A soquete classe objeto.

core.done (dados)
contexto: corpo, init, tarefa, ação, busca de amostra, conversor

Argumentos

· dados, (qualquer) - Retorne alguns dados para o chamador. É útil com
sample-fetches e sample-conversores.

Para imediatamente a execução atual de Lua e retorna para o chamador, que pode ser
uma busca de amostra, um conversor ou uma ação e retorna o valor especificado (ignorado
para ações). É utilizado quando o processo LUA termina seu trabalho e deseja dar
volte o controle para o HAProxy sem executar o código restante. Pode ser visto como
um "retorno" multinível.

core.yield ()
contexto: tarefa, ação, busca de amostra, conversor

Devolva a mão no agendador HAProxy. É usado quando o processamento de LUA
consome muito tempo de processamento.

classe Busca ()
Esta classe contém muitas buscas de amostras internas do HAProxy. Veja o HAProxy
Documentação "configuration.txt" para mais informações sobre seu uso. eles são
os capítulos 7.3.2 a 7.3.6.

aviso algumas buscas de amostra não estão disponíveis em algum contexto. Essas limitações
são especificados nesta documentação quando forem úteis.

Vejo TXN.f

Vejo TXN.sf

As buscas são úteis para:

· Obter a hora do sistema,

· Obter variável de ambiente,

· Obter números aleatórios,

· Status de back-end conhecido como o número de usuários na fila ou o número de
conexões estabelecidas,

· Informações do cliente como origem ou destino de ip,

· Lidar com mesas fixas,

· Informações SSL estabelecidas,

· Informações HTTP como cabeçalhos ou método.

ação da função (txn)
- Obter IP de origem
clientip local = txn.f: src ()
final

classe Conversores ()
Esta classe contém muitos conversores de amostra HAProxy internos. Veja o HAProxy
documentação "configuration.txt" para mais informações sobre seu uso. É o
capítulo 7.3.1.

Vejo TXN.c

Vejo TXN.sc

Os conversores fornecem transformação com estado completo. Eles são úteis para:

· Conversão de entrada para base64,

· Aplicação de hash na string de entrada (djb2, crc32, sdbm, wt6),

· Formatar data,

· Fuga json,

· Extração do idioma preferido comparando duas listas,

· Virar para caracteres inferiores ou superiores,

· Lidar com mesas fixas.

classe Canal()
O HAProxy usa dois buffers para o processamento das solicitações. O primeiro é usado
com os dados do pedido (do cliente para o servidor) e o segundo é usado para
os dados de resposta (do servidor para o cliente).

Cada buffer contém dois tipos de dados. O primeiro tipo é a espera de dados de entrada
para um processamento. A segunda parte são os dados de saída já processados. Usualmente,
os dados de entrada são processados, depois de marcados como dados de saída e, finalmente,
é enviado. As funções a seguir fornecem ferramentas para manipular esses dados em um
tampão.

O diagrama a seguir mostra onde as funções de classe de canal são aplicadas.

Aviso: Não é possível ler a resposta na ação de solicitação, e é
não é possível ler para o canal de solicitação na ação de resposta.
[Imagem]

Channel.dup (canal)
Esta função retorna uma string que contém todo o buffer. Os dados não são
remova do buffer e pode ser reprocessado posteriormente.

Se o buffer não puder receber mais dados, um valor 'nulo' é retornado.

Argumentos

· canal (class_channel) - O canal manipulado.

Devoluções
uma string contendo todos os dados disponíveis ou nulo.

Channel.get (canal)
Esta função retorna uma string que contém todo o buffer. Os dados são consumidos
do buffer.

Se o buffer não puder receber mais dados, um valor 'nulo' é retornado.

Argumentos

· canal (class_channel) - O canal manipulado.

Devoluções
uma string contendo todos os dados disponíveis ou nulo.

Channel.getline (canal)
Esta função retorna uma string que contém a primeira linha do buffer. Os dados
é consumido. Se os dados retornados não contiverem um 'n' final, será assumido que será
os últimos dados disponíveis no buffer.

Se o buffer não puder receber mais dados, um valor 'nulo' é retornado.

Argumentos

· canal (class_channel) - O canal manipulado.

Devoluções
uma string contendo a linha disponível ou nil.

Channel.set (canal, corda)
Esta função substitui o conteúdo do buffer pela string. A função retorna
o comprimento copiado, caso contrário, retorna -1.

O conjunto de dados com esta função não é enviado. Eles esperam o fim do HAProxy
processamento, para que o buffer fique cheio.

Argumentos

· canal (class_channel) - O canal manipulado.

· corda (corda) - Os dados que serão enviados.

Devoluções
um inteiro contendo a quantidade de bytes copiados ou -1.

Channel.append (channel, corda)
Esta função anexa o argumento da string ao conteúdo do buffer. A função
retorna o comprimento copiado, caso contrário, retorna -1.

O conjunto de dados com esta função não é enviado. Eles esperam o fim do HAProxy
processamento, para que o buffer fique cheio.

Argumentos

· canal (class_channel) - O canal manipulado.

· corda (corda) - Os dados que serão enviados.

Devoluções
um inteiro contendo a quantidade de bytes copiados ou -1.

Channel.send (canal, corda)
Esta função exigia o envio imediato dos dados. A menos que a conexão seja
fechar, o buffer é liberado regularmente e toda a string pode ser enviada.

Argumentos

· canal (class_channel) - O canal manipulado.

· corda (corda) - Os dados que serão enviados.

Devoluções
um inteiro contendo a quantidade de bytes copiados ou -1.

Channel.get_in_length (canal)
Esta função retorna o comprimento da parte de entrada do buffer.

Argumentos

· canal (class_channel) - O canal manipulado.

Devoluções
um inteiro contendo a quantidade de bytes disponíveis.

Channel.get_out_length (canal)
Esta função retorna o comprimento da parte de saída do buffer.

Argumentos

· canal (class_channel) - O canal manipulado.

Devoluções
um inteiro contendo a quantidade de bytes disponíveis.

Channel.forward (canal, int)
Esta função transfere bytes da parte de entrada do buffer para a parte de saída.

Argumentos

· canal (class_channel) - O canal manipulado.

· int (número inteiro) - A quantidade de dados que serão encaminhados.

classe HTTP ()
Esta classe contém todas as funções de manipulação de HTTP.

HTTP.req_get_headers (http)
Retorna uma matriz contendo todos os cabeçalhos de solicitação.

Argumentos

· http (class_http) - O objeto http relacionado.

Devoluções
matriz de cabeçalhos.

Vejo HTTP.res_get_headers ()

Esta é a forma da matriz retornada:

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

hdr local = HTTP: req_get_headers ()
hdr ["host"] [0] = "www.test.com"
hdr ["aceitar"] [0] = "áudio / básico q = 1"
hdr ["aceitar"] [1] = "áudio / *, q = 0.2"
hdr ["aceitar"] [2] = "* / *, q = 0.1"

HTTP.res_get_headers (http)
Retorna uma matriz contendo todos os cabeçalhos de resposta.

Argumentos

· http (class_http) - O objeto http relacionado.

Devoluções
matriz de cabeçalhos.

Vejo HTTP.req_get_headers ()

Esta é a forma da matriz retornada:

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

hdr local = HTTP: req_get_headers ()
hdr ["host"] [0] = "www.test.com"
hdr ["aceitar"] [0] = "áudio / básico q = 1"
hdr ["aceitar"] [1] = "áudio / *, q = 0.2"
hdr ["aceitar"] [2] = "*. *, q = 0.1"

HTTP.req_add_header (http, nome valor)
Acrescenta um campo de cabeçalho HTTP na solicitação cujo nome é especificado em "nome" e
cujo valor é definido em "valor".

Argumentos

· http (class_http) - O objeto http relacionado.

· nome (corda) - O nome do cabeçalho.

· valor (corda) - O valor do cabeçalho.

Vejo HTTP.res_add_header ()

HTTP.res_add_header (http, nome valor)
acrescenta um campo de cabeçalho HTTP na resposta cujo nome é especificado em "nome" e
cujo valor é definido em "valor".

Argumentos

· http (class_http) - O objeto http relacionado.

· nome (corda) - O nome do cabeçalho.

· valor (corda) - O valor do cabeçalho.

Vejo HTTP.req_add_header ()

HTTP.req_del_header (http, nome)
Remove todos os campos de cabeçalho HTTP na solicitação cujo nome é especificado em "nome".

Argumentos

· http (class_http) - O objeto http relacionado.

· nome (corda) - O nome do cabeçalho.

Vejo HTTP.res_del_header ()

HTTP.res_del_header (http, nome)
Remove todos os campos de cabeçalho HTTP da resposta cujo nome é especificado em "nome".

Argumentos

· http (class_http) - O objeto http relacionado.

· nome (corda) - O nome do cabeçalho.

Vejo HTTP.req_del_header ()

HTTP.req_set_header (http, nome valor)
Esta variável substitui todas as ocorrências de todo o cabeçalho "nome", por apenas um contendo
O valor que".

Argumentos

· http (class_http) - O objeto http relacionado.

· nome (corda) - O nome do cabeçalho.

· valor (corda) - O valor do cabeçalho.

Vejo HTTP.res_set_header ()

Essa função faz o mesmo trabalho que o código a seguir:

função fcn (txn)
TXN.http: req_del_header ("cabeçalho")
TXN.http: req_add_header ("cabeçalho", "valor")
final

HTTP.res_set_header (http, nome valor)
Esta variável substitui todas as ocorrências de todo o cabeçalho "nome", por apenas um contendo
O valor que".

Argumentos

· http (class_http) - O objeto http relacionado.

· nome (corda) - O nome do cabeçalho.

· valor (corda) - O valor do cabeçalho.

Vejo HTTP.req_rep_header ()

HTTP.req_rep_header (http, nome regex, substituir)
Corresponde à expressão regular em todas as ocorrências do campo de cabeçalho "nome" de acordo com
para "regex" e os substitui pelo argumento "substituir". O valor de substituição
pode conter referências anteriores como 1, 2, ... Esta função funciona com a solicitação.

Argumentos

· http (class_http) - O objeto http relacionado.

· nome (corda) - O nome do cabeçalho.

· regex (corda) - A expressão regular de correspondência.

· substituir (corda) - O valor de substituição.

Vejo HTTP.res_rep_header ()

HTTP.res_rep_header (http, nome regex, corda)
Corresponde à expressão regular em todas as ocorrências do campo de cabeçalho "nome" de acordo com
para "regex" e os substitui pelo argumento "substituir". O valor de substituição
pode conter referências anteriores como 1, 2, ... Esta função funciona com a solicitação.

Argumentos

· http (class_http) - O objeto http relacionado.

· nome (corda) - O nome do cabeçalho.

· regex (corda) - A expressão regular de correspondência.

· substituir (corda) - O valor de substituição.

Vejo HTTP.req_replace_header ()

HTTP.req_replace_value (http, nome regex, substituir)
Funciona como "HTTP.req_replace_header ()", exceto que corresponde ao regex contra
cada valor delimitado por vírgulas do campo de cabeçalho "nome" em vez de todo o
cabeçalho.

Argumentos

· http (class_http) - O objeto http relacionado.

· nome (corda) - O nome do cabeçalho.

· regex (corda) - A expressão regular de correspondência.

· substituir (corda) - O valor de substituição.

Vejo HTTP.req_replace_header ()

Vejo HTTP.res_replace_value ()

HTTP.res_replace_value (http, nome regex, substituir)
Funciona como "HTTP.res_replace_header ()", exceto que corresponde ao regex contra
cada valor delimitado por vírgulas do campo de cabeçalho "nome" em vez de todo o
cabeçalho.

Argumentos

· http (class_http) - O objeto http relacionado.

· nome (corda) - O nome do cabeçalho.

· regex (corda) - A expressão regular de correspondência.

· substituir (corda) - O valor de substituição.

Vejo HTTP.res_replace_header ()

Vejo HTTP.req_replace_value ()

HTTP.req_set_method (http, método)
Reescreve o método de solicitação com o parâmetro "método".

Argumentos

· http (class_http) - O objeto http relacionado.

· método (corda) - O novo método.

HTTP.req_set_path (http, Caminho)
Reescreve o caminho da solicitação com o parâmetro "caminho".

Argumentos

· http (class_http) - O objeto http relacionado.

· caminho (corda) - O novo caminho.

HTTP.req_set_query (http, consulta)
Reescreve a string de consulta da solicitação que aparece após o primeiro ponto de interrogação
("?") com o parâmetro "consulta".

Argumentos

· http (class_http) - O objeto http relacionado.

· pergunta (corda) - A nova consulta.

HTTP.req_set_uri (http, uri)
Reescreve o URI de solicitação com o parâmetro "uri".

Argumentos

· http (class_http) - O objeto http relacionado.

· Ligações (corda) - O novo uri.

HTTP.res_set_status (http, status)
Reescreve o código de status de resposta com o parâmetro "código". Observe que o motivo
é adaptado automaticamente ao novo código.

Argumentos

· http (class_http) - O objeto http relacionado.

· estado (número inteiro) - O novo código de status de resposta.

classe TXN ()
A classe txn contém todas as funções relativas à transação http ou tcp
(Observe que um fluxo tcp é o mesmo que uma transação tcp, mas uma transação HTTP
não é o mesmo que um fluxo tcp).

O uso desta classe permite recuperar dados das solicitações, alterá-los e
encaminhá-lo.

Todas as funções fornecidas por esta classe estão disponíveis no contexto
buscas de amostra e ações.

TXN.c

Devoluções
An Conversores classe.

Este atributo contém um objeto de classe Converters.

TXN.sc

Devoluções
An Conversores classe.

Este atributo contém um objeto de classe Converters. As funções deste objeto
retorna sempre uma string.

TXN.f

Devoluções
An Busca classe.

Este atributo contém um objeto de classe Fetches.

TXN.sf

Devoluções
An Busca classe.

Este atributo contém um objeto de classe Fetches. As funções deste objeto
retorna sempre uma string.

TXN.req

Devoluções
An Canal classe.

Este atributo contém um objeto de classe de canal para o buffer de solicitação.

TXN.res

Devoluções
An Canal classe.

Este atributo contém um objeto de classe de canal para o buffer de resposta.

TXN.http

Devoluções
An HTTP classe.

Este atributo contém um objeto de classe HTTP. Está disponível apenas se o proxy tiver
o "modo http" ativado.

TXN.log (TXN, nível de log, msg)
Esta função envia um log. O log é enviado, de acordo com o HAProxy
arquivo de configuração, no servidor syslog padrão se estiver configurado e no
stderr se for permitido.

Argumentos

· txn (class_txn) - O objeto txn da classe que contém os dados.

· nível de log (número inteiro) - O nível de log está associado à mensagem. É um
número entre 0 e 7.

· msg (corda) - O conteúdo do log.

Vejo core.emerg, core.alert, core.crit, core.err, core.warning, core.notice,
core.info, core.debug (definições de nível de log)

Vejo TXN.deflog

Vejo TXN.Depurar

Vejo TXN.Info

Vejo TXN.Aviso

Vejo Alerta TXN

TXN.deflog (TXN, msg)
Envia uma linha de log com o nível de log padrão para o proxy associado ao
transação.

Argumentos

· txn (class_txn) - O objeto txn da classe que contém os dados.

· msg (corda) - O conteúdo do log.

Vejo TXN.log

TXN.Debug (txn, msg)

Argumentos

· txn (class_txn) - O objeto txn da classe que contém os dados.

· msg (corda) - O conteúdo do log.

Vejo TXN.log

Faz o mesmo trabalho que:

função Debug (txn, msg)
TXN.log (txn, core.debug, msg)
final

TXN.Info (txn, msg)

Argumentos

· txn (class_txn) - O objeto txn da classe que contém os dados.

· msg (corda) - O conteúdo do log.

Vejo TXN.log

função Debug (txn, msg)
TXN.log (txn, core.info, msg)
final

TXN.Warning (txn, msg)

Argumentos

· txn (class_txn) - O objeto txn da classe que contém os dados.

· msg (corda) - O conteúdo do log.

Vejo TXN.log

função Debug (txn, msg)
TXN.log (txn, core.warning, msg)
final

TXN.Alert (txn, msg)

Argumentos

· txn (class_txn) - O objeto txn da classe que contém os dados.

· msg (corda) - O conteúdo do log.

Vejo TXN.log

função Debug (txn, msg)
TXN.log (txn, core.alert, msg)
final

TXN.get_priv (txn)
Retorne os dados Lua armazenados na transação atual (com o TXN.set_priv ())
função. Se nenhum dado for armazenado, ele retorna um valor nulo.

Argumentos

· txn (class_txn) - O objeto txn da classe que contém os dados.

Devoluções
os dados opacos armazenados anteriormente ou nulo se nada estiver disponível.

TXN.set_priv (txn, dados)
Armazene todos os dados na transação HAProxy atual. Esta ação substitui o antigo
dados armazenados.

Argumentos

· txn (class_txn) - O objeto txn da classe que contém os dados.

· dados, (opaco) - Os dados que são armazenados na transação.

TXN.set_var (TXN, há, valor)
Converte um tipo Lua em um tipo HAProxy e o armazena em uma variável .

Argumentos

· txn (class_txn) - O objeto txn da classe que contém os dados.

· var (corda) - O nome da variável de acordo com a variável HAProxy
sintaxe.

· valor (opaco) - Os dados armazenados na variável.

TXN.get_var (TXN, var)
Retorna dados armazenados no conversor de variáveis em tipo Lua.

Argumentos

· txn (class_txn) - O objeto txn da classe que contém os dados.

· var (corda) - O nome da variável de acordo com a variável HAProxy
sintaxe.

TXN.get_headers (txn)
Esta função retorna uma matriz de cabeçalhos.

Argumentos

· txn (class_txn) - O objeto txn da classe que contém os dados.

Devoluções
uma matriz de cabeçalhos.

TXN.done (txn)
Esta função termina o processamento da transação e da sessão associada.
Pode ser usado quando um erro crítico é detectado ou para encerrar o processamento após
alguns dados foram devolvidos ao cliente (por exemplo: um redirecionamento).

Argumentos

· txn (class_txn) - O objeto txn da classe que contém os dados.

TXN.set_loglevel (txn, nível de log)
É usado para alterar o nível de log da solicitação atual. O "nível de log" deve ser um
número inteiro entre 0 e 7.

Argumentos

· txn (class_txn) - O objeto txn da classe que contém os dados.

· nível de log (número inteiro) - O nível de log necessário. Esta variável pode ser uma das

Vejo essencial.

TXN.set_tos (txn, para% s)
É usado para definir o valor do campo TOS ou DSCP dos pacotes enviados ao cliente para o
valor passado em "tos" em plataformas que suportam isso.

Argumentos

· txn (class_txn) - O objeto txn da classe que contém os dados.

· tossir (número inteiro) - Os novos TOS os DSCP.

TXN.set_mark (txn, marca)
É usado para definir o Netfilter MARK em todos os pacotes enviados ao cliente para o valor
passou na "marca" nas plataformas que o suportam.

Argumentos

· txn (class_txn) - O objeto txn da classe que contém os dados.

· marca (número inteiro) - O valor da marca.

classe Soquete ()
Esta classe deve ser compatível com a classe Lua Socket. Apenas o 'cliente'
funções estão disponíveis. Consulte a documentação do Lua Socket:

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

Socket.close (socket)
Fecha um objeto TCP. O soquete interno usado pelo objeto é fechado e o local
o endereço ao qual o objeto estava vinculado é disponibilizado para outros aplicativos. Não
outras operações (exceto para chamadas adicionais para o método de fechamento) são permitidas em um
Soquete fechado.

Argumentos

· soquete (class_socket) - É o Soquete manipulado.

Nota: É importante fechar todos os soquetes usados ​​uma vez que não são necessários, pois, em
muitos sistemas, cada socket usa um descritor de arquivo, que é limitado ao sistema
Recursos. Objetos coletados de lixo são fechados automaticamente antes da destruição,
embora.

Socket.connect (socket, Morada[, porta])
Tenta conectar um objeto socket a um host remoto.

Em caso de erro, o método retorna nil seguido por uma string que descreve o erro.
Em caso de sucesso, o método retorna 1.

Argumentos

· soquete (class_socket) - É o Soquete manipulado.

· endereço (corda) - pode ser um endereço IP ou um nome de host. Veja abaixo para
Mais Informações.

· porta (número inteiro) - deve ser um número inteiro no intervalo [1..64K].

Devoluções
1 ou nulo.

uma extensão do campo de endereço permite usar a função connect () para se conectar
outro fluxo além do TCP. A sintaxe contendo um endereço simpleipv4 ou ipv6 é o
formato basicamente esperado. Este formato requer a porta.

Outro formato aceito é um caminho de socket como "/ socket / path", ele permite a conexão
a uma tomada. namespaces abstratos são suportados com o prefixo "abns @" e, finalmente,
um filedescriotr pode ser passado com o prefixo "fd @". O prefixo "ipv4 @", "ipv6 @"
e "unix @" também são suportados. A porta pode ser passada na string. A sintaxe
"127.0.0.1:1234" é válido. neste caso, o parâmetro porta é ignorado.

Socket.connect_ssl (socket, endereço, port)
Mesmo comportamento do soquete de função: conectar, mas usa SSL.

Argumentos

· soquete (class_socket) - É o Soquete manipulado.

Devoluções
1 ou nulo.

Socket.getpeername (socket)
Retorna informações sobre o lado remoto de um objeto cliente conectado.

Retorna uma string com o endereço IP do par, seguido pelo número da porta que
o par está usando para a conexão. Em caso de erro, o método retorna nulo.

Argumentos

· soquete (class_socket) - É o Soquete manipulado.

Devoluções
uma string contendo as informações do servidor.

Socket.getsockname (socket)
Retorna as informações de endereço local associadas ao objeto.

O método retorna uma string com o endereço IP local e um número com a porta. No
caso haja erro, o método retorna nulo.

Argumentos

· soquete (class_socket) - É o Soquete manipulado.

Devoluções
uma string contendo as informações do cliente.

Socket.receive (socket [, padronizar[, prefixo]])
Lê dados de um objeto cliente, de acordo com o padrão de leitura especificado. Padrões
seguir o formato de I / O do arquivo Lua, e a diferença de desempenho entre todos
padrões é insignificante.

Argumentos

· soquete (class_socket) - É o Soquete manipulado.

· de cinto de segurança (string | inteiro) - Descreva o que é necessário (veja abaixo).

· prefixo (corda) - Uma string que será o prefixo dos dados retornados.

Devoluções
uma string contendo os dados necessários ou nulo.

O padrão pode ser qualquer um dos seguintes:

·

`* a`: desde do soquete até do a conexão is fechadas. Não
tradução de fim de linha é executada;

·

`* l`: a linha of texto desde do Soquete A linha is rescindido by a
Caractere LF (ASCII 10), opcionalmente precedido por um caractere CR (ASCII 13).
Os caracteres CR e LF não são incluídos na linha retornada. Na verdade,
todos os caracteres CR são ignorados pelo padrão. Este é o padrão padrão.

·

número: causas do método para ler a especificada número of bytes desde do
Soquete. O prefixo é uma string opcional a ser concatenada no início
de quaisquer dados recebidos antes do retorno.

· vazio: Se o padrão for deixado em branco, a opção padrão é *l.

Se for bem-sucedido, o método retorna o padrão recebido. Em caso de erro, o
método retorna nil seguido por uma mensagem de erro que pode ser a string 'fechada' em
caso a conexão foi fechada antes que a transmissão fosse concluída ou a string
'tempo limite' caso tenha ocorrido um tempo limite durante a operação. Além disso, após o erro
mensagem, a função retorna o resultado parcial da transmissão.

Nota importante: esta função foi alterada severamente. Costumava suportar vários
padrões (mas nunca vi esse recurso usado) e agora não.
Os resultados parciais costumavam ser retornados da mesma forma que os resultados bem-sucedidos. Esse
O último recurso violou a ideia de que todas as funções deveriam retornar nulo em caso de erro. Assim
também foi alterado.

Socket.send (socket, dados[, começar[, fim]])
Envia dados por meio de objeto cliente.

Argumentos

· soquete (class_socket) - É o Soquete manipulado.

· dados, (corda) - Os dados que serão enviados.

· começo (número inteiro) - A posição inicial no buffer dos dados que irão
ser enviado.

· final (número inteiro) - A posição final no buffer dos dados que serão
enviei.

Devoluções
Veja abaixo.

Dados são a string a ser enviada. Os argumentos opcionais i e j funcionam exatamente como o
padrão string.sub função Lua para permitir a seleção de uma substring a ser enviada.

Se for bem-sucedido, o método retorna o índice do último byte dentro de [início, fim]
que foi enviado. Observe que, se o início for 1 ou ausente, este é efetivamente o
número total de bytes enviados. Em caso de erro, o método retorna nulo, seguido por
uma mensagem de erro, seguida pelo índice do último byte em [início, fim] que
foi enviado. Você pode querer tentar novamente a partir do byte seguinte. O erro
a mensagem pode ser 'fechada' caso a conexão tenha sido fechada antes da transmissão
foi concluído ou a string 'tempo limite' no caso de haver um tempo limite durante o
operação.

Observação: a saída não é armazenada em buffer. Para strings pequenas, é sempre melhor concatenar
em Lua (com o operador '..') e enviar o resultado em uma chamada em vez de
chamando o método várias vezes.

Socket.setoption (socket, opção[, valor])
Implementado apenas para compatibilidade, este cal não faz nada.

Socket.settimeout (socket, valor[, modo])
Altera os valores de tempo limite do objeto. Todas as operações de E / S estão bloqueando. Este
ou seja, qualquer chamada para os métodos send, receive e accept será bloqueada indefinidamente,
até que a operação seja concluída. O método settimeout define um limite na quantidade
de tempo que os métodos de E / S podem bloquear. Quando o tempo limite expirar, o afetado
métodos desistem e falham com um código de erro.

A quantidade de tempo de espera é especificada como o parâmetro de valor, em segundos.

Os modos de tempo limite são implementados por bot, o único tempo limite configurável é a inatividade
tempo de espera para completar o envio do buffer interno ou de espera para receber dados.

Argumentos

· soquete (class_socket) - É o Soquete manipulado.

· valor (número inteiro) - O valor do tempo limite.

classe Mapa()
Esta classe permite fazer algumas pesquisas em mapas HAProxy. Os mapas declarados podem ser
modificado durante o tempo de execução por meio do soquete de gerenciamento HAProxy.

default = "usa"

- Criar e carregar o mapa
geo = Map.new ("geo.map", Map.ip);

- Crie uma nova busca que retorne o país do usuário
core.register_fetches ("país", função (txn)
src local;
loc local;

src = txn.f: fhdr ("x-encaminhado para");
se (src == nil) então
src = txn.f: src ()
se (src == nil) então
retornar padrão;
final
final

- Executar pesquisa
loc = geo: lookup (src);

se (loc == nil) então
retornar padrão;
final

retornar local;
fim);

Map.int
Consulte o arquivo HAProxy configuration.txt, capítulo "Usando ACLs e buscando amostras"
ans subcapítulo "Noções básicas de ACL" para compreender este método de correspondência de padrões.

Map.ip Consulte o arquivo HAProxy configuration.txt, capítulo "Usando ACLs e buscando amostras"
ans subcapítulo "Noções básicas de ACL" para compreender este método de correspondência de padrões.

Map.str
Consulte o arquivo HAProxy configuration.txt, capítulo "Usando ACLs e buscando amostras"
ans subcapítulo "Noções básicas de ACL" para compreender este método de correspondência de padrões.

Map.beg
Consulte o arquivo HAProxy configuration.txt, capítulo "Usando ACLs e buscando amostras"
ans subcapítulo "Noções básicas de ACL" para compreender este método de correspondência de padrões.

Map.sub
Consulte o arquivo HAProxy configuration.txt, capítulo "Usando ACLs e buscando amostras"
ans subcapítulo "Noções básicas de ACL" para compreender este método de correspondência de padrões.

Map.dir
Consulte o arquivo HAProxy configuration.txt, capítulo "Usando ACLs e buscando amostras"
ans subcapítulo "Noções básicas de ACL" para compreender este método de correspondência de padrões.

Map.dom
Consulte o arquivo HAProxy configuration.txt, capítulo "Usando ACLs e buscando amostras"
ans subcapítulo "Noções básicas de ACL" para compreender este método de correspondência de padrões.

Map.end
Consulte o arquivo HAProxy configuration.txt, capítulo "Usando ACLs e buscando amostras"
ans subcapítulo "Noções básicas de ACL" para compreender este método de correspondência de padrões.

Map.reg
Consulte o arquivo HAProxy configuration.txt, capítulo "Usando ACLs e buscando amostras"
ans subcapítulo "Noções básicas de ACL" para compreender este método de correspondência de padrões.

Map.new (arquivo, método)
Cria e carrega um mapa.

Argumentos

· filete (corda) - É o arquivo que contém o mapa.

· método (número inteiro) - É o método de correspondência de padrão de mapa. Veja os atributos
da classe Map.

Devoluções
um objeto de mapa de classe.

Vejo Os atributos do mapa.

Map.lookup (mapa, str)
Faça uma pesquisa em um mapa.

Argumentos

· mapa, (class_map) - É o objeto da classe Map.

· str (corda) - É a string usada como chave.

Devoluções
uma string contendo o resultado ou nulo se não houver correspondência.

Map.slookup (mapa, str)
Faça uma pesquisa em um mapa.

Argumentos

· mapa, (class_map) - É o objeto da classe Map.

· str (corda) - É a string usada como chave.

Devoluções
uma string contendo o resultado ou uma string vazia se não houver correspondência.

classe AppletHTTP ()
Esta classe é usada com miniaplicativos que requerem o modo 'http'. O miniaplicativo http pode
ser registrado com o core.register_service () função. Eles são usados ​​para
processando uma solicitação http como um servidor atrás do HAProxy.

Este é um exemplo de código hello world:

core.register_service ("hello-world", "http", função (miniaplicativo)
resposta local = "Olá, mundo!"
miniaplicativo:set_status(200)
miniaplicativo: add_header ("content-length", string.len (resposta))
applet: add_header ("content-type", "text / plain")
miniaplicativo: start_response ()
miniaplicativo: enviar (resposta)
fim)

AppletHTTP.c

Devoluções
A Conversores classe

Este atributo contém um objeto de classe Converters.

AppletHTTP.sc

Devoluções
A Conversores classe

Este atributo contém um objeto de classe Converters. As funções deste objeto
retorna sempre uma string.

AppletHTTP.f

Devoluções
A Busca classe

Este atributo contém um objeto de classe Fetches. Observe que a execução do miniaplicativo
local não pode acessar uma transação HTTP HAProxy core válida, portanto, alguns
fecthes relacionadas aos valores dependentes de HTTP (hdr, path, ...) não estão disponíveis.

AppletHTTP.sf

Devoluções
A Busca classe

Este atributo contém um objeto de classe Fetches. As funções deste objeto
retorna sempre uma string. Observe que o local de execução do miniaplicativo não pode acessar um
transação HTTP HAProxy core válida, portanto, alguns exemplos de dados relacionados ao HTTP
valores dependentes (hdr, caminho, ...) não estão disponíveis.

AppletHTTP.method

Devoluções
corda

O método de atributo retorna uma string contendo o método HTTP.

AppletHTTP.version

Devoluções
corda

O atributo version retorna uma string contendo a versão do pedido HTTP.

AppletHTTP.path

Devoluções
corda

O caminho do atributo retorna uma string contendo o caminho do pedido HTTP.

AppletHTTP.qs

Devoluções
corda

O atributo qs retorna uma string contendo a string de consulta da solicitação HTTP.

AppletHTTP.length

Devoluções
número inteiro

O comprimento do atributo retorna um inteiro contendo o comprimento do corpo HTTP.

AppletHTTP.headers

Devoluções
ordem

Os cabeçalhos de atributo retornam uma matriz contendo os cabeçalhos HTTP. O cabeçalho
os nomes estão sempre em minúsculas. Como o nome do cabeçalho pode ser encontrado em mais de
uma vez em cada solicitação, o valor é indexado com 0 como primeiro valor de índice. A matriz
tem este formulário:

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

AppletHTTP.headers ["host"] [0] = "www.test.com"
AppletHTTP.headers ["aceitar"] [0] = "áudio / básico q = 1"
AppletHTTP.headers ["aceitar"] [1] = "audio / *, q = 0.2"
AppletHTTP.headers ["aceitar"] [2] = "* / *, q = 0.1"

AppletHTTP.headers
Contém uma matriz contendo todos os cabeçalhos de solicitação.

AppletHTTP.set_status (applet, código)
Esta função define o código de status HTTP para a resposta. Os códigos permitidos são de
100 para 599.

Argumentos

· applet (class_AppletHTTP) -- Um AppletHTTP classe

· código (número inteiro) - o código de status retornado ao cliente.

AppletHTTP.add_header (applet, nome valor)
Esta função adiciona um cabeçalho à resposta. Os cabeçalhos duplicados não são recolhidos.
O cabeçalho especial Comprimento do conteúdo é usado para determinar o comprimento da resposta. Se isso
não existe, um codificação de transferência: em pedaços está definido, e toda a escrita da função
AppletHTTP: send () tornar-se um pedaço.

Argumentos

· applet (class_AppletHTTP) -- Um AppletHTTP classe

· nome (corda) - o nome do cabeçalho

· valor (corda) - o valor do cabeçalho

AppletHTTP.start_response (applet)
Esta função indica ao mecanismo HTTP que ele pode processar e enviar o
cabeçalhos de resposta. Depois de chamado, não podemos adicionar cabeçalhos à resposta; Nós
não pode usar o AppletHTTP: send () função se o AppletHTTP: start_response () não é
chamado.

Argumentos

· applet (class_AppletHTTP) -- Um AppletHTTP classe

AppletHTTP.getline (miniaplicativo)
Esta função retorna uma string contendo uma linha do corpo http. Se os dados
retornado não contém um final '\ n' é assumido que é o último dado disponível
antes do final do fluxo.

Argumentos

· applet (class_AppletHTTP) -- Um AppletHTTP classe

Devoluções
uma linha. A string pode estar vazia se chegarmos ao final do fluxo.

AppletHTTP.receive (applet [, Tamanho])
Lê dados do corpo HTTP, de acordo com a leitura especificada tamanho. Se o tamanho is
faltando, a função tenta ler todo o conteúdo do stream até o final. Se
do tamanho é maior que o corpo http, ele retorna a quantidade de dados disponível.

Argumentos

· applet (class_AppletHTTP) -- Um AppletHTTP classe

· tamanho (número inteiro) - o tamanho de leitura necessário.

Devoluções
sempre retornar uma string, a string pode estar vazia se a conexão for fechada.

AppletHTTP.send (applet, msg)
Enviar a mensagem msg no corpo da solicitação http.

Argumentos

· applet (class_AppletHTTP) -- Um AppletHTTP classe

· msg (corda) - a mensagem a ser enviada.

classe AppletTCP ()
Esta classe é usada com miniaplicativos que requerem o modo 'tcp'. O miniaplicativo tcp pode ser
registrado com o core.register_service () função. Eles são usados ​​para processamento
um fluxo tcp como um servidor atrás do HAProxy.

Applet TCP.c

Devoluções
A Conversores classe

Este atributo contém um objeto de classe Converters.

Applet TCP.sc

Devoluções
A Conversores classe

Este atributo contém um objeto de classe Converters. As funções deste objeto
retorna sempre uma string.

Applet TCP.f

Devoluções
A Busca classe

Este atributo contém um objeto de classe Fetches.

Applet TCP.sf

Devoluções
A Busca classe

Este atributo contém um objeto de classe Fetches.

AppletTCP.getline (applet)
Esta função retorna uma string contendo uma linha do stream. Se os dados
retornado não contém um final '\ n' é assumido que é o último dado disponível
antes do final do fluxo.

Argumentos

· applet (class_Applet TCP) -- Um Applet TCP classe

Devoluções
uma linha. A string pode estar vazia se chegarmos ao final do fluxo.

AppletTCP.receive (applet [, Tamanho])
Lê dados do fluxo TCP, de acordo com a leitura especificada tamanho. Se o tamanho
está faltando, a função tenta ler todo o conteúdo do stream até o final.

Argumentos

· applet (class_Applet TCP) -- Um Applet TCP classe

· tamanho (número inteiro) - o tamanho de leitura necessário.

Devoluções
sempre retornar uma string, a string pode estar vazia se a conexão for fechada.

AppletTCP.send (appletmsg)
Envie a mensagem no stream.

Argumentos

· applet (class_Applet TCP) -- Um Applet TCP classe

· msg (corda) - a mensagem a ser enviada.

Muitas bibliotecas lua úteis podem ser encontradas aqui:

· https://lua-toolbox.com/

Acesso Redis:

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

Este é um exemplo sobre o uso da biblioteca Redis com HAProxy. Observe que cada chamada
de qualquer função desta biblioteca pode lançar um erro se a conexão de soquete falhar.

- carregue a biblioteca redis
redis local = requer ("redis");

função do_something (txn)

- criar e conectar um novo soquete tcp
tcp local = core.tcp ();
tcp:settimeout(1);
tcp: conectar ("127.0.0.1", 6379);

- use a biblioteca redis com este novo soquete
cliente local = redis.connect ({socket = tcp});
cliente: ping ();

final

OpenSSL:

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

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

Use haproxy-lua online usando serviços onworks.net


Ad


Ad