Nginx实现websocket代理的方式

一个简单的实现,后续再补充。其中80端口是提供正常web访问的端口,9000是提供socket服务的端口。实际部署时出于安全考虑,可以将代理端口与后端服务器提供的端口设置为不同的值。 
基于此配置也可以方便地配置负载均衡。

upstream test.com {
    server 192.168.56.108:80;
    server 192.168.56.109:80;
    keepalive 2000;
}

upstream socket.test.com {
    hash $remote_addr consistent;
    server 192.168.56.108:9000;
    server 192.168.56.109:9000;
}
server {
        listen 80;
        server_name   test.com;

        location / {
                proxy_pass http://test.com/;
                proxy_set_header Host $host:$server_port;
        }
}

server {
        listen 9000;
        server_name   test.com:9000;

        location / {
                proxy_pass http://socket.test.com/;
                proxy_set_header Host $host:$server_port;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
        }
}
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

设置http的负载均衡比较简单,要设置websocket的负载均衡,需要在编译nginx的时候加一个参数:

--with-stream
 
 
  • 1

而且此参数仅支持1.9.0以上的nginx。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值