Wordpress "mixed content the page at ' url ' was loaded over https" nginx reverse proxy
1 Mins read
Nginx のリバースプロキシ環境において、フロントエンドの Nginx が 443 (HTTPS) でリクエストを受け付け、内部では 80 (HTTP) でラウンドロビン方式の負荷分散を行っている場合、Chrome で Mixed Content エラー が発生することがあります。
この問題を解決するために、wp-config.php
の冒頭に以下の設定を追加すると効果的です。
/** mixed content the page at ' url ' was loaded over https wordpress nginx */
/** プロキシ設定の場合、httpsでリダイレクトするように設定が必要! */
/** HTTP_X_FORWARDED_FOR の環境変数名はAWSなどお使いのサーバー環境により若干変更されている時があるので要確認すること */
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$_SERVER['HTTPS'] = 'on';
}
内部では 80 (HTTP)側の nginx.conf
ファイルを操作できる方は、以下の設定でも対応可能です。
どちらかお好みでOK
location ~ \.php$ {
include fastcgi_params;
# mixed content the page at ' url ' was loaded over https wordpress nginx
# プロキシ設定の場合、httpsでリダイレクトするように設定が必要!ここから
fastcgi_param HTTPS on;
fastcgi_param HTTP_X_FORWARDED_PROTO https;
# ここまで
fastcgi_intercept_errors on;
fastcgi_pass php-fpm;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}