最終更新日:2022年8月13日 at 10:22 PM
巷はコロナで大騒ぎですが、私は先日Webサイトのメンテナンスの失敗で大変な思いをしました😱
久々にIT以外の記事を書く予定でしたが、あまりにも酷かったので、備忘録として事の経緯を残しておきます。
WordPressを最新バージョンの5.3.2に上げて、ブロックエディタ「Gutenberg」で記事を書いている途中、Jetpackの新機能「タイルギャラリー」の動作を確かめるため、WordPressプラグイン「Jetpack」の設定で「サイトアクセラレーター (旧称 Photon)」を有効にしたところ、突然、本Webサイトの全ての画像が表示されなくなりました💦
もともと、Jetpackの「Photon」は、FancyBoxなど他の画像処理系のプラグインと干渉し不具合が発生する事は分かっていたので、使ってはいけない事は重々承知していたのですが、ちょっとテストするだけという軽い気持ちでJetpackの「サイトアクセラレーター/画像の読み込みをスピードアップ」をONにしてしまったのが運の尽きでした。
ブロックエディタで「タイルギャラリー」を使うには、この設定が前提となるのですが、結論から先に言いますと、ブロックエディタの「タイルギャラリー」は使用不可。Jetpackの設定で、サイトアクセラレーターは絶対有効にしてはいけないという事です。
実は、他のテストサーバーでは、Jetpackのサイトアクセラレーターを有効にしてもちゃんと画像は表示されるのですが、コアーサーバーの環境ではサーバーのセキュリティー設定の関係かと思われますが、どうやらCDN(Content Delivery Network)が有効に機能しないようです。
このサイトアクセラレーターとは、投稿やページの画像、アイキャッチ画像、投稿サムネイルなどのデータの表示をWordPressのサーバーが肩代わりをするサービスです。これにより、自分が運営するサーバーの負荷と転送量が減らせるというメリットがあるのですが、そもそも転送量無制限のコアーサーバーにはメリットはなさそうです。
また、JetpackのCDNでは、画像が圧縮されるので画質が落ちる上、以下の制限事項が表明されていますので、なおさら萎えてしまいます。
キャッシュが無効化されません – 現在、画像は「永久に」キャッシュされ、静的アセットは、使用している公開バージョンの WordPress、Jetpack、WooCommerce に関連付けられます。画像については、画像を「再読み込み」するとき、ファイル名の変更が必要になります。ランダムなクエリー引数を追加する方法は、ごく一般的なキャッシュ削除法ですが、ここでは使用できません。
消去したい画像がある場合は、ご連絡ください。サイトに表示されるその画像ファイルへのダイレクトリンクをお知らせいただければ、WordPress.com が画像を消去します。画像ファイルのダイレクトリンクは、i0.wp.com、i1.wp.com、i2.wp.com、i3.wp.com のいずれかで始まるリンクです。
以上の事を踏まえ、Jetpackの設定で「サイトアクセラレーター」をOFFにしたところ、以下のようなエラーが表示され、OFFに出来なくなりました。これもコアーサーバーのみに起こる現象らしいです。
設定の更新中にエラーが発生しました (無効なパラメーター: photon (Status 400))。
2020.04.23 追記
上記のHTTP400エラーについて、Jetpackのサポートフォーラムを調査したところ、どうやらサーバー側のセキュリティ設定により、海外からのIPアドレス制限を受けているものと考えられます。なお、当方の「.htaccess」のIPアドレス制限の範囲内では無い事は確認済です。
仕方なくデータベースをリストアし、一旦、画像は表示されるようにはなりましたが、Jetpackの設定は変わらずダメでした。
どうやらこの設定はWordPress側に委ねられてるようでした。
その後、ネットで調べたところ、以下URLにJetpack設定の隠しページがある事が分かり、そこでCDN関連の設定を無事、無効にする事が出来ました。
/wp-admin/admin.php?page=jetpack_modules
そこで、ほっとしたのは束の間、混乱した中でJetpackを再インストールしたのが災いしたのかもしれませんが、今度は以下のエラーが発生し、JetpackとWordPressの連携が出来なくなりました。
これも調べたところ、以下の”.htaccess”に記述したRPC拒否設定を一旦削除する事で解決しました。
そもそも、プラグイン「Disable XML-RPC Pingback」をインストールしているので、この記述は不要だったかもしれないです。
# Denial xmlrpc.php
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
ここで、一旦、プラグイン「Jetpack」を無効化&再有効化後、WordPressとの連携に成功し、これでやっと鬼門のJetpack「サイトアクセラレーター」をOFFに出来ました。もちろん、画像もちゃんと表示されるようになりました。
2020.04.12 追記
Jetpack以外のBOTからのピンバック攻撃を回避するため、「.htaccess」の設定に以下の記述を追加しました。これと同時に、プラグイン「Disable XML-RPC Pingback」を無効にしアンインストールしました。
# XML-RPC にアクセス制限、Automattic(Jetpack)は許可
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
# Automattic を許可
Allow from 54.217.201.243
Allow from 54.232.116.4
Allow from 122.248.245.244
Allow from 192.0.64.0/18
</Files>
# END XML-RPC にアクセス制限、Automattic(Jetpack)は許可
2020.04.12 追記
Jetpackの数々のトラブルを備忘録として、以下のWordPressのJetpackプラグインのサポートフォーラムにJetpackの評価を記載しました。
🔗 Too much trouble
上記の内容は、全て英文のため、以下に日本語も併記します。
Support » Plugin: Jetpack by WordPress.com » Too much trouble
トラブルが多すぎ
★☆☆☆☆
以下がそのトラブル内容です。
1. サイトアクセラレーターのトラブル
Jetpackのサイトアクセラレーターを有効にすると全ての画像が消えるトラブルに遭いました。これは、レンタルサーバーのセキュリティ設定などの違いでCDNに対応しないサーバーが存在するためです。実際私が運営するサーバーの一つは動作しませんでした。
また、JetpackのCDNは、一度登録された画像データのキャッシュは二度と変更できなくなるので、この機能はとても怖くて使えません。
2. XML-RPC Pingbackを無効にできない
このプラグインを使うためには、セキュリティ上問題のある「XML-RPC Pingback」を有効にしないとインストールもできないし、有効にすることで、今後のセキュリティに不安をもたらします。
やむを得ずですが、Jetpack以外のBOTからのピンバック攻撃を回避するため「.htaccess」の中に以下の記述を追加しました。(2020.04.20 更新)
# Restrict access to XML-RPC, Allow Automattic (Jetpack)
<Files xmlrpc.php>
Order Deny, Allow
Deny from all
# Allow Automattic
allow from 66.135.48.128/25
allow from 66.155.8.0/22
allow from 66.155.38.0/24
allow from 69.174.248.128/25
allow from 72.233.119.192/26
allow from 76.74.248.128/25
allow from 76.74.254.0/25
allow from 76.74.255.0/25
allow from 185.64.140.0/22
allow from 192.0.64.0/18
allow from 198.181.116.0/22
allow from 192.0.64.0/255.0.64.0
allow from 207.198.101.0/25
allow from 207.198.112.0/23
allow from 209.15.21.0/24
allow from 216.151.209.64/26
allow from 216.151.210.0/25
</ Files>
# END Restrict access to XML-RPC, Allow Automattic (Jetpack)
2020.09.28 更新
Automattic社のIPアドレスは、今後変わる可能性があるため、現在、上記の定義は削除しています。
また、Jetpackの継続的な運用を考えると、XML-RPC Pingbackは常時有効にした方が面倒な事が起こらないため、今はXML-RPC Pingbackを有効にして運用しています。
3. JetpackとWordPressとの接続が確立されている状態にも拘わらず、WordPressのサイトヘルスチェックを実行すると、JetpackとWordPressとの接続が切れているという以下の致命的エラーが表記されます。
“My site name Not connected. : 200” is displayed.
この事象は、私が保有するWebサイトのうち、非暗号化(http:)では起こらず、暗号化(https:)サイトでのみ確認しています。
4. まとめ
GutenbergでJetpackの「タイルギャラリー」を使用するためには、Jetpackのサイトアクセラレーターを有効にしなければ使えません。よって、サーバーの環境によっては、この機能は使えないし、それだけのために、そんな恐ろしい機能を有効にすべきでないと考えます。
Jetpackは、多くの機能が提供される分、他のプラグインとの競合のリスクを飛躍的に高めており、クセの強いプラグインだと思います。
現在、Jetpackを正常に作動させるために、他のプラグインを止めたり、Jerpackを再インストール&再アクティベートしたりと、大変な労力をユーザに求めていますが、これはまともなプラグインの姿ではないと思います。
今のところ私にとって、Jetpackに関しては、購読とRSSの機能のみを必要としています。その他のJetpackの機能に関しては、他のプラグインでカバーできるため、不要です。
ちなみに、Jetpackをインストールすると、購読とRSS機能はオプションとして扱われ、Jetpackモジュールのメニューから機能を追加しない限り使用できません。不要な機能だけが標準メニューに含まれているという事実は不可解です。
いろいろと不満を書きましたが、今後は他のプラグインの邪魔にならぬよう、もっとシンプルなプラグインを目指して改善して欲しいと思います。
2020.04.18 追記
Jetpackの200エラーに対処する新たなバージョン(8.4.2)が4月14日にリリースされたので、早速、Jetpackプラグインを更新しました。
しかしながら、今度は、Jetpackの設定画面に以下のエラーが出て全く先に進まなくなりました。
Unable to insert blog. Please try again or contact support.
プラグインを全て無効にし、Jetpackをアンインストール&再インストールし、有効化しても、同じエラーが出ました。
この件で、Jetpackサポートフォーラムならびに、Jetpackを運営するAutomatic社の担当エンジニアに問い合わせていたのですが、以下のフォーラムへのリンクに記載した通り、やっと、この問題が解決しました。
これは、Jetpackのサーバー側に問題があったようです。
ちなみに、これでサイトヘルスステータスでもエラーは表示されなくなりました。
🔗 An error occurs in Jetpack 8.4.2 and I cannot set it!
2021.06.21 追記
以下のWordPressフォーラムにJetpackの不具合について報告しました。
その主な不具合は、Jetpackのサイトアクセラレータを有効にしてもCDNが機能せず、画像が表示されないこと、それからJetpackのディスカッション設定でコメントを有効にした場合、コメント欄の表示が壊れるなどです。
恐らく、原因はコアサーバーのセキュリティ制御により、Automattic社から送受信されるIPアドレスに制限が掛けられているのではないかと思われます。
コアサーバーのアクセス制限は自動的に行われるそうなので、根本的な解決は難しく、コアサアーバーにおいて、Jetpackの全ての機能を利用するのは無理なようです。
以下は、コアサーバー・サポートからの回答です。
日頃より弊社サービスをご愛顧くださり、ありがとうございます。
カスタマーサポートアンケート -バリュードメイン-
お問い合わせの件について案内させていただきます。
弊社担当部門にて確認いたしましたところ、ご連絡の「192.0.64.0/18」のIPアドレスの範囲でいくつかのIPアドレスが弊社サーバー側で拒否され接続制限が実施されている状況でございました。
上記制限は担当部門にて解除しております。
しかしながら、弊社ではサーバーの高負荷等の原因となっている接続元IPアドレスを自動的に拒否するといったセキュリティ機構がございます。
そのため、再度対象のIPアドレスからの接続を拒否する場合がございますが、セキュリティ上、上記制限実施を停止するといったことはできかねますことを何卒ご了承いただきますようお願いいたします。
その他ご不明な点がございましたら、お気軽にお問い合わせください。
今後とも弊社サービスをよろしくお願い申し上げます。
https://forms.gle/ALokqBu4ws9e4v4Z6
2021.06.24 更新
昨日、以下の通りホスティング会社であるコアーサーバーより、以下の連絡がありました。
この度弊社にて実施いたしました対応は、WordPressに対するブルートフォースアタックが疑われる挙動の接続元IPアドレスに対する制限等、IPアドレスによる制限全ての解除を実施しております。
カスタマーサポートアンケート -バリュードメイン-
https://forms.gle/ALokqBu4ws9e4v4Z6
そこで、Jetpackの動作確認を行いました。
その結果、コアサーバーについて、以下の不具合が解消されたことを確認しました。
- Jetpackの拡張モジュールのON/OFFを行うと”Status 400″のエラーが発生する
- サイトアクセラレータ(CDN)が機能しない
よって、このトピックはクローズさせて頂きます。
本調査にご協力頂きました方々に感謝を申し上げます。
この度は、どうもありがとうございました。