對于普通的websocket(非加密)服務(wù)器端直接處理就可以慢蜓,可以用Go或者Nodejs等等做服務(wù)端亿絮。對于加密的肛响,那么服務(wù)端需要配置證書岭粤。
那么如果你想省掉服務(wù)端的改動,其實也可以在代理層做一些工作特笋,讓nginx來處理SSL部分剃浇,然后通過upstream使用普通的ws協(xié)議即可。
這樣的好處就是可以讓服務(wù)端更輕松猎物,還有一點就是可以利用nginx的負(fù)載均衡來分配多個后端服務(wù)實體虎囚。
具體配置方法:
map $http_upgrade $connection_upgrade {
? ? default upgrade;
? ? '' close;
}
# 以上配置是用來實現(xiàn)的,map的用法可以參照
http://www.ttlsa.com/nginx/using-nginx-map-method/
upstream websocket {?
? ? server 192.168.1.88:8082;
}?
server {?
? ? listen 443 ssl;
? ? server_name test.com;
? ? ssl_certificate *.crt;
? ? ssl_certificate_key *.key;
#證書和配置文件在同級目錄不用加路徑
? ? access_log logs/test.access.log? main;
? ? location / {
? ? ? ? proxy_pass http://websocket;
? ? ? ? proxy_set_header X-Real-IP $remote_addr;
? ? ? ? proxy_set_header Host $host;
? ? ? ? proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
? ? ? ? proxy_set_header Upgrade $http_upgrade;
? ? ? ? proxy_set_header Connection "upgrade";
? ? }?
}