İngilizceFransızcaİspanyolca

Ad


OnWorks favicon'u

haproxy-lua - Bulutta Çevrimiçi

Haproxy-lua'yı Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü üzerinden OnWorks ücretsiz barındırma sağlayıcısında çalıştırın

Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü gibi birden fazla ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen haproxy-lua komutudur.

Program:

ADI


haproxy-lua - haproxy-lua Dokümantasyon

HAPROKSİ AY KOŞU BAĞLAMLAR


HAProxy'de yürütülen Lua kodu 2 ana modda işlenebilir. Birincisi,
başlatma kipve ikincisi runtime kip.

· İçinde başlatma kip, DNS çözümlerini gerçekleştirebiliriz, ancak soket G/Ç gerçekleştiremiyoruz.
Bu başlatma modunda, HAProxy, Lua'nın yürütülmesi sırasında hala bloke edilmiştir.
programı.

· İçinde runtime kip, DNS çözümlerini yapamıyoruz ama soketleri kullanabiliriz. bu
Lua kodunun yürütülmesi, isteklerin işlenmesiyle çoğullanır, bu nedenle Lua kodu
engellemede çalışıyor gibi görünüyor, ancak durum böyle değil.

Lua kodu bir veya daha fazla dosyaya yüklenir. Bu dosyalar ana kodu ve işlevleri içerir.
Lua'nın 6 yürütme bağlamı var.

1. Lua dosyası vücut bağlam. Lua dosyasının yüklenmesi sırasında yürütülür.
HAProxy [küresel] yönerge ile bölüm lua-yük. Başlatmada yürütülür
modu. Bu bölüm, HAProxy'de Lua bağlamalarını yapılandırmak için kullanılır.

2. Lua init bağlam. HAProxy'den hemen sonra yürütülen bir Lua işlevidir.
yapılandırma ayrıştırma Yürütme, başlatma modunda. Bu bağlamda
HAProxy ortamı zaten başlatıldı. Yapılandırmayı kontrol etmek yararlıdır veya
soket bağlantılarını veya görevlerini başlatma. Bu işlevler vücutta bildirilir
Lua işleviyle bağlam core.register_init(). Fonksiyonun prototipi bir
dönüş değeri olmayan ve parametresiz basit fonksiyon, bunun gibi: işlev fcn().

3. Lua görev bağlam. HAProxy'nin başlatılmasından sonra yürütülen bir Lua işlevidir.
zamanlayıcı ve Lua işleviyle görevin bildirilmesinden hemen sonra
core.register_task(). Bu bağlam, trafik işleme ile eşzamanlı olabilir. Bu
çalışma zamanı modunda yürütülür. Fonksiyonun prototipi, basit bir fonksiyondur.
dönüş değeri ve parametresiz, bunun gibi: işlev fcn().

4. aksiyon bağlam. Koşullu olarak yürütülen bir Lua işlevidir. Bu eylemler
Lua direktifleri tarafından kayıtlı "core.register_action()". Lua'nın prototipi
çağrılan işlev, hiçbir şey döndürmeyen ve nesnesini alan bir işlevdir.
giriş olarak TXN sınıfı. işlev fcn(txn).

5. örnek getirme bağlam. Bu işlev, giriş argümanı olarak bir TXN nesnesi alır ve
bir dize döndürür. Bu tür işlevler herhangi bir engelleme işlevini yürütemez. Onlar
bazı orijinal HAProxy örnek getirmelerini toplamak ve sonucu döndürmek için kullanışlıdır.
Fonksiyonun prototipi, işlev dizi fcn(txn). Bu işlevler şunlar olabilir:
Lua işleviyle kayıtlı core.register_fetches(). Bildirilen her örnek getirme
"lua" dizesiyle önek.

NOT: Bu işlevin orijinal dosyada gerekli verileri bulamaması mümkündür.
HAProxy numune getirir, bu durumda sonucu döndüremez. Bu dava henüz
destekli

6. Dönüştürücü bağlam. Girdi olarak bir dize alan ve geri dönen bir Lua işlevidir.
çıktı olarak başka bir dize. Bu tür işlevler durumsuzdur, erişemez
herhangi bir bağlam. Herhangi bir engelleme işlevi yürütmezler. Çağrı prototipi işlev
dizi fcn(dize). Bu işlev Lua işleviyle kaydedilebilir
core.register_converters(). Bildirilen her dönüştürücünün önüne "lua" dizesi getirilir.

HAPROKSİ AY MERHABA DÜNYA


HAProxy yapılandırma dosyası (merhaba_world.conf):

global
lua yükleme hello_world.lua

proxy dinle
127.0.0.1:10001'i bağla
tcp-istek inceleme-gecikmesi 1s
tcp-istek içeriği kullanım hizmeti lua.hello_world

HAProxy Lua dosyası (merhaba_world.lua):

core.register_service("merhaba_dünya", "tcp", işlev(uygulama)
applet:send("merhaba dünya\n")
son)

Bu yapılandırmayı test etmek için HAProxy nasıl başlatılır:

./haproxy -f merhaba_world.conf

Diğer terminalde telnet ile test edebilirsiniz:

#:~ telnet 127.0.0.1 10001
merhaba dünya

sınıf çekirdek()
"Çekirdek" sınıfı, tüm HAProxy çekirdek işlevlerini içerir. Bu işlevler yararlıdır
yürütme akışını kontrol etmek, kancaları kaydetmek, küresel haritaları manipüle etmek için
veya ACL, ...

"core" sınıfı temel olarak HAProxy ile sağlanır. Numara gerektirir hat için gereklidir
bu işlevi kullanır.

"Çekirdek" sınıfı statiktir, bu türden yeni bir nesne oluşturmak mümkün değildir.

çekirdek. ortaya çıkmak

Geri dönüşler
tamsayı

Bu öznitelik bir tamsayıdır, "acil durum" günlük düzeyinin değerini içerir.
(0).

çekirdek.alert

Geri dönüşler
tamsayı

Bu öznitelik bir tamsayıdır, günlük düzeyi "alert" (1) değerini içerir.

çekirdek.kritik

Geri dönüşler
tamsayı

Bu öznitelik bir tamsayıdır, "kritik" (2) günlük düzeyinin değerini içerir.

çekirdek.err

Geri dönüşler
tamsayı

Bu öznitelik bir tamsayıdır, loglevel "error" (3) değerini içerir.

çekirdek.uyarı

Geri dönüşler
tamsayı

Bu öznitelik bir tamsayıdır, loglevel "uyarı" (4) değerini içerir.

çekirdek.notice

Geri dönüşler
tamsayı

Bu öznitelik bir tamsayıdır, loglevel "notice" (5) değerini içerir.

çekirdek.bilgi

Geri dönüşler
tamsayı

Bu öznitelik bir tamsayıdır, loglevel "info" (6) değerini içerir.

çekirdek.debug

Geri dönüşler
tamsayı

Bu nitelik bir tamsayıdır, loglevel "debug" (7) değerini içerir.

core.log(günlük düzeyi, mesaj)
bağlam: gövde, başlatma, görev, eylem, örnek getirme, dönüştürücü

Bu işlev bir günlük gönderir. Günlük, HAProxy'ye göre gönderilir
yapılandırma dosyası, yapılandırılmışsa varsayılan sistem günlüğü sunucusunda ve
izin veriliyorsa stderr.

Argümanlar

· günlük seviyesi (tamsayı) -- Mesajla ilişkili günlük düzeyi mi? Bu bir
0 ile 7 arasında bir sayı.

· msg (dizi) -- Günlük içeriği.

Yerimizi core.emerg, core.alert, core.crit, core.err, core.warning, core.notice,
core.info, core.debug (günlük düzeyi tanımları)

Yerimizi kod.Hata ayıklama

Yerimizi çekirdek.Bilgi

Yerimizi çekirdek.Uyarı

Yerimizi çekirdek.Uyarı

çekirdek.Hata ayıklama(mesaj)
bağlam: gövde, başlatma, görev, eylem, örnek getirme, dönüştürücü

Argümanlar

