Soru Apache ters proxy için Nginx, Unix soket kullanımını talimatlar


Nginx ters proxy'm web sunucusu (apache) ile aynı makinede çalışır.

server {  server_name site.net;
    location / {
        proxy_pass http://localhost:82;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;

    }
}

Artık backend apache'ye TCP bağlantıları kullanmak yerine unix soketlerini kullanmak için nasıl ayarlayabilirim?

Düzenle:
Birisi tam akışla yardımcı olabilir, apache'ye de apix soketlerini dinlemek için talimat verir.


5
2017-09-28 18:32


Menşei


AFAIK Apache bir soketi dinlemeyi desteklemiyor ... bir web sunucusu. Performans bunu yapmak için nedeniniz ise, soket / tcp arasındaki fark çoğu web sunucusu için önemsizdir - darboğaz her ne olursa olsun uygulama çalışıyorsa (PHP / Perl vb.) - Ben Lessani - Sonassi
Proxy'yi tcp yığınından sokete taşımak istediğinizde biriken çok fazla bağlantınızın olduğunu varsayalım. Keepalive'i devre dışı bırakmayı denemenizi öneririm; Ayrıca, TCP_TW_REUSE (net.ipv4.tcp_tw_reuse) özelliğini etkinleştirmeye yardımcı olabilir - Hrvoje Špoljar


Cevaplar:


Büyük olasılıkla Nginx'i proxy'ye bir sokete kullanarak yeniden yönlendirebilirsiniz. unix:/path/to/socket sözdizimi, Apache Listen Yönerge, IPv4 veya IPv6'yı yalnızca kabul eder, bildiğim kadarıyla bir Unix soketinde Apache'yi dinleyemezsiniz.


10
2017-10-02 21:56



Unix soketini bir ağ soketine eşlemek için bir proxy komut dosyası çizmek önemsiz olacaktır, ancak herhangi bir performans avantajını kaybedersiniz. OTOH arabirimi, fiziksel bir arabirim ile neredeyse aynı performans kısıtlamalarına sahip değil, yavaş tıkanıklık olsa bile, büyük tıkanıklık pencereleriniz olduğu sürece bir unix soketiyle neredeyse aynı hızda çalışmalıdır. - symcbean
Soket, gecikmenin gerekli olduğu küçük taleplerde hala kenarda olacaktır. - c2h5oh
Neden onları bir proxy üzerinden yönlendiriyorsunuz? - symcbean


Tanımlamanız gereken bir akıntıya karşı bunun gibi:

upstream upstream_name {
        server unix:/path/to/socket fail_timeout=0;
}

Ve sonra set proxy_pass adı geçen adıma referans vermek için, yani

proxy_pass http://upstream_name

5
2017-09-28 18:38



Web sunucusu ne olacak? Apache bu durumda. - Quintin Par
Tam akışla bir cevap vermek mümkün mü? - Quintin Par
Kısa bir araştırmada, Apache'nin bir unix alan soketini dinleyebildiğini gösteren belgelerde hiçbir şey bulamadım. - Clint Miller
Unix soketine vekaletname taleplerini tanımlamaya gerek yoktur, proxy_pass http://unix:/path/to/socket:; hile de yapardı nginx.org/r/proxy_pass. - Maxim Dounin