下文给大家带来什么是基于Nginx的Wesocket负载均衡,希望能够给大家在实际运用中带来一定的帮助,负载均衡涉及的东西比较多,理论也不多,网上有很多书籍,今天我们就用创新互联在行业内累计的经验来做一个解答。
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、微信小程序、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了富拉尔基免费建站欢迎大家使用!
分享一个基于NginxWesocket的负载均衡。
1.在mac电脑安装nginx
brew install nginx
2.安装完成以后nginx的配置文件路径
/usr/local/etc/nginx/nginx.conf
3.编辑配置文件进行配置
在http块
新增配置
#gzip on;
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream ws_server {
server qa.server.com:2048;
server qa.server.ai:2048;
}
server {
listen 2048;
server_name localhost;
location /ws {
proxy_pass http://ws_server/ws;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
简要说明一下,nginx监听2048端口,把请求转发到qa.server.h,qa.server.test
客户端通过这个地址 连接:ws://localhost:2048/ws
之前一直有疑问,为什么ws协议要通过http协议来代理?
ws 协议的握手部分是借用http协议了,在握手完成以后进行了协议的切换(header部分的upgrade)。
这个查看网络连接
Request URL:
ws://localhost:2048/ws
Request Method:
GET
Status Code:
101 Switching Protocols
Response Headersview source
Connection:
upgrade
Date:
Fri, 15 Sep 2017 01:48:28 GMT
sec-websocket-accept:
r+ZclgKaM7r9b6RklYinaGUcvwE=
Server:
nginx/1.12.1
upgrade:
websocket
Request Headersview source
Accept-Encoding:
gzip, deflate, br
Accept-Language:
en-US,en;q=0.8,zh-CN;q=0.6,zh;q=0.4
Cache-Control:
no-cache
Connection:
Upgrade
Host:
localhost:2048
Origin:
http://localhost:8000
Pragma:
no-cache
Sec-WebSocket-Extensions:
permessage-deflate; client_max_window_bits
Sec-WebSocket-Key:
yoh4s/VG9x099oJEoP4FNA==
Sec-WebSocket-Version:
13
Upgrade:
websocket
User-Agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36
看了以上关于什么是基于Nginx的Wesocket负载均衡,如果大家还有什么地方需要了解的可以在创新互联行业资讯里查找自己感兴趣的或者找我们的专业技术工程师解答的,创新互联技术工程师在行业内拥有十几年的经验了。