【发布时间】:2017-02-06 06:17:33
【问题描述】:
为了在我们的应用程序中分配负载并实现安全性,我们从亚马逊获取了弹性负载均衡器,并在其上配置了 SSL。现在,从 http 到 https 的重定向在服务器或 ELB 上附加的实例上的 nginx 配置中不起作用。 以下是 nginx 配置:-
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name new.example.com;
access_log /var/log/nginx/domain-access.log;
location / {
proxy_read_timeout 90;
proxy_connect_timeout 90;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:8000;
}
}
首先,服务器不支持 https URL,然后我在配置中添加了一些代理设置,但现在的问题是重定向不起作用我在 ngnix 配置中使用以下命令将 http 重定向到 https:-
#version 1
server{
return 301 https://$server_name$request_uri;
}
#version 2
server {
rewrite ^(.*) https://$host$1 permanent;
}
部署在服务器上的应用程序是使用 django 框架构建的。
【问题讨论】:
-
您正在端口 80 上侦听(带有以上配置),但 https 请求转到端口 443;可能是这个问题吗?
-
不,在这两种情况下,请求都来自端口 80。
标签: django python-2.7 redirect nginx