遇到个问题。
https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-load-balancing-with-ssl-terminationhttps://aws.amazon.com/cn/premiumsupport/knowledge-center/redirect-http-https-elb/
if ($http_x_forwarded_proto = "http") { return 301 https://$host$request_uri; }
if ($http_x_forwarded_proto != 'https') { return 301 https://$server_name$request_uri; }
在配置阿里云的 https 负载均衡的时候,有一些附加头部的选项,我们应该需要 X-Forwarded-Proto ,用它判断用户请求的协议是否是 http 或者 https,根据这个协议来确定是否要重定向,比如把 http 重定向到 https。
配置了负载均衡以后,在 NGINX 发现了这样的日志:
100.97.90.121 - - [18/Dec/2016:09:52:06 +0800] "HEAD / HTTP/1.0" 200 0 "-" "-" "-"
一些在内网发出的 HEAD 请求,这是因为在阿里云的负载均衡的健康检查,因为检查使用的是 HTTP 协议。
最终使用的重定向 NGINX 配置:
if ( $http_x_forwarded_proto != 'https' ) { return 301 https://$host$request_uri; }
才发现宁皓网开了 HTTPS 其实可以顺手打开 HTTP/2
嗯,我也是这么想的。你博客里有推荐的文章吗?
(哎,发现宁皓网主网站已经自动跳转 HTTPS 了……那可以忽略下面的内容了。要开启 HTTP/2 的话,就是在协议里面加 http2 而已,就是这么简单)
server { listen 443 ssl http2; ... }
我的博客确实开了 HTTPS 和 HTTP/2,但是一直没有写博文。
不过你可以看看这两个视频:
https://www.laravist.com/series/deploy-laravel-app-on-vps/episodes/5https://www.laravist.com/series/deploy-laravel-app-on-vps/episodes/6
上面这两个视频用于打开思路的,如果用这个方式来实践的话,较为麻烦,不推荐使用视频中的申请 HTTPS 证书的方式。(个人博客和网站可以使用 https://certbot.eff.org 申请 HTTPS 证书)
还有 Nginx 的官方文档:
http://nginx.org/en/docs/http/load_balancing.htmlhttp://nginx.org/en/docs/http/configuring_https_servers.html
Nginx 的文档用于优化 Nginx 配置,锦上添花的作用。
这里有一份在阿里云部署 HTTPS 的教程:http://www.zhuxiaodong.net/2016/how-to-switch-your-website-to-https-on-aliyun-part1/http://www.zhuxiaodong.net/2016/how-to-switch-your-website-to-https-on-aliyun-part2/
上面这个博文应该属于适合皓哥的实战教程。
皓哥,没看明白现在http和https的网址都可以访问了,想问一下,怎么把 http://kfzhengyu.com http://www.kfzhengyu.com https://kfzhengyu.com 重定向到 https://www.kfzhengyu.com 呢我用的是nginx 1.10.2
刚发现百度也是https
用了阿里云的负载均衡吗?还是只是单独的一台服务器?
单独的一台服务器,没有用负载均衡的
那不能用这个配置。应该参考这个文章:https://ninghao.net/blog/4449
配置 http2 没成功。我在一个 WordPress 网站上试了,还是 http 1.1
HTTP2 需要浏览器、服务器同时支持才行的。其实我也搞不太懂,可以看看这篇文章:《HTTP/2 资料汇总》
又找到一篇文章详细说明这个问题的:《为什么我们应该尽快支持 ALPN?》
我用这个网站测了一下 ninghao.net 的 SSL 评级,发现是支持 ALPN 的,但是用 Chrome 最新版看请求记录,站内资源还是 http/1.1,感觉是反向代理或者负载均衡的原因……
有可能,不过我没有配置 ninghao.net,我配置的是一个用 WordPress 做的网站。等我再试一下。
你提供的资料帮了大忙,我把社区还有一个 WordPress 网站换成了 HTTP2,特别是 WordPress 网站,明显感觉快了不少。
哈哈,估计很多用户也没有用最新的浏览器~
Chrome 不是就行吗。嘿嘿。我看用 Chrome 的用户还是挺多的。
皓哥,阿里的负载均衡使用的是http1.0协议,我使用7层的负载均衡的话,是不是就不能用put/patch这些方法了?
之前我问过阿里云,想用 http2 ,负载均衡得用 tcp 协议。