nginx作为正向和反向代理服务器转发TCP/UDP流量-指定出站连接地址
|
admin
2025年6月28日 22:27
本文热度 1139
|
proxy_bind指令
1. 语法:proxy_bind address [transparent] | off;
2. 作用:指定出站连接的IP地址,从1.11.2版本开始参数值可以包含变量。如果服务器绑定了多个IP地址,可以指定哪个IP用于与代理服务器连接。
测试:
代理服务器有两个IP:166和200,未指定出站地址,自动分配了200。
stream {
server {
listen 18099;
proxy_pass xxx.xxx.xxx.xxx:8099;
}
}
proxy_bind指定使用166。stream {
server {
listen 18099;
proxy_pass xxx.xxx.xxx.xxx:8099;
proxy_bind xxx.xxx.xxx.166;
}
}
3. 可配置环境:stream块、server块
4. off参数:取消继承自上一层的proxy_bind的效果,并自动分配本机IP地址。
5. transparent参数:1.11.0版本开始引入的参数。允许出站连接的IP地址使用非本机IP地址,例如使用客户端的真实IP proxy_bind $remote_addr transparent;。参数需要超级用户权限启动nginx进程,Linux中从1.13.8版本开始不需要超级用户权限。还需配置内核路由表以拦截来自代理服务器的网络流量(需在操作系统层面设置路由规则,将后端服务器返回的流量重新导回到Nginx)。
windows版本的nginx不支持transparent参数。
其它常用指令
- 从上游服务器或客户端读取数据的缓冲区大小。默认大小16K:
proxy_buffer_size 16k;
- 默认60秒,
proxy_connect_timeout 60s;
- 启用/关闭PROXY协议,启用后代理会将真实客户端连接信息传递给上游服务器。
- 语法:
proxy_protocol on | off;
- 与上游服务器或客户端的连接有效时间,在此时间范围内没有数据传输连接会被关闭。默认值10m。
阅读原文:原文链接
该文章在 2025/7/1 23:38:10 编辑过