WordPress+Nginx(リバースプロキシ)+admin-sslプラグインでハマった点

このブログを設置しているサーバーの構成を変更し、リバースプロキシにNginxを設置しました。
(User<->Nginx<->Apache<=>PHP)
その際、admin-sslプラグインでがっつりハマってしまったので記録します。

admin-sslプラグイン

admin-sslプラグインは、WordPressの管理画面へのアクセスをHTTPSで行うよう自動的にURLを書き換えたり、リダイレクトしてくれるプラグインです。デフォルトではPHPの$_SERVER['HTTPS']変数の値でHTTPSかどうか判定します。

NginxをSSLリバースプロキシとして設置する

NginxをSSLを利用できる設定のリバースプロキシとして設置しました。もちろんX-Forwarded-Proto等リバースプロキシであることを示すヘッダを付加してApacheへリクエストしています。ところが・・・

おや?WordPressの様子が・・・

ダッシュボードだと思った?残念リダイレクトループでした!!!

ダッシュボードだと思った?残念リダイレクトループでした!!!

▂▅▇█▓▒░(’ω’)░▒▓█▇▅▂うわああああああ

どうも$_SERVER['HTTPS']が定義されていなかったようです。。。

とりあえず対応

このサイトを見ながらwp-config.phpに以下を追記して事なきを得ました。

if ( isset(  $_SERVER['HTTP_X_FORWARDED_PROTO'] )
        &amp;&amp; $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https' )
        $_SERVER['HTTPS'] = 'on';

閲覧に影響がなかったのは唯一の救いかも。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です