如何设置 UDP NGINX 反向代理,以及它如何工作?

如何设置 UDP NGINX 反向代理,以及它如何工作?

我已阅读有关 NGINX 的 UDP/TCP 反向代理的文档,但我有点困惑。NGINX 是否需要同时位于代理服务器和代理将转发到的服务器上?

我的配置是 nginx udp 代理服务器,有两个 ip(5.0.0.0、6.0.0.0),我想轮换代理到 153.0.0.0。端口为 2555。

我对配置感到困惑。

listen 指令定义服务器监听的 IP 地址和/或端口。

这是否意味着它将代理的服务器的 IP(153.0.0.0)还是内部 IP?

包含 proxy_pass 指令来定义代理服务器或服务器转发流量到的上游组

我不确定这是什么意思

指定 proxy_bind 指令和必要网络接口的 IP 地址:

这是内部 IP,还是它将绑定的外部 IP?(5.0.0.0)

也许一个简单的配置可以帮助我解释。我找到了一些示例,但我不确定哪个是本地、外部、代理服务器,还是代理 IP 的服务器,因此它没有帮助。

答案1

NGINX 是否需要同时位于代理服务器和代理将转发到的服务器上?

这通常没有必要。

我对[感到困惑指示。]

指令定义“服务器监听的 IP 地址和/或端口”,如所述。“监听”是指监控传入连接。“服务器”是托管 Nginx 的计算机,因此它指的是接收代理连接的计算机的 IP 和/或端口(该计算机随后将传递该连接)。

例如,监听 IP 127.0.0.1 的 8080 端口

listen 127.0.0.1:8080;

例如,监听端口 53 上的所有 UDP 流量 (DNS)

listen 53 udp;

我不确定这是什么意思:包括 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?

代理绑定指令“使到代理服务器的传出连接源自指定的本地 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 代理服务器,它有两个 ip(5.0.0.0、6.0.0.0),我想将其代理轮换到 153.0.0.0。

如果我没记错的话,如果您想要真正轮换 IP,您可能需要在代理前面有一个负载均衡器(也许是另一台带有 Nginx 的服务器)(我不确定这是否可以纯粹在内部完成)。

相关内容