我正在尝试将http://example.com,https://example.com,http://www.example.com重定向到https://www.example.com。服务器通过ELB通过443端口侦听http和https请求。
nginx config:
git add --all
只有http://example.com和https://www.example.com按预期工作。但http://www.example.com将进入无限重定向循环。
配置文件可能出错。任何帮助将不胜感激。
答案 0 :(得分:4)
创建server
块来处理重定向。
server {
listen 80;
server_name www.example.com example.com;
return 301 https://www.example.com$request_uri;
}
server {
listen 443;
server_name example.com;
return 301 https://www.example.com$request_uri;
}
server {
listen 443;
server_name www.example.com;
// ...
}
更新1:
使用X-Forwarded-Proto request
标头可帮助您识别客户端用于连接服务器的协议(HTTP或HTTPS)。
server {
listen 443;
server_name example.com;
return 301 https://www.example.com$request_uri;
}
server {
listen 443;
server_name www.example.com;
if ($http_x_forwarded_proto = 'http') {
return 301 https://www.example.com$request_uri;
}
// ...
}
来源:http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/x-forwarded-headers.html