· msg (dizi) -- Günlük içeriği.

Yerimizi log

Şununla aynı işi yapar:

işlev Debug(mesaj)
core.log(core.debug, mesaj)
son

çekirdek.Bilgi(mesaj)
bağlam: gövde, başlatma, görev, eylem, örnek getirme, dönüştürücü

Argümanlar

· msg (dizi) -- Günlük içeriği.

Yerimizi log

işlev Bilgi(mesaj)
core.log(core.info, mesaj)
son

çekirdek.Uyarı(mesaj)
bağlam: gövde, başlatma, görev, eylem, örnek getirme, dönüştürücü

Argümanlar

· msg (dizi) -- Günlük içeriği.

Yerimizi log

işlev uyarı(mesaj)
core.log(çekirdek.uyarı, mesaj)
son

çekirdek.Uyarı(mesaj)
bağlam: gövde, başlatma, görev, eylem, örnek getirme, dönüştürücü

Argümanlar

· msg (dizi) -- Günlük içeriği.

Yerimizi log

işlev Uyarmak(mesaj)
core.log(core.uyarı, mesaj)
son

core.add_acl(dosya adı, anahtarı)
bağlam: başlatma, görev, eylem, örnek getirme, dönüştürücü

ACL'yi ekleyin anahtar dosya tarafından başvurulan ACL'ler listesinde Dosya.

Argümanlar

· Dosya (dizi) -- ACL girişlerine başvuran dosya adı.

· anahtar (dizi) -- eklenecek olan anahtar.

core.del_acl(dosya adı, anahtarı)
bağlam: başlatma, görev, eylem, örnek getirme, dönüştürücü

Anahtar tarafından başvurulan ACL girişini silin anahtar tarafından başvurulan ACL'ler listesinde
Dosya.

Argümanlar

· Dosya (dizi) -- ACL girişlerine başvuran dosya adı.

· anahtar (dizi) -- silinecek olan anahtar.

core.del_map(dosya adı, anahtarı)
bağlam: başlatma, görev, eylem, örnek getirme, dönüştürücü

Referans verilen haritalar listesinde belirtilen anahtarla indekslenen harita girişini silin
dosya adına göre.

Argümanlar

· Dosya (dizi) -- harita girişlerine başvuran dosya adı.

· anahtar (dizi) -- silinecek olan anahtar.

core.msleep(milisaniye)
bağlam: gövde, başlangıç, görev, eylem

The çekirdek.msleep() Lua yürütmesini belirtilen milisaniyeler arasında durdurur.

Argümanlar

· milisaniye (tamsayı) -- gerekli milisaniye.

core.register_action(isim, hareketler, işlev)
bağlam: vücut

Eylem olarak yürütülen bir Lua işlevini kaydedin. Tüm kayıtlı eylemler kullanılabilir
HAProxy'de "lua" ön ekiyle. Bir eylem, girdi olarak bir TXN nesne sınıfı alır.

Argümanlar

· isim (dizi) -- dönüştürücünün adıdır.

· eylemler (tablo) -- HAProxy eylemlerini tanımlayan bir dize tablosudur.
kayıt olmak istiyorum. Beklenen eylemler 'tcp-req', 'tcp-res',
'http-req' veya 'http-res'.

· func (işlev) -- dönüştürücü olarak çalışmak üzere çağrılan Lua işlevidir.

Argüman olarak kullanılan Lua fonksiyonunun prototipi:

işlev(txn)

·

teşekkürler (TXN sınıf): Re-Tweet is a TXN nesne Kullanılmış için manipulasyon the
mevcut istek veya TCP akışı.

Burada, bir eylem kaydı örneği. eylem juste içinde bir 'Merhaba dünya' göndermek
kütükler.

core.register_action("merhaba-dünya", { "tcp-req", "http-req" }, function(txn)
txn:Bilgi("Merhaba dünya")
son)
Bu örnek kod, HAproxy yapılandırmasında şu şekilde kullanılır:

ön uç tcp_frt
mod tcp
tcp-istek içeriği lua.hello-world

ön uç http_frt
mod http
http-request lua.hello-world

core.register_converters(ad, işlev)
bağlam: vücut

Dönüştürücü olarak yürütülen bir Lua işlevini kaydedin. Tüm kayıtlı dönüştürücüler
HAProxy'de "lua" ön ekiyle kullanılır. Bir dönüştürücü girdi olarak bir dize alır ve
çıktı olarak bir dize döndürür. Kayıtlı fonksiyon, 9'a kadar değer alabilir.
parametre. Tüm değerler dizelerdir.

Argümanlar

· isim (dizi) -- dönüştürücünün adıdır.

· func (işlev) -- dönüştürücü olarak çalışmak üzere çağrılan Lua işlevidir.

Argüman olarak kullanılan Lua fonksiyonunun prototipi:

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

· str (dizi): bu, dizeye otomatik olarak dönüştürülen giriş değeridir.

· p1 .. p5 (dizi): bu, haroxy'de bildirilen dize argümanlarının bir listesidir.
yapılandırma dosyası. Argüman sayısı 5'i geçmez. Sıra ve
bunların doğası geleneksel olarak geliştirici tarafından seçilir.

core.register_fetches(isim, işlev)
bağlam: vücut

Örnek getirme olarak yürütülen bir Lua işlevini kaydedin. Tüm kayıtlı numune alımları
HAProxy'de "lua" ön ekiyle kullanılabilir. Bir Lua örneği getirme, bir dize döndürür
çıktı olarak. Kayıtlı fonksiyon parametre olarak 9'a kadar değer alabilir. Hepsi
değer dizelerdir.

Argümanlar

· isim (dizi) -- dönüştürücünün adıdır.

· func (işlev) -- örnek getirme olarak çalışmak üzere çağrılan Lua işlevidir.

Argüman olarak kullanılan Lua fonksiyonunun prototipi:

dize işlevi(txn, [p1 [, p2 [, ... [, p5]]]])

· teşekkürler (TXN sınıf): bu, geçerli istekle ilişkili txn nesnesidir.

· p1 .. p5 (dizi): bu, haroxy'de bildirilen dize argümanlarının bir listesidir.
yapılandırma dosyası. Argüman sayısı 5'i geçmez. Sıra ve
bunların doğası geleneksel olarak geliştirici tarafından seçilir.

· Geri dönüşler: Bazı verileri içeren bir dize, değer şimdi döndürülemezse sıfır.

lua örnek kod:

core.register_fetches("merhaba", function(txn)
geri "merhaba"
son)
HAProxy örnek yapılandırması:

ön uç örneği
http-isteği yönlendirme konumu /%[lua.hello]

core.register_service(ad, modunda işlev)
bağlam: vücut

Hizmet olarak yürütülen bir Lua işlevini kaydedin. Tüm kayıtlı hizmet olabilir
HAProxy'de "lua" ön ekiyle kullanılır. Bir hizmet girdi olarak bir nesne sınıfı alır
gerekli moda göre.

Argümanlar

· isim (dizi) -- dönüştürücünün adıdır.

· kip (dizi) -- gerekli modu açıklayan dizedir. Yalnızca 'tcp' veya
'http'ye izin verilir.

· func (işlev) -- dönüştürücü olarak çalışmak üzere çağrılan Lua işlevidir.

Argüman olarak kullanılan Lua fonksiyonunun prototipi:

işlev (uygulama)

· uygulaması uygulaması olacak AppletTCP sınıf ya da AppleHTTP sınıf. tipine göre değişir
kayıtlı uygulama. için 'http' değeriyle kayıtlı bir uygulama kip
parametre alacak AppleHTTP sınıf. Eğer kip değer 'tcp' ise, uygulama
Alır AppletTCP sınıf.

uyarı: 'http' türündeki uygulamalar 'tcp-'den çağrılamaz.' kural kümeleri. Bir tek the 'http-'
kural kümeleri yetkilendirilmiştir, bu, bir HTTP uygulamasını çağırmanın mümkün olmadığı anlamına gelir.
tcp modunda proxy. 'tcp' tipi uygulamalar herhangi bir yerden çağrılabilir.

