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).