【发布时间】:2015-07-09 12:35:42
【问题描述】:
我知道关于这个确切的主题有很多 SO 问题。但是,似乎没有一个适用于最新版本的 Elastic Beanstalk / Docker 组合。
我在 Docker 中运行 Django/Python Web 应用程序,然后将其部署到 Elastic Beanstalk。我希望 http 和 https 处于活动状态,因此我在 AWS EB 配置控制台中同时启用了端口 80 和 443。这很好用。我的网站可以通过 http 和 https 访问。然而,这并不是我真正想要的。我希望端口 80 (http) 自动转发到端口 443 (https)。
我已按照 SO 和其他论坛上的每条建议进行调试,但我认为那里的信息太旧了。 (即,this 不再有效)。
我找到了 EB 设置服务器的位置(在一个名为:/etc/nginx/sites-enabled/elasticbeanstalk-nginx-docker-proxy.conf 的文件中),它的内容是:
map $http_upgrade $connection_upgrade {
default "upgrade";
"" "";
}
server {
listen 80;
location / {
proxy_pass http://docker;
proxy_http_version 1.1;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
当我将此文件从 listen 80; 修改为 listen 443 ssl; 并尝试在 https 上加载我的网站时,我得到 ERR_CONNECTION_REFUSED。
有人可以指出正确的方向来修改此配置文件以从 http 重定向到 https 吗?
【问题讨论】:
标签: http docker nginx https amazon-elastic-beanstalk