所以这是我的配置:
server {
listen 80;
server_name *.example.com;
if ($http_x_forwarded_proto = 'http') {
return 301 https://$server_name$request_uri;
}
}
当我去example.com时,nginx将我重定向到https://example.com,但该页面是stub nginx index.html。 如果我去www.example.com它会保持不安全,所以根本不会重定向。
我做错了什么? 感谢。
编辑: 当我喜欢这篇文章时:https://aws.amazon.com/premiumsupport/knowledge-center/redirect-http-https-elb/
return 301 https:// $ server_name $ request_uri $ http_x_forwarded_proto;
然后重定向https://example.com/http 当然它是404因为http端点是愚蠢的。
答案 0 :(得分:1)
你真的应该避免使用"如果"在nginx中,它是一个性能杀手。
你应该使用它:
server {
listen 80;
server_name *.example.com;
## redirect http to https ##
return 301 https://example.com$request_uri;
}
并定义您的" example.com"服务器
如果elb正确设置为向example.com发送443请求,并且如果你在example.com:443上有一个监听套接字,那就没问题。