Nginx をフロントにおいて高速化するのは常套手段ですが、そのときに WordPress の wp-admin(管理画面)は SSL を有効にしたいときの設定方法です。
Nginx の設定
# HTTP server
#
server {
listen 80;
location / {
proxy_redirect off;
proxy\_set\_header Host $host;
proxy\_set\_header X-Real-IP $remote_addr;
proxy\_set\_header X-Forwarded-Host $host;
proxy\_set\_header X-Forwarded-Server $host;
proxy\_set\_header X-Forwarded-For $proxy\_add\_x\_forwarded\_for;
proxy_pass http://127.0.0.1:8080/;
}
}
\# HTTPS server
#
server {
listen 443;
ssl on;
ssl_certificate ssl/cert.pem;
ssl\_certificate\_key ssl/cert.key;
ssl\_session\_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl\_prefer\_server_ciphers on;
location / {
proxy_redirect off;
proxy\_set\_header Host $host;
proxy\_set\_header X-Real-IP $remote_addr;
proxy\_set\_header X-Forwarded-Proto https;
proxy\_set\_header X-Forwarded-Host $host;
proxy\_set\_header X-Forwarded-Server $host;
proxy\_set\_header X-Forwarded-For $proxy\_add\_x\_forwarded\_for;
proxy_pass http://127.0.0.1:8080/;
}
}
環境変数 HTTP_X_FORWARDED_PROTO を使って Nginx が受けたのは http か https かを後ろのサービスに伝えます。
WordPressの設定
wp-config.php を編集します。
|
|
上記を wp-settings.php の読み込み前に定義します。環境変数 HTTP_X_FORWARDED_PROTO に従って https ならば環境変数 HTTPS を有効にします。