关于 Nginx 开启 HTTP/2 的问题

2016-06-17 20:36:17 +08:00
 Techxiu

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

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

需要编译新版本的 openssl
caola
2016-06-17 22:17:52 +08:00
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
2016-06-17 22:39:59 +08:00
终于从 F 刷到了 A.

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

DesignerSkyline
2016-06-17 23:16:42 +08:00
@zjhzxhz 域名前几位应该是浙江杭州的拼音缩写?我也在哈尔滨,不知道有没有机会面基吖= =
brobird
2016-06-17 23:22:52 +08:00
@Techxiu 博客没法评论啊
另外 CDN 用的是啥?
Techxiu
2016-06-17 23:32:06 +08:00
@brobird 无法评论问题解决了, CDN 用七牛
4641585
2016-06-17 23:40:11 +08:00
根据 qu 大大的教程一步步来就能到 A+。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/286552

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX