use*_*340 15 apache mod-rewrite https amazon-web-services amazon-elastic-beanstalk
我已经配置了我的Elastic Beanstalk环境以将所有页面重定向到https,重定向工作,但是,实例未通过运行状况检查并终止,任何想法如何配置重写规则?
我的配置:
NameVirtualHost *:80
<VirtualHost *:80>
.
.
.
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule !/_hostmanager/healthcheck https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
Joe*_*erg 13
除了运行状况检查之外,Elastic Beanstalk还需要访问多个主机管理器URL.Grepping /var/log/httpd/elasticbeanstalk-access_log
,我看到请求/_hostmanager/tasks
和/_hostmanager/healthcheck
.
以下是我/etc/httpd/sites/elasticbeanstalk
在EC2实例中添加的规则:
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{REQUEST_URI} !^/status$
RewriteCond %{REQUEST_URI} !^/version$
RewriteCond %{REQUEST_URI} !^/_hostmanager/
RewriteRule . https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
Run Code Online (Sandbox Code Playgroud)
请注意,我还允许非https流量到我的/status
和/version
页面.我实际上使用的/status
是作为实际的健康检查查找URL,因此让该流量跳过重写将避免重定向并使状态查找更快(我假设).
我认为这里的其他一些答案可能不是基于User-Agent
AWS当前设置的任何内容.当我观看Apache日志时,我看到了这个用户代理:
ELB-HealthChecker/1.0
在撰写本文时,以下mod_rewrite
规则对我有用:
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTP_USER_AGENT} !^ELB-HealthChecker.*
RewriteRule . https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
Run Code Online (Sandbox Code Playgroud)
截至2016年,这些答案都不适合我,但这有效:
1检索 /etc/httpd/conf.d/wsgi.conf
2将以下内容添加到虚拟主机:(请注意,第三行可防止安装脚本/opt/elasticbeanstalk/hooks/config.py
等待5分钟无法加载路径的问题/
.)
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTP_HOST} !localhost
RewriteCond %{HTTP_USER_AGENT} !^ELB-HealthChecker.*
RewriteRule . https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
Run Code Online (Sandbox Code Playgroud)
3将文件放入存储库,然后添加以下容器命令:
06_https:
command: "cp wsgi.conf /opt/python/ondeck/wsgi.conf"
Run Code Online (Sandbox Code Playgroud)
然后,安装脚本会自动将此文件复制到/etc/httpd/conf.d
.
归档时间: |
|
查看次数: |
10894 次 |
最近记录: |