server {
server_name websocket.zhangdazhi.com;
location / {
proxy_pass http://echo.websocket.org; #此服务是网上搭建好的websocket服务
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade; #添加与上游服务的如下请求头部实现与上游服务器的连接为websocket协议
proxy_set_header Connection "upgrade";
}
}
访问http://www.websocket.org/echo.html

image.png
tcpdump -i eth0 tcp port 80 and host 150.109.98.115 -A #抓包可以看到请求头和响应头部
.h...h..GET /?encoding=text HTTP/1.1 #请求头
Host: websocket.zhangdazhi.com
Connection: Upgrade
Pragma: no-cache
Cache-Control: no-cache
Upgrade: websocket
Origin: http://www.websocket.org
Sec-WebSocket-Version: 13
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Sec-WebSocket-Key: dpav+H0x4IKcSRDqMt2U1g==
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
.h.h.h..HTTP/1.1 101 Web Socket Protocol Handshake #响应头部
Server: nginx/1.16.0
Date: Tue, 28 May 2019 07:40:50 GMT
Connection: upgrade
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: content-type
Access-Control-Allow-Headers: authorization
Access-Control-Allow-Headers: x-websocket-extensions
Access-Control-Allow-Headers: x-websocket-version
Access-Control-Allow-Headers: x-websocket-protocol
Access-Control-Allow-Origin: http://www.websocket.org
Sec-WebSocket-Accept: EAs08XRAZhkNq8TA86704zXBwUc=
Upgrade: websocket
网友评论