Burada bir hizmet kaydı örneği. hizmet sadece bir 'Merhaba dünya' gönderir
http yanıtı.

core.register_service("merhaba dünya", "http", işlev(uygulama)
yerel yanıt = "Merhaba Dünya !"
uygulama:set_status(200)
applet:add_header("içerik uzunluğu", string.len(yanıt))
applet:add_header("içerik türü", "metin/düz")
uygulama:start_response()
uygulama:gönder(yanıt)
son)
Bu örnek kod, HAproxy yapılandırmasında şu şekilde kullanılır:

ön uç örneği
http-istek kullanım hizmeti lua.hello-world

core.register_init(işlev)
bağlam: vücut

Yapılandırma ayrıştırmasından sonra yürütülen bir işlevi kaydedin. Bu yararlıdır
herhangi bir parametreyi kontrol edin.

Argümanlar

· func (işlev) -- başlatıcı olarak çalışmak üzere çağrılan Lua işlevidir.

Argüman olarak kullanılan Lua fonksiyonunun prototipi:

işlev()
Girdi almaz ve çıktı beklenmez.

core.register_task(işlev)
bağlam: gövde, başlatma, görev, eylem, örnek getirme, dönüştürücü

Kayıt olun ve bağımsız göreve başlayın. HAProxy ana
zamanlayıcı başlar. Örneğin, bu tür görevler karmaşık işlemleri gerçekleştirmek için yürütülebilir.
Sağlık kontrolleri.

Argümanlar

· func (işlev) -- başlatıcı olarak çalışmak üzere çağrılan Lua işlevidir.

Argüman olarak kullanılan Lua fonksiyonunun prototipi:

işlev()
Girdi almaz ve çıktı beklenmez.

core.set_nice(güzel)
bağlam: görev, eylem, örnek alma, dönüştürücü

Mevcut görevin veya mevcut oturumun güzelliğini değiştirin.

Argümanlar

· güzel (tamsayı) -- güzel değer, -1024 ile 1024 arasında olmalıdır.

core.set_map(dosya adı, anahtar, değer, kıymet)
bağlam: başlatma, görev, eylem, örnek getirme, dönüştürücü

değeri ayarla değer anahtarla ilişkili anahtar tarafından atıfta bulunulan haritada Dosya.

Argümanlar

· Dosya (dizi) -- Harita referansı

· anahtar (dizi) -- ayarlamak veya değiştirmek için anahtar

· değer (dizi) -- ilişkili değer

çekirdek.uyku(int saniye)
bağlam: gövde, başlangıç, görev, eylem

The çekirdek.uyku() işlevler, belirtilen saniyeler arasında Lua yürütmesini durdurur.

Argümanlar

· saniye (tamsayı) -- gerekli saniye.

çekirdek.tcp()
bağlam: init, görev, eylem

Bu işlev, bir nesnenin yeni bir nesnesini döndürür. soket sınıf.

Geri dönüşler
A Soket sınıf nesne.

core.done(veri)
bağlam: gövde, başlatma, görev, eylem, örnek getirme, dönüştürücü

Argümanlar

· veri (herhangi) -- Arayan için bazı verileri döndürün. ile yararlıdır
örnek getirme ve örnek dönüştürücüler.

Mevcut Lua yürütmesini hemen durdurur ve arayan kişiye geri döner.
örnek getirme, dönüştürücü veya eylem ve belirtilen değeri döndürür (yoksayılır)
eylemler için). LUA işlemi işini bitirdiğinde ve vermek istediğinde kullanılır.
kalan kodu çalıştırmadan kontrolü HAProxy'ye geri alın. olarak görülebilir
çok seviyeli bir "dönüş".

çekirdek.verim()
bağlam: görev, eylem, örnek alma, dönüştürücü

HAProxy zamanlayıcıda eli geri verin. LUA işlenirken kullanılır.
çok fazla işlem süresi tüketir.

sınıf Getirilen()
Bu sınıf çok sayıda dahili HAProxy örnek getirme içerir. HAProxy'ye bakın
Kullanımı hakkında daha fazla bilgi için "configuration.txt" belgelerine bakın. onlar
7.3.2 ila 7.3.6 arasındaki bölümler.

uyarı bazı örnek getirmeler bazı bağlamlarda mevcut değildir. Bu sınırlamalar
yararlı olduklarında bu belgede belirtilmiştir.

Yerimizi TXN.f

Yerimizi TXN.sf

Getirmeler şunlar için yararlıdır:

· sistem saatini al,

· ortam değişkenini almak,

· rasgele sayılar almak,

· Kuyruktaki kullanıcı sayısı veya kullanıcı sayısı gibi bilinen arka uç durumu
kurulan bağlantılar,

· ip kaynağı veya hedef gibi müşteri bilgileri,

· çubuk masalarla uğraşmak,

· Kurulan SSL bilgileri,

· Başlıklar veya yöntem gibi HTTP bilgileri.

işlev eylemi(txn)
-- Kaynak IP alın
yerel istemci ipi = txn.f:src()
son

sınıf Dönüştürücüler()
Bu sınıf çok sayıda dahili HAProxy örnek dönüştürücü içerir. HAProxy'ye bakın
kullanımı hakkında daha fazla bilgi için "configuration.txt" belgelerine bakın. Bu
bölüm 7.3.1.

Yerimizi TXN.c

Yerimizi TXN.sc

Dönüştürücüler durumsal dönüşüm sağlar. Şunlar için yararlıdırlar:

· girdiyi base64'e dönüştürmek,

· girdi dizgisine karma uygulama (djb2, crc32, sdbm, wt6),

· biçim tarihi,

· json kaçış,

· iki listeyi karşılaştırarak tercih edilen dilin çıkarılması,

· alt veya üst karakterlere çevirin,

· sopa tabloları ile anlaşma.

sınıf Kanal()
HAProxy, isteklerin işlenmesi için iki arabellek kullanır. İlki kullanılır
istek verileriyle (istemciden sunucuya) ve ikincisi için kullanılır
yanıt verileri (sunucudan istemciye).

Her arabellek iki tür veri içerir. İlk tip bekleyen gelen veridir.
bir işleme için. İkinci kısım, önceden işlenmiş giden verilerdir. Genellikle,
gelen veriler giden veri olarak etiketlendikten sonra işlenir ve son olarak
gönderildi. Aşağıdaki işlevler, bu verileri bir düzende işlemek için araçlar sağlar.
tampon eklendi.

Aşağıdaki şema, kanal sınıfı işlevinin uygulandığı yeri göstermektedir.

uyarı: İstek eyleminde yanıttan okumak mümkün değildir ve
yanıt eyleminde istek kanalı için okumak mümkün değil.
[resim]

Kanal.dup(kanal)
Bu işlev, tüm arabelleği içeren bir dize döndürür. veri değil
tampondan çıkarın ve daha sonra yeniden işlenebilir.

Tampon daha fazla veri alamazsa, bir 'nil' değeri döndürülür.

Argümanlar

· kanal (sınıf_kanalı) -- Manipüle edilen Kanal.

Geri dönüşler
mevcut tüm verileri veya sıfırı içeren bir dize.

Kanal.get(kanal)
Bu işlev, tüm arabelleği içeren bir dize döndürür. Veriler tüketildi
tampondan.

Tampon daha fazla veri alamazsa, bir 'nil' değeri döndürülür.

Argümanlar

· kanal (sınıf_kanalı) -- Manipüle edilen Kanal.

Geri dönüşler
mevcut tüm verileri veya sıfırı içeren bir dize.

Kanal.getline(kanal)
Bu işlev, arabelleğin ilk satırını içeren bir dize döndürür. Veri
tüketilir. Döndürülen veriler son bir 'n' içermiyorsa, varsayıldığından daha
arabellekteki son kullanılabilir veriler.

Tampon daha fazla veri alamazsa, bir 'nil' değeri döndürülür.

Argümanlar

· kanal (sınıf_kanalı) -- Manipüle edilen Kanal.

Geri dönüşler
kullanılabilir satırı veya sıfırı içeren bir dize.

