先吐槽一下,Chrome近些天的更新,导致标签栏变大了,没有以前醒目,容易点错,还很丑。
Nginx从1.9开始有了stream模块,可以进行四层反代、负载均衡。以前还真没发现,刚试了一下,还不错。以往我总要多搞个haproxy来用,现在方便多了。
配置语法很简单,直接上例子:
复杂一点,可以负载均衡+容错的:
stream { upstream win_work { server 192.168.0.188:3389; } upstream win_send { server 192.168.0.168:3389; } server { listen 3389; proxy_connect_timeout 1s; proxy_timeout 3s; proxy_pass win_work; } server { listen 55888 ; proxy_responses 1; proxy_timeout 20s; proxy_pass win_send; } }
语法和以往的http代理一样的,不必多说了。
如果是后端单个节点的话,可以省点事:
stream { server { listen 3389; proxy_connect_timeout 1s; proxy_timeout 3s; proxy_pass 192.168.0.188:3389; } server { listen 55888 ; proxy_responses 1; proxy_timeout 20s; proxy_pass 192.168.0.168:3389; } }
那些设置项不是必须的,细节可以参考文档:
需要注意的是,我虽没测试过,但我觉得stream的配置块不要写在http里面了,他俩是平级的,没有包含关系,写错地方可能会出错。