新環境への移行

この記事は1年以上前に書かれたものです。 情報が古い可能性があります。

超絶久々の記事更新。

就職、引っ越し、さらに引っ越しで環境が変わってまともに動かせていなかったので。。。(´・ω・`)?

というわけで新環境の紹介ととトラブルの供養をします!

構成

インターネット -> ルータ -> リバースプロキシ -> WordPress

サブドメインで振り分けるため nginx でリバースプロキシを構築しました。

リバースプロキシで SSL/TLS をオフロードするのですが、ここでトラブル発生!!
なぜか画像も CSS も読み込まれない・・・


(テスト環境での画像)

結構悩まされましたが、nginx のプロキシ設定と wordpress の https 関連の両方が必要だった模様。

プロキシ設定はこんな感じ。

    # proxy config
    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-Proto    https;
    proxy_set_header    X-Forwarded-For    $proxy_add_x_forwarded_for;
    proxy_hide_header   X-Powered-By;

    location / {
        proxy_pass http:///;
        proxy_redirect http:// https://;
    }

次の設定を追加した。

proxy_set_header X-Forwarded-Proto https;
これはクライアントがリバースプロキシに接続するために使っていたプロトコルを指定するための設定。

proxy_redirect http:// https://;
こちらもアプリケーションに https を知らせる設定。

どっちかだけでもいいのかもしれない。(よくわかってない)

wordpress 側

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

define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);

こちらのサイトを参考に。ありがとうございました。
https://blog.admkazuya.org/archives/243

ではまた。

コメント

タイトルとURLをコピーしました