一、Nginx版本要求
Nginx-1.11.2以上,并安装stream_proxy_module和stream_map_module模块
1. stream_proxy_module tcp代理需要, The ngx_stream_proxy_module module (1.9.0) allows proxying data streams over TCP, UDP (1.9.13), and UNIX-domain sockets.
2. stream_map_module 动态ip代理需要,The ngx_stream_map_module module (1.11.2) creates variables whose values depend on values of other variables.
二、nginx安装
参考: http://note.youdao.com/noteshare?id=0b31b637ebc71c3612218c924e03b459&sub=78967BC1F676464A8F4B621BE94528A8
三、配置代理
在nginx的顶级配置块中添加sream配置, 在sream中添加 map 和 server, 如下
stream{
map $remote_addr $bakgrd {
default 127.0.0.1;
#171.212.113.246 120.132.14.176;
}
server {
listen 2933;
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass $bakgrd:1933;
}
}
说明: map配置和http中的map一样的, 动态地根据$remote_addr变量值给$bakgrd赋值
server中,listen配置监听的端口(默认tcp协议,如果配置udp,在端口后面 加上udp,如 listen 2933 udp;), proxy_pass配置要代理的ip和端口