【发布时间】:2017-03-04 01:20:57
【问题描述】:
我有一个网站在 Amazon ELB 后面的 EC2 机器上运行。
我已经在 ELB 上配置了 SSL,因此它为我处理了 http 和 https。
https 上的所有请求都可以完美运行。但我想强制(重定向)http请求到https。由于某种原因,它不起作用
我在 nginx 中添加了重定向规则,但是每当我启用该规则时,nginx 服务器就会停止响应。
server {
listen 80;
server_name domain1.com;
gzip on;
gzip_proxied any;
gzip_types text/plain text/xml text/css application/x-javascript;
gzip_vary on;
access_log /var/log/nginx/domain1.access.log;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4000/;
### Redirect http to https ####
if ($http_x_forwarded_proto != "https") {
rewrite ^(.*)$ https://$server_name$1 permanent;
}
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains;";
}
}
请帮助我在哪里配置错误。 TIA。
【问题讨论】:
-
你有什么理由不能使用
return 301 https://$host$request_uri;?
标签: nginx amazon-ec2 amazon-elb