stream { #定義stream;TCP模塊是和HTTP一樣的一個獨立模塊,所以不能設置在HTTP里面。
upstream mysql-server { #定義后端服務器
server 192.168.38.37:3306 max_fails=3 fail_timeout=30s; #定義具體server
}
upstream redis-server {
server 192.168.38.47:6379 max_fails=3 fail_timeout=30s;
}
server { #定義server
listen 3306; #監聽本機所有IP的3306端口
proxy_connect_timeout 30s; #連接超時時間
proxy_timeout 30s; #轉發超時時間
proxy_pass mysql-server; #轉發到具體服務器組
}
server {
listen 192.168.38.27:6379; #監聽在本機的192.168.38.27的6379端口
proxy_connect_timeout 30s;
proxy_timeout 30s;
proxy_pass redis-server;
}
}
TCP反向代理是基於IP和端口號;這個設置不要設置在http模塊中,tcp和http是兩個獨立的模塊,不要設置在一起。
示例配置:
stream{
#proxy 192.168.1.222
upstream proxy222{
server 192.168.1.222:502 weight=1 max_fails=2 fail_timeout=60s;
}
server{
listen 512;
proxy_connect_timeout 30s;
proxy_timeout 30s;
proxy_pass proxy222;
}
#proxy 192.168.1.224
upstream proxy224{
server 192.168.1.224:502 weight=1 max_fails=2 fail_timeout=60s;
}
server{
listen 513;
proxy_connect_timeout 30s;
proxy_timeout 30s;
proxy_pass proxy224;
}
#proxy 192.168.1.225
upstream proxy225{
server 192.168.1.225:502 weight=1 max_fails=2 fail_timeout=60s;
}
server{
listen 514;
proxy_connect_timeout 30s;
proxy_timeout 30s;
proxy_pass proxy225;
}
}
