使用nginx实现四层代理

一、nginx四层代理

Nginx 1.9.0 开发版发布,该版本增加了 stream module 用于一般的 TCP 代理和负载均衡。

二、集群,高可用,7层负载均衡

集群,高可用,7层负载均衡等详细内容请移步以下链接
反向代理负载均衡之haproxy
反向代理负载均衡之nginx
反向代理负载均衡之apache
高可用之keepalived

三、nginx四层代理实战

3.1编译安装nginx

编译安装nginx需指定–with-stream参数

  1. [root@linux-node1 nginx-1.9.12]#./configure --prefix=/usr/local/nginx-1.9.12 --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-file-aio --with-stream
  2. [root@linux-node1 nginx-1.9.12]#make && make install

3.2 使用nginx实现ssh四层代理

编辑nginx配置文件并启动

  1. [root@linux-node1 conf]# vim nginx.conf
  2. worker_processes 1;
  3. events {
  4. worker_connections 1024;
  5. }
  6. stream { #类似于7层的http段
  7. upstream ssh_proxy {
  8. hash $remote_addr consistent;
  9. server 192.168.56.11:22;
  10. server 192.168.56.12:22;
  11. }
  12. server {
  13. listen 2222;
  14. proxy_connect_timeout 1s;
  15. proxy_timeout 3s;
  16. proxy_pass ssh_proxy;
  17. }
  18. }
  19. [root@linux-node1 conf]# ../sbin/nginx
  20. [root@linux-node1 conf]# netstat -lntup|grep nginx
  21. tcp 0 0 0.0.0.0:2222 0.0.0.0:* LISTEN 61127/nginx: master

连接ssh,从结果看把请求抛向了linux-node2的ssh

  1. [root@linux-node1 conf]# ssh -p 2222 root@192.168.56.11
  2. root@192.168.56.11's password:
  3. Last login: Sun Mar 6 17:29:42 2016 from linux-node1.example.com
  4. [root@linux-node2 ~]# Connection to 192.168.56.11 closed by remote host.

但是此办法代理ssh会导致ssh自动退出,此时修改和后端的连接超时时间
proxy_timeout 30000s;

0
未经许可,不得转载,否则将受到作者追究,博主联系方式见首页右上角

该文章由 发布

这货来去如风,什么鬼都没留下!!!
发表我的评论
取消评论
代码 贴图 加粗 链接 删除线 签到