在 AWS EC2 ELB SSL 上运行 WordPress 时出现 503 错误
Posted
技术标签:
【中文标题】在 AWS EC2 ELB SSL 上运行 WordPress 时出现 503 错误【英文标题】:503 error when running WordPress on AWS EC2 ELB SSL 【发布时间】:2017-01-04 20:09:05 【问题描述】:我刚开始使用 AWS...
我有 1 个EC2 Instance,它正在运行 WordPress(WordPress 由来自市场的 Bitnami 图像提供支持 - https://aws.amazon.com/marketplace/pp/B007IP8BKQ)。
一切正常,我可以访问从标准 HTTP
运行的 WP 安装的前端和后端。
当我将实例连接到 ELB 并尝试通过 HTTPS
访问该站点时,问题就开始了。
我已经完成了使用 ACM 设置 SSL 证书并将证书应用到 ELB 的过程。我还在 EC2 实例的安全组上启用了 443 和 80 端口。 ELB 上的端口转发设置为 443 和 80 都转到 80,我的 WP 配置文件设置为检查 HTTP_X_FORWARDED_PROTO
标头以阻止 WP 进入无限重定向循环。
我认为这一切都很好,因为我可以通过 HTTPS 访问该站点并浏览页面。但是,当我尝试登录时,我被重定向到 HTTP 并解决此问题,我已将 WP 站点 URL 和 WP 主页 URL 设置为 HTTPS。这会导致大量 503 错误 (503 Service Unavailable: Back-end server is at capacity
)。从 AWS 仪表板中,我可以看到实例运行良好。
我进行了大量研究,以确保我已正确设置所有内容(我遇到的一些线程 - Link 1 Link 2 )并且一切似乎都很好(但有些东西是错误的)。
关于如何让 ELB 工作的任何建议?
【问题讨论】:
你看到***.com/a/30702491/1428388了吗? @jbird 我有,谢谢。我已经在我的配置文件中检查标题: if( $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' ) $_SERVER['HTTPS'] = 'on'; 这会导致大量的 503 错误 -- 当“后端服务器已满”不一定准确描述问题。您是否检查过网络服务器日志,看看网络服务器是否真的看到了这些失败的请求,以及这些请求的结果是什么? 我是 AWS 的新手,如何访问这些,@Michael-sqlbot?我需要安装 CloudWatch 还是可以通过 ftp/ssh 访问它们? 服务器上的日志,您可以通过 ssh 连接到服务器。文件名和位置各不相同,但sudo ls -ltr /var/log
并检查最后几个条目通常是一个不错的选择。对于 ELB 经典,请参阅access log collection。日志被写入 S3,您可以在其中获取并读取它们。
【参考方案1】:
在你的 Wordpress 根目录下的 .htaccess 文件中,你是否尝试过添加
<IfModule mod_setenvif.c>
SetEnvIf X-Forwarded-Proto "^https$" HTTPS
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %HTTP:X-Forwarded-Proto ^http$
RewriteRule .* https://%HTTP_HOST%REQUEST_URI [R=301,L]
</IfModule>
还要确保在wp_options
表中,siteurl
设置为 https://,home
设置为 https://
【讨论】:
以上是关于在 AWS EC2 ELB SSL 上运行 WordPress 时出现 503 错误的主要内容,如果未能解决你的问题,请参考以下文章
如何在 AWS EC2 和 ELB 上使用 Godaddy 注册的域实现 SSL 证书
使用直通 TCP SSL 获取 AWS ELB 中的客户端 IP - Apache
使用 AWS Certificate Manager (ACM) 和在 ELB 后面运行的 EC2 服务器通过 HTTPS 处理会话需要 LEMP 堆栈进行哪些更改?