Kanal.set(kanal, sicim)
Bu işlev, arabelleğin içeriğini dizeyle değiştirir. işlev döner
kopyalanan uzunluk, aksi takdirde -1 döndürür.

Bu fonksiyona sahip veri seti gönderilmez. HAProxy'nin sonunu bekliyorlar
işleme, böylece arabellek dolu olabilir.

Argümanlar

· kanal (sınıf_kanalı) -- Manipüle edilen Kanal.

· dizi (dizi) -- Gönderilecek veriler.

Geri dönüşler
kopyalanan bayt miktarını içeren bir tam sayı veya -1.

Channel.append(kanal, sicim)
Bu işlev, dizge bağımsız değişkenini arabelleğin içeriğine ekler. İşlev
kopyalanan uzunluğu döndürür, aksi takdirde -1 döndürür.

Bu fonksiyona sahip veri seti gönderilmez. HAProxy'nin sonunu bekliyorlar
işleme, böylece arabellek dolu olabilir.

Argümanlar

· kanal (sınıf_kanalı) -- Manipüle edilen Kanal.

· dizi (dizi) -- Gönderilecek veriler.

Geri dönüşler
kopyalanan bayt miktarını içeren bir tam sayı veya -1.

kanal.gönder(kanal, sicim)
Bu işlev, verilerin anında gönderilmesini gerektiriyordu. Bağlantı olmadığı sürece
kapatın, arabellek düzenli olarak temizlenir ve tüm dize gönderilebilir.

Argümanlar

· kanal (sınıf_kanalı) -- Manipüle edilen Kanal.

· dizi (dizi) -- Gönderilecek veriler.

Geri dönüşler
kopyalanan bayt miktarını içeren bir tam sayı veya -1.

Channel.get_in_length(kanal)
Bu işlev, arabelleğin giriş kısmının uzunluğunu döndürür.

Argümanlar

· kanal (sınıf_kanalı) -- Manipüle edilen Kanal.

Geri dönüşler
kullanılabilir bayt miktarını içeren bir tam sayı.

Channel.get_out_length(kanal)
Bu işlev, arabelleğin çıktı kısmının uzunluğunu döndürür.

Argümanlar

· kanal (sınıf_kanalı) -- Manipüle edilen Kanal.

Geri dönüşler
kullanılabilir bayt miktarını içeren bir tam sayı.

Kanal.ileri(kanal, dahili)
Bu işlev, tamponun giriş kısmından çıkış kısmına bayt aktarır.

Argümanlar

· kanal (sınıf_kanalı) -- Manipüle edilen Kanal.

· int (tamsayı) -- İletilecek veri miktarı.

sınıf HTTP()
Bu sınıf, tüm HTTP işleme işlevlerini içerir.

HTTP.req_get_headers(http)
Tüm istek başlıklarını içeren bir dizi döndürür.

Argümanlar

· http (sınıf_http) -- İlgili http nesnesi.

Geri dönüşler
başlık dizisi.

Yerimizi HTTP.res_get_headers()

Bu, döndürülen dizinin biçimidir:

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

yerel hdr = HTTP:req_get_headers()
hdr["host"][0] = "www.test.com"
hdr["kabul"][0] = "ses/temel q=1"
hdr["kabul"][1] = "ses/*, q=0.2"
hdr["kabul"][2] = "*/*, q=0.1"

HTTP.res_get_headers(http)
Tüm yanıt başlıklarını içeren bir dizi döndürür.

Argümanlar

· http (sınıf_http) -- İlgili http nesnesi.

Geri dönüşler
başlık dizisi.

Yerimizi HTTP.req_get_headers()

Bu, döndürülen dizinin biçimidir:

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

yerel hdr = HTTP:req_get_headers()
hdr["host"][0] = "www.test.com"
hdr["kabul"][0] = "ses/temel q=1"
hdr["kabul"][1] = "ses/*, q=0.2"
hdr["kabul"][2] = "*.*, q=0.1"

HTTP.req_add_header(http, , isim değer, kıymet)
Adı "name" ile belirtilen isteğe bir HTTP başlık alanı ekler ve
değeri "değer" ile tanımlanan.

Argümanlar

· http (sınıf_http) -- İlgili http nesnesi.

· isim (dizi) -- Başlık adı.

· değer (dizi) -- Başlık değeri.

Yerimizi HTTP.res_add_header()

HTTP.res_add_header(http, , isim değer, kıymet)
adı "name" ile belirtilen yanıtta bir HTTP başlık alanı ekler ve
değeri "değer" ile tanımlanan.

Argümanlar

· http (sınıf_http) -- İlgili http nesnesi.

· isim (dizi) -- Başlık adı.

· değer (dizi) -- Başlık değeri.

Yerimizi HTTP.req_add_header()

HTTP.req_del_header(http, ad)
Adı "name" ile belirtilen istekteki tüm HTTP başlık alanlarını kaldırır.

Argümanlar

· http (sınıf_http) -- İlgili http nesnesi.

· isim (dizi) -- Başlık adı.

Yerimizi HTTP.res_del_header()

HTTP.res_del_header(http, ad)
Adı "name" ile belirtilen yanıttaki tüm HTTP başlık alanlarını kaldırır.

Argümanlar

· http (sınıf_http) -- İlgili http nesnesi.

· isim (dizi) -- Başlık adı.

Yerimizi HTTP.req_del_header()

HTTP.req_set_header(http, , isim değer, kıymet)
Bu değişken, tüm "ad" başlığının tüm oluşumunu, yalnızca bir tane içeren ile değiştirir.
değer".

Argümanlar

· http (sınıf_http) -- İlgili http nesnesi.

· isim (dizi) -- Başlık adı.

· değer (dizi) -- Başlık değeri.

Yerimizi HTTP.res_set_header()

Bu işlev, aşağıdaki kodla aynı işi yapar:

fonksiyon fcn(txn)
TXN.http:req_del_header("başlık")
TXN.http:req_add_header("başlık", "değer")
son

HTTP.res_set_header(http, , isim değer, kıymet)
Bu değişken, tüm "ad" başlığının tüm oluşumunu, yalnızca bir tane içeren ile değiştirir.
değer".

Argümanlar

· http (sınıf_http) -- İlgili http nesnesi.

· isim (dizi) -- Başlık adı.

· değer (dizi) -- Başlık değeri.

Yerimizi HTTP.req_rep_header()

HTTP.req_rep_header(http, , isim normal ifade, yer değiştirmek)
"name" başlık alanının tüm oluşumlarındaki normal ifadeyi şuna göre eşleştirir:
"regex" olarak değiştirir ve bunları "değiştir" argümanıyla değiştirir. değiştirme değeri
1, 2, ... gibi geri referanslar içerebilir. Bu fonksiyon istek ile çalışır.

Argümanlar

· http (sınıf_http) -- İlgili http nesnesi.

· isim (dizi) -- Başlık adı.

· regex (dizi) -- Maç normal ifadesi.

· değiştirmek (dizi) -- Değiştirme değeri.

Yerimizi HTTP.res_rep_header()

HTTP.res_rep_header(http, , isim normal ifade, sicim)
"name" başlık alanının tüm oluşumlarındaki normal ifadeyi şuna göre eşleştirir:
"regex" olarak değiştirir ve bunları "değiştir" argümanıyla değiştirir. değiştirme değeri
1, 2, ... gibi geri referanslar içerebilir. Bu fonksiyon istek ile çalışır.

Argümanlar

· http (sınıf_http) -- İlgili http nesnesi.

· isim (dizi) -- Başlık adı.

· regex (dizi) -- Maç normal ifadesi.

· değiştirmek (dizi) -- Değiştirme değeri.

Yerimizi HTTP.req_replace_header()

HTTP.req_replace_value(http, , isim normal ifade, yer değiştirmek)
Normal ifadeyle eşleşmesi dışında "HTTP.req_replace_header()" gibi çalışır
başlık alanının tamamı yerine "ad"ın virgülle ayrılmış her değeri
başlık.

Argümanlar

· http (sınıf_http) -- İlgili http nesnesi.

