http2和ipv6
一. 简介
一直想玩玩http2和ipv6,最近终于有空折腾了,通过nginx支持还是很简单的,记录下。
二. http2
http2理论上是可以不依赖https的,但是所有浏览器好像都不支持没有https的http2,好在我们已经支持https,那就老老实实来吧。
编译nginx时候加上
--with-http_ssl_module
--with-http_v2_module
nginx.conf配置
listen 443 ssl http2;
三. ipv6
首先需要你的vps有ipv6地址,没有的话就木有办法了。
在你的域名解析那儿添加AAAA纪录解析,这个就是配置ipv6地址的。A纪录等后面验证ipv6成功再添加,浏览器会首先尝试访问ipv6,如果出错的话,再访问ipv4的网站。
编译nginx时候加上
--with-ipv6
nginx.conf配置
listen [::]:80;
listen [::]:443 ssl http2;
上面的ipv4和ipv6的端口都会监听,如果只想监听ipv6的端口加上ipv6only=on
listen [::]:80 ipv6only=on;
listen [::]:443 ipv6only=on ssl http2;
ps:刚知道,无法通过ipv6网络访问ipv4网络的内容,以前还以为是互通来着
四. 完整的命令和nginx.conf
命令
./configure --with-pcre \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--with-http_addition_module \
--with-http_ssl_module \
--with-http_v2_module \
--with-ipv6
nginx.conf,配置有点多,只看listen那段即可
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name wangbin.io;
server_name wangbin.io;
root /vps/hosts/www;
index index.html index.htm index.php;
ssl_certificate /vps/certificate/letsencrypt/live/wangbin.io/fullchain.pem;
ssl_certificate_key /vps/certificate/letsencrypt/live/wangbin.io/privkey.pem;
ssl_trusted_certificate /vps/certificate/letsencrypt/live/wangbin.io/chain.pem;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location ~ \.(jpg|png|gif|js|css|swf|flv|ico)$ {
expires 12h;
}
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?$1 last ;
break;
}
}
location ~* ^/(doc|logs|app|sys)/ {
deny all;
}
location ~ .*\.(php|php5)?$ {
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# 禁止访问.svn目录,防止svn信息泄漏,必加项
location ~ ^(.*)\/\.svn\/ {
deny all;
}
}
编译好,参考上面的配置修改好后,执行./nginx -s reload
,我们进行下一步,验证http2和ipv6是否已经成功启用。
五. 验证
http2
Chrome浏览器打开你的网页,新开窗口打开chrome://net-internals/#http2,看到列表有你的网站域名,例如下图那样,就是成功了,恭喜!
ipv6
Chrome打开之前AAAA纪录配置的页面,能打开就表示成功啦,别忘了再去添加个A纪录哈。
六. 总结
放博客的vps木有ipv6地址,ipv6测试是在另外小鸡上通过的,所以现在ipv6还是访问不了滴。