多段

nginxの多段リバースプロキシ環境でWordpessをパス指定で振り分ける

nginxの多段リバースプロキシを使って、パスによって振り分け先はWordpressにしてみます。 そもそもサブドメインで振り分けるのが設定も複雑にならず、分かりやすくていいんですけどね…。     目標 多段リバースプロキシの環境でパスによって参照するWordpressの乗ったサーバーを振り分ける。 例) http://hoge.com/gallery/docker と http://hoge.com/gallery/docker1 は別なWordpress Dockerfileは下記のものを使いました。     構成 最上リバプロ : nginx 後段リバプロ : nginx WordPress  : nginx WordPressが乗ってるコンテナはDockerです。docker,docker1,docker2はそれぞれ独立したコンテナです。 また、Wordpress側はローカルでクライアントからIPアドレスだけで開ける状態です。 リクエストパスに /gallery があるものは後段リバプロへ行き /gallery/docker は dockerコンテナへ /gallery/docker1 は docker1コンテナへといった感じです。     設定 WordPressが載ってるNginxから見たリクエストURLには /gallery/docker が含まれるともちろんですが 404 が返ってきます。 しかしWordpressが載ってるコンテナのPHPから見た $_SERVER のREQUEST_URI, SCRIPT_NAME, PHP_SELF に /gallery/dockerが含まれていないとPHP側が返す(作成する)ヘッダには /gallery/docker が含まれないレスポンスURLになってしまい、 ログインはできても管理画面が http://hoge.com/wp-admin となり、/gallery/docker が含まれずそれ以降どこのリンクを押しても 404 となります。     最上リバースプロキシ 最上リバースプロキシは後段リバースプロキシへ /gallery というパスを伝えないといけないので http://docker-reverse-proxy/gallery というリクエストURLで後段リバースプロキシへ。 [crayon-5b76fc209cd77676912928/]       後段リバースプロキシ リクエストURLが /gallery/docker のものは http://docker へ /gallery/docker1 のものは http://docker1 へと言った感じにします。 また、Wordpress(docker)のNginxがリクエストURLを見たときに /gallery/docker が含まれないようにします。 [crayon-5b76fc209cd7f350106956/] 最上リバースプロキシでは location ディレクティブの後ろに / をつけませんでしたが 後段リバースプロキシでは付与します。 ココらへんの説明は下記のサイトさんが詳しいです。     WordPress(docker)側の設定 – wp-config.php 前述した通り、PHPから見た $_SERVER のREQUEST_URI, SCRIPT_NAME, PHP_SELF には /gallery/dockerが含まれていないと 404 になってしまうのでグローバル変数を書き換えます。 [crayon-5b76fc209cd83953475215/]   これらの設定をすることで管理画面へログインしても正常に動作すると思います。     php-fpm の設定を変更する wp-config.php の編集ではなく、Wordpress(docker)側の php-fpm の設定でも可能です。 [crayon-5b76fc209cd87676592117/]