· isim (dizi) -- Başlık adı.

· regex (dizi) -- Maç normal ifadesi.

· değiştirmek (dizi) -- Değiştirme değeri.

Yerimizi HTTP.req_replace_header()

Yerimizi HTTP.res_replace_value()

HTTP.res_replace_value(http, , isim normal ifade, yer değiştirmek)
Normal ifadeyle eşleşmesi dışında "HTTP.res_replace_header()" gibi çalışır
başlık alanının tamamı yerine "ad"ın virgülle ayrılmış her değeri
başlık.

Argümanlar

· http (sınıf_http) -- İlgili http nesnesi.

· isim (dizi) -- Başlık adı.

· regex (dizi) -- Maç normal ifadesi.

· değiştirmek (dizi) -- Değiştirme değeri.

Yerimizi HTTP.res_replace_header()

Yerimizi HTTP.req_replace_value()

HTTP.req_set_method(http, yöntem)
"method" parametresiyle istek yöntemini yeniden yazar.

Argümanlar

· http (sınıf_http) -- İlgili http nesnesi.

· yöntem (dizi) -- Yeni yöntem.

HTTP.req_set_path(http, yol)
"path" parametresiyle istek yolunu yeniden yazar.

Argümanlar

· http (sınıf_http) -- İlgili http nesnesi.

· yol (dizi) -- Yeni yol.

HTTP.req_set_query(http, sorgu)
İlk soru işaretinden sonra görünen isteğin sorgu dizesini yeniden yazar
("?") "sorgu" parametresiyle.

Argümanlar

· http (sınıf_http) -- İlgili http nesnesi.

· sorgu (dizi) -- Yeni sorgu.

HTTP.req_set_uri(http, uri)
"uri" parametresiyle istek URI'sini yeniden yazar.

Argümanlar

· http (sınıf_http) -- İlgili http nesnesi.

· Linkler (dizi) -- Yeni uri.

HTTP.res_set_status(http, durum)
Yanıt durum kodunu "kod" parametresiyle yeniden yazar. nedeni olduğunu unutmayın
otomatik olarak yeni koda uyarlanır.

Argümanlar

· http (sınıf_http) -- İlgili http nesnesi.

· durum (tamsayı) -- Yeni yanıt durum kodu.

sınıf TXN()
txn sınıfı, http veya tcp işlemiyle ilgili tüm işlevleri içerir.
(Bir tcp akışının bir tcp işlemiyle aynı olduğuna dikkat edin, ancak bir HTTP işlemi
tcp akışıyla aynı değildir).

Bu sınıfın kullanımı, isteklerden veri alınmasına, değiştirilmesine ve
ilet.

Bu sınıf tarafından sağlanan tüm işlevler bağlamda mevcuttur
numune getirme ve eylemler.

TXN.c

Geri dönüşler
An Dönüştürücüler sınıf.

Bu öznitelik, bir Converters sınıfı nesnesi içerir.

TXN.sc

Geri dönüşler
An Dönüştürücüler sınıf.

Bu öznitelik, bir Converters sınıfı nesnesi içerir. Bu nesnenin işlevleri
her zaman bir dize döndürür.

TXN.f

Geri dönüşler
An Getirilen sınıf.

Bu öznitelik, bir Getirme sınıfı nesnesi içerir.

TXN.sf

Geri dönüşler
An Getirilen sınıf.

Bu öznitelik, bir Getirme sınıfı nesnesi içerir. Bu nesnenin işlevleri
her zaman bir dize döndürür.

TXN.req

Geri dönüşler
An Telegram Kanal sınıf.

Bu öznitelik, istek arabelleği için bir kanal sınıfı nesnesi içerir.

TXN.res

Geri dönüşler
An Telegram Kanal sınıf.

Bu öznitelik, yanıt arabelleği için bir kanal sınıfı nesnesi içerir.

TXN.http

Geri dönüşler
An HTTP sınıf.

Bu öznitelik, bir HTTP sınıfı nesnesi içerir. Yalnızca proxy varsa kullanılabilir
"mod http" etkin.

TXN.log(TXN, günlük düzeyi, mesaj)
Bu işlev bir günlük gönderir. Günlük, HAProxy'ye göre gönderilir
yapılandırma dosyası, yapılandırılmışsa varsayılan sistem günlüğü sunucusunda ve
izin veriliyorsa stderr.

Argümanlar

· teşekkürler (sınıf_txn) -- Verileri içeren sınıf txn nesnesi.

· günlük seviyesi (tamsayı) -- Mesajla ilişkili günlük düzeyi mi? Bu bir
0 ile 7 arasında bir sayı.

· msg (dizi) -- Günlük içeriği.

Yerimizi core.emerg, core.alert, core.crit, core.err, core.warning, core.notice,
core.info, core.debug (günlük düzeyi tanımları)

Yerimizi TXN.deflog

Yerimizi TXN.Hata Ayıklama

Yerimizi TXN.Bilgi

Yerimizi TXN.Uyarı

Yerimizi TXN.Uyarı

TXN.deflog(TXN, mesaj)
İle ilişkili proxy için varsayılan günlük düzeyine sahip bir günlük satırı gönderir.
işlem.

Argümanlar

· teşekkürler (sınıf_txn) -- Verileri içeren sınıf txn nesnesi.

· msg (dizi) -- Günlük içeriği.

Yerimizi TXN.log

TXN.Debug(txn, mesaj)

Argümanlar

· teşekkürler (sınıf_txn) -- Verileri içeren sınıf txn nesnesi.

· msg (dizi) -- Günlük içeriği.

Yerimizi TXN.log

Şununla aynı işi yapar:

fonksiyon Hata Ayıkla(txn, msg)
TXN.log(txn, core.debug, msg)
son

TXN.Bilgi(txn, mesaj)

Argümanlar

· teşekkürler (sınıf_txn) -- Verileri içeren sınıf txn nesnesi.

· msg (dizi) -- Günlük içeriği.

Yerimizi TXN.log

fonksiyon Hata Ayıkla(txn, msg)
TXN.log(txn, core.info, msg)
son

TXN.Uyarı(txn, mesaj)

Argümanlar

· teşekkürler (sınıf_txn) -- Verileri içeren sınıf txn nesnesi.

· msg (dizi) -- Günlük içeriği.

Yerimizi TXN.log

fonksiyon Hata Ayıkla(txn, msg)
TXN.log(txn, core.uyarı, mesaj)
son

TXN.Uyarı(txn, mesaj)

Argümanlar

· teşekkürler (sınıf_txn) -- Verileri içeren sınıf txn nesnesi.

· msg (dizi) -- Günlük içeriği.

Yerimizi TXN.log

fonksiyon Hata Ayıkla(txn, msg)
TXN.log(txn, core.alert, msg)
son

TXN.get_priv(txn)
Geçerli işlemde depolanan Lua verilerini döndürün ( TXN.set_priv())
işlev. Hiçbir veri saklanmazsa, sıfır değeri döndürür.

Argümanlar

· teşekkürler (sınıf_txn) -- Verileri içeren sınıf txn nesnesi.

Geri dönüşler
önceden saklanan opak veriler veya hiçbir şey mevcut değilse sıfır.

TXN.set_priv(txn, veri)
Mevcut HAProxy işlemindeki tüm verileri saklayın. Bu eylem eskinin yerine
depolanmış veri.

Argümanlar

· teşekkürler (sınıf_txn) -- Verileri içeren sınıf txn nesnesi.

· veri (opak) -- İşlemde saklanan veriler.

TXN.set_var(TXN, var, değer, kıymet)
Bir HAProxy türündeki bir Lua türünü dönüştürür ve onu bir değişkende saklar .

Argümanlar

· teşekkürler (sınıf_txn) -- Verileri içeren sınıf txn nesnesi.

· var (dizi) -- HAProxy değişkenine göre değişken adı
sözdizimi.

· değer (opak) -- Değişkende saklanan veriler.

TXN.get_var(TXN, var)
Lua türündeki değişken dönüştürücüde depolanan verileri döndürür .

Argümanlar

