Чи потрібно NGINX бути як на проксі-сервері, так і на сервері, на який проксі буде пересилатися проксі?
Зазвичай це не потрібно.
Я розгублений стосовно [ директиви про слухання .]
Слухати директива визначає «IP - адреса та / або порт , на якому сервер слухає», як зазначено. "Прослуховування" означає моніторинг вхідних з'єднань. "Сервер" - це комп'ютер, на якому розміщений Nginx, тому він посилається на IP та / або порт комп'ютера, що приймає проксі-з'єднання (і), які потім передаватиме цей комп'ютер).
колишній слухати IP 127.0.0.1 на порту 8080
listen 127.0.0.1:8080;
колишній слухати увесь трафік udp на порт 53 (DNS)
listen 53 udp;
Я не впевнений, що це означає: Додайте директиву proxy_pass, щоб визначити проксі-сервер або групу вище за потоком, на який сервер пересилає трафік.
Proxy_pass директива визначає комп'ютери (и) , до якого проксі - сервер Nginx «передає» дані (сервери , які фактично відповідають на даний запит). Це може бути URL-адреса, IP-адреса або назва групи.
колишній URL (дані проксі передаються на example.com для завершення запиту)
proxy_pass http://example.com;
колишній IP (дані проксі передаються до IP 127.0.0.1 для завершення запиту)
proxy_pass http://127.0.0.1;
колишній Група (дані проксі передаються члену визначеної групи для завершення запиту)
upstream dns_servers {
server 192.168.136.130:53;
server 192.168.136.131:53;
}
#...
proxy_pass dns_servers;
Зауважте, що вищевказана група може містити URL-адреси, наприклад, наприклад backend1.example.com:53;
.
Вкажіть директиву proxy_bind та IP-адресу необхідного мережевого інтерфейсу - це внутрішній IP чи зовнішній IP, до якого він буде прив'язуватися?
Proxy_bind директива «робить вихідні з'єднання до сервера проксіровать відбуваються із зазначеного локального IP - адреси з додатковим портом». Тож у більшості випадків воно буде локальним (хоча прив'язка до віддаленого IP-адреси можлива, як детально описано у посиланні). Цей параметр, ймовірно, дійсно корисний лише у тому випадку, якщо у вас є кілька мережевих інтерфейсів або вам потрібно вибрати IP-адресу конкретного джерела, оскільки для з’єднання потрібен певний IP, щоб правильно функціонувати.
Можливо, проста пояснення допоможе мені пояснити [речі].
Це може бути або не підходить для вашої ситуації, але дуже простий приклад tcp / http може виглядати так:
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;
}
#...
}
Як простий приклад проксі-сервера UDP :
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;
}
#...
}
Моєю конфігурацією буде мій nginx udp проксі-сервер з двома ips (5.0.0.0, 6.0.0.0), які я хотів би повертати, які проксі-сервери до 153.0.0.0.
Якщо я не помиляюсь, якщо ви хочете по-справжньому обертати IP-адреси, вам може знадобитися балансир завантаження (можливо, інший сервер з Nginx) перед вашим проксі-сервером (я не впевнений, чи можна це зробити виключно внутрішньо).