默認Nginx只支持http的反向代理,要想nginx支持tcp的反向代理,還需要在編譯時增加tcp代理模塊支持,即nginx_tcp_proxy_module
下面操作步驟只讓nginx支持tcp_proxy,沒有加入prce、gzip、ssl等功能,如需要,可自行在編譯時加上相關參數。
wget https://github.com/yaoweibin/nginx_tcp_proxy_module/archive/master.zip
unzip master
cd nginx-1.6.2
patch -p1 </opt/nginx_tcp_proxy_module-master/tcp.patch
./configure --add-module=/opt/nginx_tcp_proxy_module-master
make
make install
nginx.conf主配置文件中增加如下配置配置:(也可以在主配置文件中配置include,包含tcp轉發的配置文件
include /opt/nginx_tcp_proxy_module-master/tcp_proxy.conf)
tcp {
upstream proxy_name {
# simple round-robin
server 192.168.1.10:8000;
server 192.168.1.10:8001;
server 192.168.1.11:8000;
server 192.168.1.11:8001;
check interval=3000 rise=2 fall=5timeout=1000;
#check interval=3000 rise=2 fall=5timeout=1000
#check interval=3000 rise=2 fall=5timeout=1000
#check_http_send "GET /HTTP/1.0\r\n\r\n";
#check_http_expect_alive http_2xxhttp_3xx;
}
server {
listen 8888;
proxy_pass proxy_name;
}
}
說明:
check interval 健康檢查,單位是毫秒
rise 檢查幾次正常後,將reslserver加入以負載列表中
fall 檢查幾次失敗後,摘除realserver
timeout 檢查超時時間,單位許毫秒
具體可查看nginx_tcp_proxy_module-master/README,很詳細。