[ Client ] -- wan -- [ GCP ] -- vpn -- [CDSLVM (WordPress) 192.168.201.51 ] 上記の様な配置でWordPressを構築する。 このesaではGCP上のリバースプロキシの設定を行う。
変更前のnginx設定ファイル(一部)¶
server {
server_name gsvc.tak-cslab.org;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
access_log /var/log/nginx/access.gsvc.log;
include /etc/nginx/common-oauth2.conf;
location / {
auth_request /oauth2/auth;
error_page 401 = /oauth2/sign_in;
auth_request_set $email $upstream_http_x_auth_request_email;
proxy_set_header X-Email $email;
auth_request_set $auth_cookie $upstream_http_set_cookie;
add_header Set-Cookie $auth_cookie;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/gsvc.tak-cslab.org/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/gsvc.tak-cslab.org/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
変更後のnginx設定ファイル(一部)¶
server {
server_name gsvc.tak-cslab.org;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
access_log /var/log/nginx/access.gsvc.log;
include /etc/nginx/common-oauth2.conf;
location / {
proxy_pass http://192.168.201.51/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
auth_request /oauth2/auth;
error_page 401 = /oauth2/sign_in;
auth_request_set $email $upstream_http_x_auth_request_email;
proxy_set_header X-Email $email;
auth_request_set $auth_cookie $upstream_http_set_cookie;
add_header Set-Cookie $auth_cookie;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/gsvc.tak-cslab.org/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/gsvc.tak-cslab.org/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
proxy_pass http://192.168.201.51/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
アクセス時のエラー¶
リバースプロキシの設定を行ったサーバへブラウザへアクセスすると、WordPressの駆動しているサーバへリダイレクトが行われ、以下のようなエラーが表示される。

URL設定の変更¶
手順1¶
「2.WordPressのお引越し」に記載したSearch-Replace-DBを使用し、サイトURLの置換を行う。
SearchReplaceのsearch for に://駆動サーバURL、replace withに://GCP上のURLを記述する。
| | 例 |
| ---- | ---- |
| search for | ://192.168.201.51 |
| replace with | ://gsvc.tak-cslab.org |
手順2¶
リバースプロキシを行ったサーバがHTTPSで通信する場合、以下の置換も行う。
SearchReplaceのsearch for にhttp://GCP上のURL、replace withにhttps://GCP上のURLを記述する。
| | 例 |
| ---- | ---- |
| search for | http://gsvc.tak-cslab.org |
| replace with | https://gsvc.tak-cslab.org |
確認¶
ブラウザのキャッシュが残っている場合、リダイレクトされる可能性があるので
シークレットタブで表示を確認する。

リダイレクトが発生し、アクセスできない場合¶
wp-adminなどの管理画面にアクセスする際に、以下のようなエラーが表示される事ある。
この症状が発生した場合、WordPressの設定ファイルwp-config.phpに以下の内容を追加する。
/* カスタム値は、この行と「編集が必要なのはここまでです」の行の間に追加してください。 */
define('FORCE_SSL_ADMIN', true);
if ( ! empty( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' ) {
$_SERVER['HTTPS']='on';
}
/* 編集が必要なのはここまでです ! WordPress でのパブリッシングをお楽しみください。 */