V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fantastM
V2EX  ›  程序员

请教 Nginx 中配置 WSS 的问题

  •  
  •   fantastM · 2017-05-12 18:34:20 +08:00 · 2687 次点击
    这是一个创建于 2737 天前的主题,其中的信息可能已经有所发展或是发生改变。

    描述:应用(毕设)部署在本机。我修改了 hosts,将一个域名指向本机。自建证书后,用 Nginx 配置了 HTTPS,也为几个 Tomcat 服务配置了反向代理。

    问题:在用到 WebSocket 的时候,经调试使用 WS 协议是可以的,问题出在使用 WSS 协议上。在 StackOverflow 上查了一下,似乎需要配置一个stunnel的玩意,懵比了。。。个人对 Nginx 了解不多,所以请教一下大家为 Nginx 配置 WSS 的经验。

    8 条回复    2017-05-13 13:08:00 +08:00
    threedream
        1
    threedream  
       2017-05-12 19:49:20 +08:00
    毛毛,我占据一楼
    wly19960911
        2
    wly19960911  
       2017-05-12 20:06:21 +08:00 via Android
    wss 不需要额外设置啊,我用的是 spring-Web socket,另外关注下错误代码
    wly19960911
        3
    wly19960911  
       2017-05-12 20:09:10 +08:00 via Android
    @wly19960911 突然记起来有一个设置是 HTTP 头必须设置 Connection:upgrade,但是不像你要描述的,我想不出我在 nginx 上设置了啥
    fantastM
        4
    fantastM  
    OP
       2017-05-12 21:04:14 +08:00 via iPhone
    @wly19960911 咦,不需要其它配置嘛。我也是用 Spring-WebSocket。我看 Nginx 文档上介绍 WS 配置也是很简单的,愁恼……或许是我姿势不对,明天再试试= =
    wql
        5
    wql  
       2017-05-12 21:14:09 +08:00 via Android
    @fantastM
    @wly19960911
    如果与后端也是 wss 协议的话要配置:
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    wql
        6
    wql  
       2017-05-12 21:14:18 +08:00 via Android
    eoo
        7
    eoo  
       2017-05-13 08:04:06 +08:00 via Android
    楼上正解
    fantastM
        8
    fantastM  
    OP
       2017-05-13 13:08:00 +08:00
    @wly19960911 @wql
    谢谢两位。Nginx 配置 WS 确实如#5 说的,不过我的问题原来不是 Nginx 的锅,是服务端没有配置跨域,受不了......最后贴一下成功的配置图

    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2823 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 02:17 · PVG 10:17 · LAX 18:17 · JFK 21:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.