python---websocket
2021-04-26 19:29
标签:backend 方式 nginx 客服端 pst 客户 两台 多路复用 http 1、 简介 http是基于tcp协议的, 必须通过三次握手才能进行通信,如果需要进行长轮训请求资源则非常不便,websocket解决了这一问题,实现了多路复用,全双工通信。在webSocket协议下客服端和浏览器可以同时发送信息。 建立了WenSocket不必等待客户端先请求。这时的服务器已有主动权想什么时候发就可以发送信息到服务器。而且信息当中不必在带有head的部分信息了与http的长链接通信来说,这种方式,不仅能降低服务器的压力。而且信息当中也减少了部分多余的信息。 2、nginx需更新配置 普通的nginx满足不了websocket的要求,需要更新其配置。否则会报出socker error错误 配置为: 第一步 第二步: 最后: 最后重启nginx python---websocket 标签:backend 方式 nginx 客服端 pst 客户 两台 多路复用 http 原文地址:https://www.cnblogs.com/musl/p/13251480.htmlmap $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;
}
}
map $http_upgrade $connection_upgrade {
default upgrade;
‘‘ close;
}
表示的是
1. 如果 $http_upgrade 不为 ‘‘ (空),则 $connection_upgrade 为 upgrade
2. 如果 $http_upgrade 为 ‘‘ (空),则 $connection_upgrade 为 close
upstream wsbackend{
server ip1:port1;
server ip2:port2;
keepalive 1000;
}
表示的是 nginx负载均衡
1. 两台服务器 (ip1:port1)和(ip2:port2)
2. keepalive 1000 表示的是每个nginx进程中上游服务器保持的空闲连接,当空闲连接过多时,会关闭最少使用的空闲连接.当然,这不是限制连接总数的,可以想象成空闲连接池的大小.设置的值应该是上游服务器能够承受的
# websocket support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
上一篇:JavaScript面试题(1)
下一篇:多线程和多进程效率的对比