· teşekkürler (sınıf_txn) -- Verileri içeren sınıf txn nesnesi.

· var (dizi) -- HAProxy değişkenine göre değişken adı
sözdizimi.

TXN.get_headers(txn)
Bu işlev bir dizi başlık döndürür.

Argümanlar

· teşekkürler (sınıf_txn) -- Verileri içeren sınıf txn nesnesi.

Geri dönüşler
bir dizi başlık.

TXN.bitti(txn)
Bu işlev, işlemin ve ilişkili oturumun işlenmesini sonlandırır.
Kritik bir hata tespit edildiğinde veya sonrasında işlemeyi sonlandırmak için kullanılabilir.
bazı veriler istemciye döndürüldü (örneğin: bir yönlendirme).

Argümanlar

· teşekkürler (sınıf_txn) -- Verileri içeren sınıf txn nesnesi.

TXN.set_loglevel(txn, günlük düzeyi)
Geçerli isteğin günlük düzeyini değiştirmek için kullanılır. "Günlük düzeyi" bir
0 ile 7 arasında tam sayı

Argümanlar

· teşekkürler (sınıf_txn) -- Verileri içeren sınıf txn nesnesi.

· günlük seviyesi (tamsayı) -- Gerekli günlük düzeyi. Bu değişken şunlardan biri olabilir:

Yerimizi çekirdek.

TXN.set_tos(txn, için)
İstemciye gönderilen paketlerin TOS veya DSCP alan değerini müşteriye ayarlamak için kullanılır.
Bunu destekleyen platformlarda "tos" olarak geçirilen değer.

Argümanlar

· teşekkürler (sınıf_txn) -- Verileri içeren sınıf txn nesnesi.

· tos (tamsayı) -- Yeni Hizmet Şartları işletim sistemi DSCP.

TXN.set_mark(txn, işaret)
İstemciye gönderilen tüm paketlerdeki Netfilter MARK değerini değere ayarlamak için kullanılır.
onu destekleyen platformlarda "işaret" olarak geçti.

Argümanlar

· teşekkürler (sınıf_txn) -- Verileri içeren sınıf txn nesnesi.

· işaret (tamsayı) -- İşaret değeri.

sınıf Priz()
Bu sınıf, Lua Socket sınıfı ile uyumlu olmalıdır. Sadece 'müşteri'
fonksiyonlar mevcuttur. Lua Soket belgelerine bakın:

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

Socket.close(soket)
Bir TCP nesnesini kapatır. Nesne tarafından kullanılan dahili soket kapatılır ve yerel
nesnenin bağlı olduğu adres diğer uygulamalar için kullanılabilir hale getirilir. Numara
başka işlemlere (kapatma yöntemine yönelik daha fazla çağrı dışında) izin verilir.
kapalı Soket.

Argümanlar

· soket (sınıf_soket) -- Manipüle edilen Soket.

Not: Kullanılmış tüm prizlerin ihtiyaç duyulmadığında kapatılması önemlidir, çünkü
birçok sistemde, her soket sınırlı sistem olan bir dosya tanımlayıcı kullanır.
Kaynaklar. Çöp toplanan nesneler imha edilmeden önce otomatik olarak kapatılır,
gerçi.

Socket.connect(soket, adres[, Liman])
Bir soket nesnesini uzak bir ana bilgisayara bağlamaya çalışır.

Hata durumunda, yöntem nil ve ardından hatayı açıklayan bir dize döndürür.
Başarı durumunda, yöntem 1 döndürür.

Argümanlar

· soket (sınıf_soket) -- Manipüle edilen Soket.

· adres (dizi) -- bir IP adresi veya bir ana bilgisayar adı olabilir. için aşağıya bakın
daha fazla bilgi.

· Liman (tamsayı) -- [1..64K] aralığında bir tam sayı olmalıdır.

Geri dönüşler
1 veya sıfır.

bir adres alanı uzantısı, bağlanmak için connect() işlevinin kullanılmasına izin verir.
TCP dışındaki akış. Simpleipv4 veya ipv6 adresi içeren sözdizimi,
temelde beklenen format. Bu biçim bağlantı noktası gerektirir.

Kabul edilen diğer biçim, "/socket/path" gibi bir soket yoludur, bağlanmaya izin verir
bir sokete. soyut ad alanları "abns@" önekiyle desteklenir ve son olarak
"fd@" ön eki ile bir dosya yazarı iletilebilir. "ipv4@", "ipv6@" öneki
ve "unix@" da desteklenir. Bağlantı noktası dizeye geçirilebilir. sözdizimi
"127.0.0.1:1234" geçerlidir. bu durumda parametre Liman dikkate alınmaz.

Socket.connect_ssl(soket, adres, bağlantı noktası)
Socket:connect işleviyle aynı davranış, ancak SSL kullanıyor.

Argümanlar

· soket (sınıf_soket) -- Manipüle edilen Soket.

Geri dönüşler
1 veya sıfır.

Socket.getpeername(soket)
Bağlı bir istemci nesnesinin uzak tarafı hakkında bilgi verir.

Eşin IP adresini ve ardından gelen bağlantı noktası numarasını içeren bir dize döndürür.
eş bağlantı için kullanıyor. Hata durumunda, yöntem nil değerini döndürür.

Argümanlar

· soket (sınıf_soket) -- Manipüle edilen Soket.

Geri dönüşler
sunucu bilgilerini içeren bir dize.

Socket.getsockname(soket)
Nesneyle ilişkili yerel adres bilgilerini döndürür.

Yöntem, yerel IP adresiyle bir dize ve bağlantı noktasıyla birlikte bir sayı döndürür. İçinde
hata durumunda, yöntem nil değerini döndürür.

Argümanlar

· soket (sınıf_soket) -- Manipüle edilen Soket.

Geri dönüşler
istemci bilgilerini içeren bir dize.

Socket.receive(soket[, Desen[, önek]])
Belirtilen okuma düzenine göre bir istemci nesnesinden veri okur. desenler
Lua dosya G/Ç biçimini ve tüm öğeler arasındaki performans farkını izleyin
desenler önemsizdir.

Argümanlar

· soket (sınıf_soket) -- Manipüle edilen Soket.

· model (dize|tamsayı) -- Neyin gerekli olduğunu açıklayın (aşağıya bakın).

· önek (dizi) -- Döndürülen verilerin ön eki olacak bir dize.

Geri dönüşler
gerekli verileri veya sıfırı içeren bir dize.

Desen aşağıdakilerden herhangi biri olabilir:

·

"*a": okur itibaren the soket kadar the bağ is kapalı. Yok hayır
satır sonu çevirisi gerçekleştirilir;

·

"*ben": okur a hat of metin itibaren the Priz. The hat is sonlandırıldı by a
LF karakteri (ASCII 10), isteğe bağlı olarak önünde bir CR karakteri (ASCII 13).
CR ve LF karakterleri, döndürülen satıra dahil edilmez. Aslında,
tüm CR karakterleri desen tarafından yok sayılır. Bu varsayılan kalıptır.

·

numara: nedenleri the yöntem için okumak a Belirtilen numara of bayt itibaren the
Priz. Önek, başa birleştirilecek isteğe bağlı bir dizedir
geri gönderilmeden önce alınan herhangi bir verinin

· boş: Desen boş bırakılırsa varsayılan seçenek *l.

Başarılı olursa, yöntem alınan modeli döndürür. Hata durumunda,
yöntem, nil'i ve ardından 'kapalı' dizesi olabilen bir hata mesajı verir.
bağlantının iletim tamamlanmadan veya diziden önce kapatılmış olması durumunda
İşlem sırasında bir zaman aşımı olması durumunda 'zaman aşımı'. Ayrıca hatadan sonra
mesaj, işlev iletimin kısmi sonucunu döndürür.

Önemli not: Bu işlev ciddi şekilde değiştirildi. Birden çok desteklemek için kullanılır
desenler (ama bu özelliğin kullanıldığını hiç görmedim) ve şimdi artık yok.
Kısmi sonuçlar, başarılı sonuçlarla aynı şekilde döndürülürdü. Bu
son özellik, tüm işlevlerin hata durumunda sıfır döndürmesi gerektiği fikrini ihlal etti. Böylece
o da değiştirildi.

