美文网首页
使用nginx反向代理加密websocket (wss)

使用nginx反向代理加密websocket (wss)

作者: yjwlyy | 来源:发表于2018-04-04 14:22 被阅读0次

    对于普通的websocket(非加密)服务器端直接处理就可以,可以用Go或者Nodejs等等做服务端。对于加密的,那么服务端需要配置证书。

    那么如果你想省掉服务端的改动,其实也可以在代理层做一些工作,让nginx来处理SSL部分,然后通过upstream使用普通的ws协议即可。

    这样的好处就是可以让服务端更轻松,还有一点就是可以利用nginx的负载均衡来分配多个后端服务实体。

    具体配置方法:

    map $http_upgrade $connection_upgrade {

        default upgrade;

        '' close;

    }

    # 以上配置是用来实现的,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";

        } 

    }

    相关文章

      网友评论

          本文标题:使用nginx反向代理加密websocket (wss)

          本文链接:https://www.haomeiwen.com/subject/naajcftx.html