V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
laoisaudi
V2EX  ›  NGINX

nginx 打开 spdy 失败

  •  
  •   laoisaudi ·
    laosiaudi · 2014-11-26 16:02:15 +08:00 · 4153 次点击
    这是一个创建于 3634 天前的主题,其中的信息可能已经有所发展或是发生改变。
    用nodejs写了一个server,使用了nodejs-spdy模块,监听8000端口,然后用nginx做反向代理,根据教程安装了nginx spdy module并配置(配置文件如下),但是用chrome访问时,通过chrome内置的spdy检查发现并没有走spdy(查看network的header也没有spdy的格式),求解答!

    http {
    upstream frontends {
    server 127.0.0.1:8000;
    }

    server {
    root /path/to/root;
    listen 443 spdy ssl;
    ssl_certificate /path/to/cert;
    ssl_certificate_key /path/to/key;

    location / {
    add_header alternate-protocol 443:npn-spdy/3;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Scheme $scheme;
    proxy_pass https://frontends;

    }
    }
    }
    12 条回复    2014-11-27 13:28:57 +08:00
    pierrec
        1
    pierrec  
       2014-11-26 16:10:16 +08:00
    然后通过网站检测发现,他会说443 no listening 对不
    laoisaudi
        2
    laoisaudi  
    OP
       2014-11-26 16:15:46 +08:00
    @pierrecpen 通过spdycheck.org检测,发现是由spdy的。。。这才是奇怪的地方。。
    hcymk2
        3
    hcymk2  
       2014-11-26 17:22:39 +08:00
    估计和nginx支持的spdy版本有关,我的nginx的spdy版本还是SPDY/2
    flynaj
        4
    flynaj  
       2014-11-26 17:50:40 +08:00
    spdycheck.org 检有就对了么,你的chrome 是不是版本,啊,设置什么的不对!
    14
        5
    14  
       2014-11-26 17:56:07 +08:00
    终端输入 nginx -V 看一下nginx的版本和配置

    Ubuntu默认的是1.4.6版本只支持SPDY2,而Chrome已经放弃支持SPDY2了

    解决方法是升级到1.6.2或者我记得V2EX的报错页面显示的nginx版本是1.7了。。。
    Livid
        6
    Livid  
    MOD
       2014-11-26 18:43:56 +08:00
    在 Ubuntu 上可以用 PPA 安装最新版本的 Nginx:

    https://launchpad.net/~chris-lea/+archive/ubuntu/nginx-devel
    msg7086
        7
    msg7086  
       2014-11-26 20:15:06 +08:00
    5楼正解。Chrome要SPDY3+,老版本nginx只支持SPDY2,协商不成只能走普通https。
    laoisaudi
        8
    laoisaudi  
    OP
       2014-11-27 10:32:47 +08:00
    @hcymk2 @flynaj @14 @Livid @msg7086 果然是版本问题,重新下了一个1.7.7的nginx,重新编译安装。。中间还耗了很长时间把之前的卸载掉。。重新装了新版本就行了,之前只支持spdy2,多谢各位
    msg7086
        9
    msg7086  
       2014-11-27 10:41:58 +08:00
    @laoisaudi 一般来说,如果要编译升级nginx,只要把nginx编译好以后的二进制文件覆盖掉原始文件,然后执行service nginx upgrade就行了。
    laoisaudi
        10
    laoisaudi  
    OP
       2014-11-27 11:11:47 +08:00
    @msg7086 貌似现在用service或者/etc/init.d来重启nginx都没有作用。。改了conf也没有重新加载。。有办法完全卸载然后重新安装吗
    msg7086
        11
    msg7086  
       2014-11-27 11:43:23 +08:00
    @laoisaudi 最好是用系统包安装然后再覆盖nginx。我不知道你是怎么安装的所以也不太好说明。
    而且ubuntu向来是以拒绝升级为主旨的,如果喜欢把玩新科技的建议debian。
    laoisaudi
        12
    laoisaudi  
    OP
       2014-11-27 13:28:57 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5708 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 03:06 · PVG 11:06 · LAX 19:06 · JFK 22:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.