当今互联网领域,不论是APP仍是H5,不论是微信端仍是小程序,只要是一款像样点的产品,为了增长用户的交互感和用户粘度,多多少少都会涉及到聊天功能。而对于Web端与H5来讲,实现聊天最简单的就是使用WebSocket了。而在实现WebSocket聊天的过程当中,后台也每每会部署多个WebSocket服务,多个WebSocket服务之间,能够经过Nginx进行负载均衡。今天,咱们就来一块儿说说Nginx是如何配置WebSocket的。nginx
Nginx配置WebSocket也比较简单,只须要在nginx.conf文件中进行相应的配置。这种方式很简单,可是颇有效,可以横向扩展WebSocket服务端的服务能力。web
先直接展现配置文件,以下所示(使用的话直接复制,而后改改ip和port便可)面试
map $http_upgrade $connection_upgrade { default upgrade; '' close; } upstream wsbackend{ server ip1:port1; server ip2:port2; keepalive 1000; } server { listen 20038; location /{ proxy_http_version 1.1; proxy_pass http://wsbackend; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_read_timeout 3600s; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; } }
接下来,咱们就分别分析上述配置的具体含义。小程序
首先:bash
map $http_upgrade $connection_upgrade { default upgrade; '' close; }
表示的是:服务器
其次:微信
upstream wsbackend{ server ip1:port1; server ip2:port2; keepalive 1000; }
表示的是 nginx负载均衡:websocket
最后:并发
server { listen 20038; location /{ proxy_http_version 1.1; proxy_pass http://wsbackend; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_read_timeout 3600s; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; } }
表示的是监听的服务器的配置负载均衡
好了,今天就聊到这儿吧!别忘了点个赞,给个在看和转发,让更多的人看到,一块儿学习,一块儿进步!!
若是你以为冰河写的还不错,请微信搜索并关注「 冰河技术 」微信公众号,跟冰河学习高并发、分布式、微服务、大数据、互联网和云原生技术,「 冰河技术 」微信公众号更新了大量技术专题,每一篇技术文章干货满满!很多读者已经经过阅读「 冰河技术 」微信公众号文章,吊打面试官,成功跳槽到大厂;也有很多读者实现了技术上的飞跃,成为公司的技术骨干!若是你也想像他们同样提高本身的能力,实现技术能力的飞跃,进大厂,升职加薪,那就关注「 冰河技术 」微信公众号吧,天天更新超硬核技术干货,让你对如何提高技术能力再也不迷茫!