2020/04/30~2020/05/02に発生した502エラーとそれの対策について (EWWW Image OptimizerとWebP)

nginx,TECHNOLOGY,WordPress,サーバー

おはようございます。FRONTL1NE運営チームのFL1NEです。

2020/04/30から2020/05/02にかけて発生していたFRONTL1NE.NETの502エラーによって、サイトをご利用いただいている皆様にご不便おかけしましたことをお詫び申し上げます。

今回のエラー原因と対策をここに書いておきます。

 

 

エラー原因

原因追求メモ

不特定の一部ページで502エラーが発生してため、nginxのエラーログを確認したところ

 

2020/05/01 16:22:03 [error] 18298#0: *1692 FastCGI sent in stderr: " argument supplied for foreach() in /opt/bitnam
i/apps/wordpress/htdocs/wp-content/plugins/ewww-image-optimizer/classes/class-eio-alt-webp.php on line 1012PHP mess
age: PHP Warning:  Invalid argument supplied for foreach() in /var/www/html/wp-content/plugins
/ewww-image-optimizer/classes/class-eio-alt-webp.php on line 1012PHP message: PHP Warning:  Invalid argument suppli
ed for foreach() in /var/www/html/wp-content/plugins/ewww-image-optimizer/classes/class-eio-al
t-webp.php on line 1012PHP message: PHP Warning:  Invalid argument supplied for foreach() in /opt/bitnami/apps/word
press/htdocs/wp-content/plugins/ewww-image-optimizer/classes/class-eio-alt-webp.php on line 1012PHP message: PHP Wa
rning:  Invalid argument supplied for foreach() in /var/www/html/wp-content/plugins/ewww-image
-optimizer/classes/class-eio-alt-webp.php on line 1012PHP message: PHP Warning:  Invalid argument supplied for fore
ach() in /var/www/html/wp-content/plugins/ewww-image-optimizer/classes/class-eio-alt-webp.php 
on line 1012PHP message: PHP Warning:  Invalid argument supplied for foreach() in /opt/bitnami/apps/wordpress/htdoc
s/wp-content/plugins/ewww-image-optimizer/classes/class-eio-alt-webp.php on line 1012PHP message: PHP Warning:  Inv
alid argument supplied for foreach() in /var/www/html/wp-content/plugins/ewww-image-optimizer/
classes/class-eio-alt-webp.php on line 1012PHP message: PHP Warning:  Invalid argument supplied for foreach() in /o
pt/bitnami/apps/wordpress/htdocs/wp-content/plugins/ewww-image-optimizer/classes/class-eio-alt-webp.php on line 101
2PHP message: PHP Warning:  Invalid argument supplied for foreach() in /opt/bitnami/apps/wordpress/htdocs/wp-conten
t/plugins/ewww-image-optimizer/classes/class-eio-alt-webp.php on line 1012PHP message: PHP Warning:  Invalid argume
nt supplied for foreach() in /var/www/html/wp-content/plugins/ewww-imag

のようなエラーが記録されていた。

/opt/bitnam i/apps/wordpress/htdocs/wp-content/plugins/ewww-image-optimizer/classes/class-eio-alt-webp.phpでエラーが発生していたようなので、どうやらEWWW Image Optimizerのエラーっぽい。

該当プラグインは、つい最近アップデートしたばかりであった。 (5.2.5から 5.3.0になったばかり)

 

2020/04/28 14:55:05 [error] 21738#0: *1525517 access forbidden by rule, client: 108.162.245.49, server: localhost, 
request: "GET /.user.ini HTTP/1.1", host: "frontl1ne.net", referrer: "https://frontl1ne.net/.user.ini"
2020/04/30 01:15:04 [error] 21739#0: *1610596 FastCGI sent in stderr: "PHP message: Error checking in buffer: The b
uffer you checked in was not checked out" while reading upstream, client: 162.158.107.228, server: localhost, reque
st: "POST /wp-admin/admin-ajax.php?action=wordfence_testAjax HTTP/1.1", upstream: "fastcgi://unix:/opt/bitnami/php/
var/run/www.sock:", host: "frontl1ne.net", referrer: "https://frontl1ne.net/wp-admin/admin-ajax.php?action=wordfenc
e_testAjax"

以前のログを精査すると同じようなエラーは発生しておらず、アップデート後に突如発生していたようである。

そこで、EWWW Image Optimizerの「JS WebP Rewriting」オプションを無効化したところ、502エラーは解消された。

 

同じような問題が他の人にも起きていないか確認したところ、WordPressの公式フォーラムに上の画像のような投稿を見つけた。

内容をみると最新のEWWW Image Optimizerに発生したエラーであると判明。

 

結論

EWWW Image Optimizerプラグインの最新バージョンに発生しているJS WebP Rewritingのエラーが原因

 

 

対策について

対策としては一旦、EWWW Image Optimizerを過去バージョンである 5.2.5にロールバックした。

近日中に該当の問題を修正したバージョンがリリースされるようなので、ひとまずこれでしのぎます。

プラグインのロールバック(ダウングレード)については別途記事にします。

 

追記 : 記事にしました

 

 

参考文献

error after updating to latest version | WordPress.org

nosilver4u/ewww-image-optimizer | GitHub

速習!ワードプレス高速化テクニック

速習!ワードプレス高速化テクニック

吉田 貴之
715円(04/26 07:56時点)
Amazonの情報を掲載しています
Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

山本 陽平
2,827円(04/26 06:23時点)
Amazonの情報を掲載しています