单节点改多节点以三个节点为例:
(1)nginx配置
(2)使用redis存储用户session完成session共享
(3)基于redis的发布订阅模式实现的websocket的集群部署
1,nginx配置
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
send_timeout 25;
sendfile on;
keepalive_timeout 65;
fastcgi_connect_timeout 75;
fastcgi_read_timeout 600;
fastcgi_send_timeout 600;
map $http_upgrade $connection_upgrade {
default upgrade;
‘‘ close;
}
upstream wygyxt {
server 192.168.11.3:8084;
server 192.168.11.3:8082;
server 192.168.11.3:8083;
}
server{
listen 7778;
server_name localhost;
location / {
proxy_pass http://wygyxt/;
include uwsgi_params;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}
}
测试的三个服务分别为:
192.168.11.3:8084; 192.168.11.3:8082; 192.168.11.3:8083;
每个服务都是单独可以访问的,使用nginx代理后通过代理地址 192.168.11.3:7778 访问
这个配置涉及到websocket的代理:
(1)添加
map $http_upgrade $connection_upgrade {
default upgrade;
‘‘ close;
}
(2)在server中添加(三部分都不能少)
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
(3)postman测试
必须是post请求;需要在header中设置Content-Type:Content-Type:text/xml;charset=utf-8;参数选择raw-xml,参数体为xml格式.
(2)redis缓存用户信息
(3)发布订阅模式解决websocket集群模式
原文:https://www.cnblogs.com/excellencesy/p/14539389.html