Socket.send(soket, veri[, Başlat[, son]])
Verileri istemci nesnesi aracılığıyla gönderir.

Argümanlar

· soket (sınıf_soket) -- Manipüle edilen Soket.

· veri (dizi) -- Gönderilecek veriler.

· başlama (tamsayı) -- Verilerin arabelleğindeki başlangıç ​​konumu
gönderilecek.

· son (tamsayı) -- Verilerin arabelleğindeki son konumu
gönderdi.

Geri dönüşler
aşağıya bakınız.

Veri, gönderilecek dizedir. i ve j isteğe bağlı bağımsız değişkenler tam olarak şu şekilde çalışır:
standart string.sub Lua işlevi, gönderilecek bir alt dize seçimine izin verir.

Başarılı olursa, yöntem [start, end] içindeki son baytın dizinini döndürür.
ki gönderildi. Dikkat edin, eğer başlangıç ​​1 ise veya yoksa, bu etkin bir şekilde
gönderilen toplam bayt sayısı. Hata durumunda, yöntem nil ve ardından
bir hata mesajı, ardından [start, end] içindeki son baytın dizini
gönderildi. Bunu izleyen bayttan tekrar denemek isteyebilirsiniz. Hata
bağlantının iletimden önce kapatılması durumunda mesaj 'kapatılabilir'
sırasında bir zaman aşımı olması durumunda tamamlandı veya 'zaman aşımı' dizesi
çalışma.

Not: Çıktı arabelleğe alınmaz. Küçük dizeler için birleştirmek her zaman daha iyidir
onları Lua'da ('..' operatörüyle) ve sonucu yerine tek bir aramada gönderin
yöntemi birkaç kez çağırıyor.

Socket.setoption(soket, seçenek[, değer])
Sadece uyumluluk için uygulandı, bu cal hiçbir şey yapmıyor.

Socket.settimeout(soket, değer[, modu])
Nesnenin zaman aşımı değerlerini değiştirir. Tüm G/Ç işlemleri engelleniyor. o
gönderme, alma ve kabul etme yöntemlerine yapılan herhangi bir çağrı süresiz olarak engellenir,
işlem tamamlanana kadar. settimeout yöntemi, miktar üzerinde bir limit tanımlar.
G/Ç yöntemlerinin engelleyebileceği süre. Bir zaman aşımı süresi geçtiğinde, etkilenen
yöntemler pes eder ve bir hata koduyla başarısız olur.

Değer parametresi olarak beklenecek süre saniye cinsinden belirtilir.

Zaman aşımı modları bot uygulanır, ayarlanabilir tek zaman aşımı, hareketsizliktir
dahili arabellek gönderme veya alma verilerinin tamamlanması için bekleme süresi.

Argümanlar

· soket (sınıf_soket) -- Manipüle edilen Soket.

· değer (tamsayı) -- Zaman aşımı değeri.

sınıf Harita()
Bu sınıf, HAProxy haritalarında bazı aramalar yapmaya izin verir. Bildirilen haritalar şunlar olabilir:
çalışma zamanı sırasında HAProxy yönetim soketi aracılığıyla değiştirilir.

varsayılan = "ABD"

-- Harita oluştur ve yükle
geo = Map.new("geo.map", Map.ip);

-- Kullanıcının ülkesini döndüren yeni getirme oluştur
core.register_fetches("ülke", fonksiyon(txn)
yerel kaynak;
yerel konum;

kaynak = txn.f:fhdr("x-forwarded-for");
if (src == nil) o zaman
kaynak = txn.f: kaynak()
if (src == nil) o zaman
varsayılanı döndür;
son
son

-- Arama gerçekleştirin
loc = coğrafi: arama(kaynak);

if (loc == nil) o zaman
varsayılanı döndür;
son

dönüş yeri;
son);

Harita.int
HAProxy configuration.txt dosyası, "ACL'leri kullanma ve örnekleri alma" bölümüne bakın
Bu model eşleştirme yöntemini anlamak için alt bölüm "ACL temelleri".

Harita.ip HAProxy configuration.txt dosyası, "ACL'leri kullanma ve örnekleri alma" bölümüne bakın
Bu model eşleştirme yöntemini anlamak için alt bölüm "ACL temelleri".

Harita.str
HAProxy configuration.txt dosyası, "ACL'leri kullanma ve örnekleri alma" bölümüne bakın
Bu model eşleştirme yöntemini anlamak için alt bölüm "ACL temelleri".

Harita.beg
HAProxy configuration.txt dosyası, "ACL'leri kullanma ve örnekleri alma" bölümüne bakın
Bu model eşleştirme yöntemini anlamak için alt bölüm "ACL temelleri".

Harita.sub
HAProxy configuration.txt dosyası, "ACL'leri kullanma ve örnekleri alma" bölümüne bakın
Bu model eşleştirme yöntemini anlamak için alt bölüm "ACL temelleri".

Harita.dir
HAProxy configuration.txt dosyası, "ACL'leri kullanma ve örnekleri alma" bölümüne bakın
Bu model eşleştirme yöntemini anlamak için alt bölüm "ACL temelleri".

Harita.dom
HAProxy configuration.txt dosyası, "ACL'leri kullanma ve örnekleri alma" bölümüne bakın
Bu model eşleştirme yöntemini anlamak için alt bölüm "ACL temelleri".

Harita sonu
HAProxy configuration.txt dosyası, "ACL'leri kullanma ve örnekleri alma" bölümüne bakın
Bu model eşleştirme yöntemini anlamak için alt bölüm "ACL temelleri".

Harita.reg
HAProxy configuration.txt dosyası, "ACL'leri kullanma ve örnekleri alma" bölümüne bakın
Bu model eşleştirme yöntemini anlamak için alt bölüm "ACL temelleri".

Map.new(dosya, yöntem)
Bir harita oluşturur ve yükler.

Argümanlar

· dosya (dizi) -- Haritayı içeren dosyadır.

· yöntem (tamsayı) -- Harita desen eşleştirme yöntemidir. Nitelikleri görün
Harita sınıfının.

Geri dönüşler
bir sınıf Haritası nesnesi.

Yerimizi Harita öznitelikleri.

Map.lookup(harita, cadde)
Bir haritada arama yapın.

Argümanlar

· harita (sınıf haritası) -- Map nesnesi sınıfıdır.

· str (dizi) -- Dize anahtar olarak mı kullanılıyor?

Geri dönüşler
sonucu içeren bir dize veya eşleşme yoksa sıfır.

Map.slookup(harita, cadde)
Bir haritada arama yapın.

Argümanlar

· harita (sınıf haritası) -- Map nesnesi sınıfıdır.

· str (dizi) -- Dize anahtar olarak mı kullanılıyor?

Geri dönüşler
sonucu içeren bir dize veya eşleşme yoksa boş dize.

sınıf Uygulama HTTP()
Bu sınıf, 'http' modunu gerektiren uygulamalarla birlikte kullanılır. http uygulaması
ile kayıtlı olmak core.register_service() işlev. onlar için kullanılır
HAProxy'nin arkasındaki bir sunucu gibi bir http isteğini işleme.

Bu bir merhaba dünya örnek kodudur:

core.register_service("merhaba dünya", "http", işlev(uygulama)
yerel yanıt = "Merhaba Dünya !"
uygulama:set_status(200)
applet:add_header("içerik uzunluğu", string.len(yanıt))
applet:add_header("içerik türü", "metin/düz")
uygulama:start_response()
uygulama:gönder(yanıt)
son)

AppleHTTP.c

Geri dönüşler
A Dönüştürücüler sınıf

Bu öznitelik, bir Converters sınıfı nesnesi içerir.

AppleHTTP.sc

Geri dönüşler
A Dönüştürücüler sınıf

Bu öznitelik, bir Converters sınıfı nesnesi içerir. Bu nesnenin işlevleri
her zaman bir dize döndürür.

appletHTTP.f

Geri dönüşler
A Getirilen sınıf

