Як я можу налаштувати зворотний проксі-сервер UDP NGINX і як це працює?


2

Я прочитав документацію про зворотний проксі-сервер UDP / TCP NGINX, але я трохи заплутався. Чи повинен NGINX бути як на проксі-сервері, так і на сервері, який проксі також пересилатиме?

Моєю конфігурацією буде мій nginx udp проксі-сервер з двома ips (5.0.0.0, 6.0.0.0), які я хотів би повертати, які проксі-сервери до 153.0.0.0. Порт буде 2555.

Я заплутаний щодо налаштування.

послухати директиву для визначення IP-адреси та / або порту, на якому слухає сервер.

Чи означає це IP-адресу сервера, що він також буде проксі (153.0.0.0), або внутрішній IP?

Включіть директиву proxy_pass, щоб визначити проксі-сервер або групу вище за потоком, на який сервер пересилає трафік

Я не впевнений, що це означає

Вкажіть директиву proxy_bind та IP-адресу необхідного мережевого інтерфейсу:

Це внутрішній IP чи зовнішній IP, який він також пов'язуватиме? (5.0.0.0)

Можливо, проста пояснення допоможе мені пояснити. Я знайшов кілька прикладів, але я не впевнений, що це локальний, зовнішній, проксі-сервер або сервер, на якому знаходиться IP-адреса, тому це не допомагає.

Відповіді:


4

Чи потрібно 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) перед вашим проксі-сервером (я не впевнений, чи можна це зробити виключно внутрішньо).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.