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

关于 Nginx 开启 HTTP/2 的问题

  •  
  •   Techxiu · 2016-06-17 20:36:17 +08:00 · 11159 次点击
    这是一个创建于 2863 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Nginx 版本为 1.11.1 , http_v2 和 http_ssl 这两个模块都有,然后配置文件写了 llisten 443 ssl http2;重启无数次了 但是就是无法启动 http2 这是为什么 9egf.png

    9QsP.png

    30 条回复    2016-06-18 22:47:37 +08:00
    fcicq
        1
    fcicq  
       2016-06-17 20:37:50 +08:00   ❤️ 1
    chrome 51 的话需要 openssl 1.0.2
    jasontse
        2
    jasontse  
       2016-06-17 20:50:15 +08:00 via Android
    typo: listen
    selinaspy
        3
    selinaspy  
       2016-06-17 20:52:32 +08:00
    错误信息呢
    maxsec
        4
    maxsec  
       2016-06-17 21:03:07 +08:00   ❤️ 1
    qgy18
        5
    qgy18  
       2016-06-17 21:13:22 +08:00 via iPhone   ❤️ 1
    直接上网址让大家看看啊。
    wsy2220
        6
    wsy2220  
       2016-06-17 21:17:40 +08:00   ❤️ 1
    1L 正解
    OpenSSL1.02 才支持 ALPN
    Techxiu
        7
    Techxiu  
    OP
       2016-06-17 21:31:02 +08:00
    @fcicq
    @maxsec
    @qgy18
    @wsy2220 用 openssl 1.0.2 重新编译了下成功了 谢谢
    qgy18
        8
    qgy18  
       2016-06-17 21:33:35 +08:00 via iPhone
    Techxiu
        9
    Techxiu  
    OP
       2016-06-17 21:40:03 +08:00
    @qgy18 A-很差么 QAQ
    qgy18
        10
    qgy18  
       2016-06-17 21:43:47 +08:00 via iPhone
    @Techxiu 我刚看还是 F ,应该是你刚升级了 OpenSSL 。
    Techxiu
        11
    Techxiu  
    OP
       2016-06-17 21:45:40 +08:00
    @qgy18 嘛还是谢谢大触了
    lujiajing1126
        12
    lujiajing1126  
       2016-06-17 21:52:15 +08:00
    chrome51 以后需要支持 ALPN

    需要编译新版本的 openssl
    caola
        13
    caola  
       2016-06-17 22:17:52 +08:00   ❤️ 1
    server {
    listen 80;
    listen 443 ssl http2;
    server_name www.your-domain.com your-domain.com;
    index index.php index.html;
    root /data/wwwroot/web;

    ssl_certificate /path/to/your-domain.crt;
    ssl_certificate_key /path/to/your-domain.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #允许的协议
    ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; #加密算法(CloudFlare 推荐的加密套件组)
    ssl_prefer_server_ciphers on; #优化 SSL 加密套件
    ssl_session_timeout 10m; #客户端会话缓存时间
    ssl_session_cache builtin:1000 shared:SSL:10m; #SSL 会话缓存类型和大小
    ssl_buffer_size 1400; # 1400 bytes to fit in one MTU

    #add_header X-Frame-Options SAMEORIGIN; #拒绝被嵌入框架(iframe …)
    #add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"; #强制 SSL(包含子域名),并加入 hsts 列表
    add_header X-UA-Compatible "IE=edge,chrome=1"; #IE 用最新内核渲染页面

    if ($host != 'www.your-domain.com' ) { return 301 https://www.your-domain.com$request_uri; } #把根域名 301 到 www 开头的域名
    if ($ssl_protocol = "") { return 301 https://$host$request_uri; } #如果非 ssl 就 301 到 https

    access_log /data/wwwlogs/your-domain.com_nginx.log combined;

    #error_page 404 /404.html;

    if ( $query_string ~* ".*[\;'\<\>].*" ){
    return 404;
    }

    location ~ [^/]\.php(/|$) {
    fastcgi_pass unix:/dev/shm/php-cgi.sock;
    fastcgi_index index.php;
    include fastcgi.conf;
    }

    location ~ .*\.(gif|jpg|jpeg|png|js|css|ico)$ {
    expires 30d;
    }
    }


    chrome 51 以上要使用 openssl 1.0.2 来编译才支持 ALPN 来协商 HTTP2 ,
    可以使用 openssl 1.1.0 版本(目前是测试版) ,或者 LibreSSL 来支持 chacha20 加密套件

    nginx 可以参考上面的这样配置, 80 和 443 端口不用分开两次写。
    zjhzxhz
        14
    zjhzxhz  
       2016-06-17 22:39:59 +08:00
    终于从 F 刷到了 A.

    Techxiu
        15
    Techxiu  
    OP
       2016-06-17 23:03:53 +08:00
    @caola 谢谢,学习了
    4679kun
        16
    4679kun  
       2016-06-17 23:08:35 +08:00 via Android

    DesignerSkyline
        17
    DesignerSkyline  
       2016-06-17 23:16:42 +08:00
    @zjhzxhz 域名前几位应该是浙江杭州的拼音缩写?我也在哈尔滨,不知道有没有机会面基吖= =
    brobird
        18
    brobird  
       2016-06-17 23:22:52 +08:00
    @Techxiu 博客没法评论啊
    另外 CDN 用的是啥?
    Techxiu
        19
    Techxiu  
    OP
       2016-06-17 23:32:06 +08:00
    @brobird 无法评论问题解决了, CDN 用七牛
    4641585
        20
    4641585  
       2016-06-17 23:40:11 +08:00
    根据 qu 大大的教程一步步来就能到 A+。。
    zjhzxhz
        21
    zjhzxhz  
       2016-06-17 23:57:54 +08:00 via iPhone
    @DesignerSkyline
    Bingo ~ 你是杭州的吗😳
    你想怎么面基🌚
    caola
        22
    caola  
       2016-06-18 01:15:51 +08:00
    @zjhzxhz 如果你开启 HSTS 会到 A+,开启 HSTS 后,以后在支持 HSTS 的浏览器中,你无法临时切换到普通的 http ,基本以后都只能是 https
    lslqtz
        23
    lslqtz  
       2016-06-18 06:31:06 +08:00 via iPhone
    @caola 不敢开 HSTS ,保持 A 丢在那。
    对了 BoringSSL 支持 ALPN 嘛
    DesignerSkyline
        24
    DesignerSkyline  
       2016-06-18 07:34:40 +08:00
    @zjhzxhz 话说工大有类似于 LUG(Linux User Group)之类的社团或者组织吗?
    zjhzxhz
        25
    zjhzxhz  
       2016-06-18 09:22:35 +08:00
    @DesignerSkyline 不知道~
    倒是有一个 run.hit.edu.cn. 应该有一个 LUG 在维护吗?
    kkzxak47
        26
    kkzxak47  
       2016-06-18 12:52:18 +08:00 via Android
    kkzxak47
        27
    kkzxak47  
       2016-06-18 12:53:12 +08:00 via Android   ❤️ 1
    breeswish
        28
    breeswish  
       2016-06-18 14:28:13 +08:00
    用 h2o 吧,效率更高,且原生 http/2
    tSQghkfhTtQt9mtd
        29
    tSQghkfhTtQt9mtd  
       2016-06-18 21:47:50 +08:00 via Android
    @4679kun HTTPSECURITYREPORT 这个站 98 分简直 6 。。
    iugo
        30
    iugo  
       2016-06-18 22:47:37 +08:00
    Firebase Hosting 是 A+.
    CloudFlare 是 A.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1091 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 23:32 · PVG 07:32 · LAX 16:32 · JFK 19:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.