nginx の背後に wordpress を設置したら mixed content
wordpress を設置したんだけど、 .htaccess も使いたいと言われて、nginx から apache+php-fpm にリバースプロキシをした。するとhttp/https の混在コンテンツになってしまった。
対策。
nginx → apache で リバースプロキシするさい X-Forwarded-Proto を追加する。
nginx 側
proxy_set_header X-Forwarded-Proto https;
nginx などリバースプロキシでhttpsだとメモを残してヘッダにつけて送る(今回は HTTP_X_FORWARDED_PROTO を使う)
<php if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'){ $_SERVER['HTTPS']='on'; }
HTTP_X_FORWARDED_PROTOをphp 側で受け取って HTTPS 変数を上書きする。
その他の対策方法
まぁいろいろと考えられるけど、一番手っ取り早いのは wp-config.php を弄ることだった。