UDP NGINX ters proxy ayarını nasıl yapabilirim ve nasıl çalışır?


0

NGINX'in UDP / TCP ters proxy'si hakkındaki belgeleri okudum, ancak kafam biraz karıştı. NGINX'in hem proxy sunucusunda hem de proxy'nin de ileteceği sunucuda olması gerekir mi?

Yapılandırmam, hangi proxy'leri 153.0.0.0'a döndürmek istediğim iki ips (5.0.0.0, 6.0.0.0) içeren nginx udp proxy sunucum olacak. Liman 2555 olacak.

Config ile ilgili kafam karıştı.

IP adresini ve / veya bağlantı noktasını tanımlamak için   Sunucu dinler.

Bu, sunucunun IP'sinin de proxy kullanacağı anlamına mı geliyor (153.0.0.0) veya dahili IP mi?

Proxy sunucusunu veya bir sunucuyu tanımlamak için proxy_pass yönergesini ekleyin.   sunucunun trafiği ilettiği akış yukarı grubu

Bunun ne anlama geldiğinden emin değilim.

Proxy_bind yönergesini ve gerekli olanın IP adresini belirtin.   ağ Arayüzü:

Bu dahili IP mi, yoksa harici IP de bağlayacak mı? (5.0.0.0)

Muhtemelen basit bir yapılandırma bana açıklamaya yardımcı olacaktır. Birkaç örnek buldum, ancak hangisinin yerel, harici, proxy sunucusu veya IP proxy sunucusu olduğundan emin değilim, bu nedenle yardımcı olmaz.

Yanıtlar:


1

NGINX'in hem proxy sunucusunda hem de proxy'nin ileteceği sunucuda olması gerekir mi?

Bu genellikle gerekli değildir.

[İle ilgili kafam karıştı dinlemek direktif.]

dinlemek yönergesi, "sunucunun dinlediği IP adresini ve / veya bağlantı noktasını" tanımlandığı şekilde tanımlar. "Dinleme", gelen bağlantıların izlenmesini ifade eder. "Sunucu", Nginx'i barındıran bilgisayardır, bu yüzden proxy bağlantılarını (bu bilgisayarın geçeceği) alan bilgisayarın IP ve / veya portuna atıfta bulunur.

ex. 8080 numaralı bağlantı noktasından IP 127.0.0.1’i dinleyin

listen 127.0.0.1:8080;

ex. 53 numaralı bağlantı noktasındaki tüm udp trafiğini dinleyin (DNS)

listen 53 udp;

Bunun ne anlama geldiğinden emin değilim: Proxy sunucusunu veya sunucunun trafiği yönlendireceği bir yukarı akış grubunu tanımlamak için proxy_pass yönergesini ekleyin.

proxy_pass yönergesi, Nginx proxy'sinin verileri "geçirdiği" bilgisayarları (belirli bir isteği gerçekten yanıtlayan sunucular) tanımlar. Bu bir URL, bir IP adresi veya bir grup adı olabilir.

ex. URL (isteği tamamlamak için proxy verileri example.com'a iletilir)

proxy_pass http://example.com;

ex. IP (proxy verileri, isteği tamamlamak için IP 127.0.0.1'e iletilir)

proxy_pass http://127.0.0.1;

ex. Grup (isteği tamamlamak için proxy verileri tanımlanmış grubun bir üyesine geçirilir)

upstream dns_servers {
    server 192.168.136.130:53;
    server 192.168.136.131:53;
}

#... 

proxy_pass dns_servers;

Yukarıdaki grubun örneğin URL’ler içerebileceğini unutmayın. backend1.example.com:53; .

Proxy_bind yönergesini ve gerekli ağ arayüzünün IP adresini belirtin - Bu dahili IP mi yoksa bağlanacağı harici IP mi?

proxy_bind yönergesi "proxy sunucusuna giden bağlantıları belirtilen kaynaklardan yapar yerel IP adresi isteğe bağlı bir bağlantı noktası ile ". Bu nedenle çoğu durumda yerel olacaktır (uzak IP’ye bağlanmak, bağlantıda ayrıntılandırıldığı gibi mümkündür.) kaynak IP adresi, bir bağlantının doğru çalışması için belirli bir IP gerektirdiğinden.

Muhtemelen basit bir yapılandırma bana [işleri] açıklamaya yardımcı olacaktır.

Bu sizin durumunuza uygun olabilir veya olmayabilir, ancak çok basit bir tcp / http örneği şöyle görünebilir:

server {

         listen 2555;
         #... 

         location /app1/ {
               proxy_bind 5.0.0.0;
               proxy_pass http://153.0.0.0:2555;
          }

          location /app2/ {
                proxy_bind 6.0.0.0;
                proxy_pass http://153.0.0.0:2555;
          }

         #... 
} 

Basit bir örnek olarak UDP vekil :

stream {
    server {
        listen 2555 udp;
        proxy_pass receiving_servers;
        proxy_responses: 0;
        proxy_bind 5.0.0.0;
        #... 
    }

    upstream receiving_servers {
        server 153.0.0.0:2555;
    }

    #... 
}

Yapılandırmam, hangi proxy'leri 153.0.0.0'a döndürmek istediğim iki ips (5.0.0.0, 6.0.0.0) içeren nginx udp proxy sunucum olacak.

Yanılmıyorsam, IP'leri gerçekten döndürmek istiyorsanız, proxy'nizin önünde bir yük dengeleyicisine (belki de Nginx'li başka bir sunucuya) ihtiyacınız olabilir (bunun tamamen dahili olarak yapılıp yapılmadığından emin değilim).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.