aww*_*ter 13 amazon-web-services elastic-beanstalk
我在通过 AWS Elastic Beanstalk 部署的站点强制使用 HTTPS 时遇到问题。
这是一个使用 EmberJS 的前端应用程序。我已经绕圈子转了很多天,试图弄清楚如何将 http 流量重定向到 https。我在我的 EC2 机器上使用 Amazon Linux AMI。
我得出的结论是(仍然不确定这是否正确)我强制使用 HTTPS 不在 Elastic Beanstalk 中。我允许 HTTP 和 HTTPS 通过我的 Elastic Beanstalk 负载均衡器,并尝试在服务器上重定向。
这是我遇到问题的地方。我找到了很多关于重写规则的答案,没有mod_rewrite这些答案基于X-Forwarded-Proto标题,但是根据查找搜索,该文件在我的 EC2 机器上不存在。
我也试过在.ebextensions目录中创建一个配置文件,但这也不起作用。
我尝试做的主要事情是在尝试访问 http 地址时将用户定向到 https。非常感谢任何指针或建议,谢谢!
编辑:我正在使用运行 Python 3.4(预配置 - Docker)的 64 位 Debian jessie v1.4.1
小智 11
通过使用X-Forwarded-ProtoELB 设置的标头,还可以更轻松地做到这一点,而无需接触负载平衡器。这是我最终做的:
files:
"/etc/nginx/sites-available/elasticbeanstalk-nginx-docker-proxy.conf":
mode: "00644"
owner: root
group: root
content: |
map $http_upgrade $connection_upgrade {
default "upgrade";
"" "";
}
server {
listen 80;
gzip on;
gzip_comp_level 4;
gzip_types text/html text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
access_log /var/log/nginx/access.log;
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;
}
if ($http_x_forwarded_proto = 'http') {
return 301 https://$host$request_uri;
}
}
Run Code Online (Sandbox Code Playgroud)
小智 8
我认为您需要指定您使用的 Elastic Beanstalk 环境(请参阅:支持的平台),因为不同的环境有不同的配置。
基本上,您需要自定义:
要自定义它,您可以使用 CLI 或.ebextensions.
您可以检查在AWS Elastic Beanstalk上启用 HTTPS 和 HTTP 重定向。它告诉您如何配置 Elastic Beanstalk Single Docker Container 服务 HTTPS 和 HTTP(重定向到 HTTPS)。您可以根据需要调整配置。
| 归档时间: |
|
| 查看次数: |
21962 次 |
| 最近记录: |