Должен ли NGINX находиться как на прокси-сервере, так и на сервере, на который будет перенаправлен прокси-сервер?
Обычно это не обязательно.
Я в замешательстве по поводу [директивы прослушивания .]
Директива listen определяет «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) перед вашим прокси (я не уверен, что это можно сделать чисто внутренне).