当将Amazon Lightsail的WordPress转为HTTPS时,负载均衡器的健康检查失败了

在使用Amazon Lightsail构建WordPress网站后,当进行https化后,Lightsail的负载均衡器健康检查失败。因此,记录下当时的处理方法。

Lightsail / WordPress 是第一次接触。

前提条件和环境

前提条件

    • サイト・Wordpressのhttps化が終わっている

 

    • WordPressのSSL化については「Really Simple SSL」プラグインを使用

 

    SSHでサーバーに接続出来て、ファイルの編集が出来る

环境

    • 環境:Amazon Lightsail

 

    • インスタンス:Lightsail の WordPressインスタンスを使用(Webサーバーはapache2の模様)

 

    • DNSゾーン:LightsailのDNSゾーンを使用(Route53も使用)

 

    • ロードバランサー:Lightsailのロードバランサーを使用

 

    • 証明書:AWS Certificate Managerで取得

 

    WordPressのSSL化:「Really Simple SSL」プラグインを使用

非常简单的SSL设置

以下是对原文的中文翻译:

.htaccess是未被使用的设置。
在应用该设置后,插件检测设置有时会显示“❌Really Simple SSL has received no response from the webpage.”,有时则不会显示。
当查看网站内容时,在“See our knowledge base…”中发现有描述:“如果前端页面加载正常,可能是误报”,因此可以访问网站就可以了吧…(难道行不通吗)
(数天后再查看时,这个问题已经消失了,应该是没问题了吧?也许)。
https://really-simple-ssl.com/knowledge-base/how-to-fix-no-response-from-webpage-warning/

20190306_SSL設定02.png

情况

负载均衡器的健康检查失败

20190306_ヘルスチェック02.png

处理

一般趋势来说,

    1. 为了避免加载首页花费过长时间等问题,创建一个用于健康检查的空HTML页面。

 

    1. 在httpd-prefix.conf文件中添加配置。

 

    1. 重启apache2。

 

    自定义Lightsail的健康检查目标。

成为。

创建一个用于健康检查的空HTML。

使用SSH连接到服务器,并使用以下命令创建一个空的HTML文件。

$ touch /opt/bitnami/apps/wordpress/htdocs/health.html

修改 httpd-prefix.conf

我在“应用程序网址移至根目录”设置和“默认”设置之间添加了以下设置。

文件位于/opt/bitnami/apps/wordpress/conf/目录下。

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https [NC]
RewriteCond %{REQUEST_URI} !^/health.html
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

由于没有「RewriteCond %{REQUEST_URI} !^/health.html」时,无法解决健康检查失败的问题,所以我添加了它。
Lightsail负载均衡器在80端口(http)上进行检查,但在SSL化后重定向到443端口会失败(?)。因此,我打算在请求为health.html时,不进行https重定向。

整个团队的情况如下所示。

# App url moved to root
DocumentRoot "/opt/bitnami/apps/wordpress/htdocs"
#Alias /wordpress/ "/opt/bitnami/apps/wordpress/htdocs/"
#Alias /wordpress "/opt/bitnami/apps/wordpress/htdocs"

# User Add
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https [NC]
RewriteCond %{REQUEST_URI} !^/health.html
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# Default
RewriteEngine On
RewriteCond "%{HTTP_HOST}" ^ec2-([0-9]{1,3})-([0-9]{1,3})-([0-9]{1,3})-([0-9]{1,3})\..*\.amazonaws.com(:[0-9]*)?$
RewriteRule "^/?(.*)" "%{REQUEST_SCHEME}://%1.%2.%3.%4%5/$1" [L,R=302,NE]
Include "/opt/bitnami/apps/wordpress/conf/httpd-app.conf

重新启动Apache

$ sudo /opt/bitnami/ctlscript.sh restart apache

自定义Lighsail的健康检查目标

进入Lightsail负载均衡器的设置页面,并在自定义目标中添加“health.html”。

20190306_ヘルスチェック01.png

将其保存。

检查花了一段时间,但最终成功了。

最后

在检测插件的设置中,❌或✅出现产生了一些担忧。
几天后检查时,发现✅的稳定(?)性似乎不错,所以暂且可以接受。

我本来打算拍一张健康检查失败的图片,所以尝试将检查目标返回默认值(/),但却无法成功(最终指定了不存在的目标)。唔,我开始怀疑是否真的需要为httpd-prefix.conf中的health.html设置排除规则。

我参考了一个网站。

以下是一些连接,根据您的要求,我将提供一种可行的选项:

【WordPress】サイト全体をSSL化する

【AWS】Lightsail(WordPress)をSSL化するために証明書を設定する


https://qiita.com/clown0082/items/d9ede1d775cb35aa30fa
https://qiita.com/m1ul24/items/efbf5bfc75d65cffa166
https://qiita.com/foursue/items/58e74c4a8c946dd49e12

广告
将在 10 秒后关闭
bannerAds