Bu öznitelik, bir Getirme sınıfı nesnesi içerir. Uygulamanın yürütüldüğünü unutmayın
yer, geçerli bir HAProxy çekirdek HTTP işlemine erişemez, bu nedenle bazı örnek
HTTP bağımlı değerlerle (hdr, yol, ...) ilgili efektler mevcut değildir.

AppletHTTP.sf

Geri dönüşler
A Getirilen sınıf

Bu öznitelik, bir Getirme sınıfı nesnesi içerir. Bu nesnenin işlevleri
her zaman bir dize döndürür. Applet yürütme yerinin bir uygulamaya erişemeyeceğini unutmayın.
geçerli HAProxy çekirdek HTTP işlemi, bu nedenle HTTP ile ilgili bazı örnek etkiler
bağımlı değerler (hdr, yol, ...) kullanılamaz.

AppletHTTP.yöntemi

Geri dönüşler
dizi

Nitelik yöntemi, HTTP yöntemini içeren bir dize döndürür.

AppletHTTP.sürüm

Geri dönüşler
dizi

Özellik sürümü, HTTP istek sürümünü içeren bir dize döndürür.

AppletHTTP.yol

Geri dönüşler
dizi

Öznitelik yolu, HTTP istek yolunu içeren bir dize döndürür.

AppletHTTP.qs

Geri dönüşler
dizi

qs niteliği, HTTP istek sorgusu dizesini içeren bir dize döndürür.

AppletHTTP.uzunluk

Geri dönüşler
tamsayı

Öznitelik uzunluğu, HTTP gövde uzunluğunu içeren bir tamsayı döndürür.

AppletHTTP.başlıkları

Geri dönüşler
dizi

Nitelik başlıkları, HTTP başlıklarını içeren bir dizi döndürür. Başlık
isimler her zaman küçük harfle yazılır. Başlık adıyla birden fazla karşılaşılabileceğinden
her istekte bir kez, değer ilk indeks değeri olarak 0 ile indekslenir. dizi
bu forma sahip:

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

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

AppletHTTP.başlıkları
Tüm istek başlıklarını içeren bir dizi içerir.

AppletHTTP.set_status(uygulama, kod)
Bu işlev, yanıt için HTTP durum kodunu ayarlar. İzin verilen kod
100 için 599.

Argümanlar

· uygulaması (class_AppletHTTP) -- Bir AppleHTTP sınıf

· kod (tamsayı) -- istemciye döndürülen durum kodu.

AppletHTTP.add_header(uygulama, , isim değer, kıymet)
Bu işlev, yanıta bir başlık ekler. Yinelenen başlıklar daraltılmaz.
özel başlık İçerik Uzunluğu yanıt uzunluğunu belirlemek için kullanılır. Eğer o
yok, bir aktarım kodlaması: yığın halinde ayarlanır ve işlevden tüm yazma
AppletHTTP:gönder() bir yığın haline gel.

Argümanlar

· uygulaması (class_AppletHTTP) -- Bir AppleHTTP sınıf

· isim (dizi) -- başlık adı

· değer (dizi) -- başlık değeri

AppletHTTP.start_response(uygulama)
Bu işlev, HTTP motoruna şu bilgileri işleyebileceğini ve gönderebileceğini belirtir.
yanıt başlıkları Bu çağrıdan sonra cevaba başlık ekleyemiyoruz; Biz
kullanamaz AppletHTTP:gönder() eğer işlev AppletHTTP:start_response() değil
aranan.

Argümanlar

· uygulaması (class_AppletHTTP) -- Bir AppleHTTP sınıf

AppletHTTP.getline(uygulama)
Bu işlev, http gövdesinden bir satır içeren bir dize döndürür. eğer veri
döndürülen son bir '\n' içermiyor, bunun mevcut son verilerden daha fazla olduğu varsayılıyor
akışın bitiminden önce.

Argümanlar

· uygulaması (class_AppletHTTP) -- Bir AppleHTTP sınıf

Geri dönüşler
dizi. Akışın sonuna ulaşırsak dize boş olabilir.

AppletHTTP.receive(uygulama[, boyut])
Belirtilen okumaya göre HTTP gövdesinden veri okur boyut. Eğer boyut is
eksikse, işlev akışın tüm içeriğini sonuna kadar okumaya çalışır. Eğer
the boyut http gövdesinden daha büyükse, mevcut veri miktarını döndürür.

Argümanlar

· uygulaması (class_AppletHTTP) -- Bir AppleHTTP sınıf

· boyut (tamsayı) -- gerekli okuma boyutu.

Geri dönüşler
her zaman bir dize döndürür, dize boş olabilir, bağlantı kapalıdır.

AppletHTTP.send(uygulama, mesaj)
Mesajı gönder msg http istek gövdesinde.

Argümanlar

· uygulaması (class_AppletHTTP) -- Bir AppleHTTP sınıf

· msg (dizi) -- gönderilecek mesaj.

sınıf UygulamaTCP()
Bu sınıf, 'tcp' modunu gerektiren uygulamalarla birlikte kullanılır. tcp uygulaması olabilir
ile kayıtlı core.register_service() işlev. İşleme için kullanılırlar
HAProxy'nin arkasındaki sunucu gibi bir tcp akışı.

AppletTCP.c

Geri dönüşler
A Dönüştürücüler sınıf

Bu öznitelik, bir Converters sınıfı nesnesi içerir.

AppletTCP.sc

Geri dönüşler
A Dönüştürücüler sınıf

Bu öznitelik, bir Converters sınıfı nesnesi içerir. Bu nesnenin işlevleri
her zaman bir dize döndürür.

AppletTCP.f

Geri dönüşler
A Getirilen sınıf

Bu öznitelik, bir Getirme sınıfı nesnesi içerir.

AppletTCP.sf

Geri dönüşler
A Getirilen sınıf

Bu öznitelik, bir Getirme sınıfı nesnesi içerir.

AppletTCP.getline(uygulama)
Bu işlev, akıştan bir satır içeren bir dize döndürür. eğer veri
döndürülen son bir '\n' içermiyor, bunun mevcut son verilerden daha fazla olduğu varsayılıyor
akışın bitiminden önce.

Argümanlar

· uygulaması (class_AppletTCP) -- Bir AppletTCP sınıf

Geri dönüşler
dizi. Akışın sonuna ulaşırsak dize boş olabilir.

AppletTCP.receive(uygulama[, boyut])
Belirtilen okumaya göre TCP akışından veri okur boyut. Eğer boyut
eksikse, işlev akışın tüm içeriğini sonuna kadar okumaya çalışır.

Argümanlar

· uygulaması (class_AppletTCP) -- Bir AppletTCP sınıf

· boyut (tamsayı) -- gerekli okuma boyutu.

Geri dönüşler
her zaman bir dize döndürür, dize boş olabilir, bağlantı kapalıdır.

AppletTCP.send(appletmsg)
Mesajı akışta gönderin.

Argümanlar

· uygulaması (class_AppletTCP) -- Bir AppletTCP sınıf

· msg (dizi) -- gönderilecek mesaj.

Bir çok faydalı lua kütüphanesi burada bulunabilir:

· https://lua-toolbox.com/

Yeniden erişim:

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

Bu, Redis kitaplığının HAProxy ile kullanımına ilişkin bir örnektir. Her aramanın
Soket bağlantısı başarısız olursa bu kitaplığın herhangi bir işlevi hata verebilir.

-- redis kitaplığını yükle
yerel redis = require("redis");

işlev do_something(txn)

-- yeni tcp soketi oluştur ve bağla
yerel tcp = core.tcp();
TCP:zaman aşımı(1);
tcp:connect("127.0.0.1", 6379);

-- bu yeni soketle redis kitaplığını kullanın
yerel istemci = redis.connect({socket=tcp});
istemci:ping();

son

Açık SSL:

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

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

onworks.net hizmetlerini kullanarak haproxy-lua'yı çevrimiçi kullanın


Ücretsiz Sunucular ve İş İstasyonları

Windows ve Linux uygulamalarını indirin

Linux komutları

Ad