参考nginx_tcp_proxy_module的readme文件,对每个定义项都做了详细的描述,tcp{...}与http{...}是在同一层级。下面是我的配置,仅供参考:
worker_processes auto; events { use epoll; worker_connections 1024; } tcp { upstream logicSrv { server 127.0.0.1:8080; server 192.168.10.60:8080; check interval=10000 rise=2 fall=5 timeout=1000; # 这里间隔设置为10秒检查一次,启动nginx后,要等待10秒,以上配置的服务器状态才会标识为有效状态,也就是要10秒后scoket才能连接上。 } server { listen 8888; proxy_pass logicSrv; } } http { include mime.types; default_type application/octet-stream; server { listen 80; location /tcpst { tcp_check_status; } } }
以上配置完成后,tcp套接只需要连接tcp_proxy_module监听的8888端口,即可对tcp的连接请求进行分发了。
也可以访问 http://127.0.0.1/tcpst 查看tcp代理的状态情况。