質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

0回答

1770閲覧

Wordpressをサブディレクトリに置くための適切なリダイレクト設定(nginx, docker)

Neq3

総合スコア4

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2021/05/16 06:34

編集2021/05/16 08:04

前提・実現したいこと

以下の構成でサーバーを構築したいです。
・トップページ
http:///
・Wordpress
http://
/blog/

環境を切り分けるためにDockerを使用し、[1]を参考にリバースプロキシを設定しています。(docker-compose.ymlは下記に記載しています)
トップページは正常に表示されますが、Wordpressのリソースがトップページ用のコンテナにリダイレクトされ、404になってしまいます。
Wordpressが正常に読み込まれるよう、適切なリダイレクト設定をご教授いただければ幸いです。
よろしくお願いいたします。

[1] 実践編ーDockerを使ってnginxでリバースプロキシを立ててみる

発生している問題・エラーメッセージ

トップページ(http:///)は正常に表示されます。
Wordpress(http://
/blog/)は、cssなどhtml以外のリソースがtop-containerで処理され、404が返されています。

$ sudo docker-compose up (略) blog-container | 118.86.186.20 - - [16/May/2021:05:26:57 +0000] "GET /blog/ HTTP/1.0" 200 3973 "http://********/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0" rev-proxy-container | 118.86.186.20 - - [16/May/2021:05:26:57 +0000] "GET /blog/ HTTP/1.1" 200 3654 "http://********/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0" top-container | 2021/05/16 05:26:57 [error] 24#24: *13 open() "/usr/share/nginx/html/wp-includes/css/dist/block-library/style.min.css" failed (2: No such file or directory), client: 172.20.0.4, server: localhost, request: "GET /wp-includes/css/dist/block-library/style.min.css?ver=5.7.2 HTTP/1.0", host: "top-server", referrer: "http://********/blog/" top-container | 172.20.0.4 - - [16/May/2021:05:26:57 +0000] "GET /wp-includes/css/dist/block-library/style.min.css?ver=5.7.2 HTTP/1.0" 404 154 "http://********/blog/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0" "-" (略)

該当のソースコード

ファイル構成

docker-compose.yml top - index.html blog - wp-config.php, index.php, ... reverse-proxy - nginx.conf

docker-compose.yml

yaml

1version: '3' 2 3services: 4 top-server: 5 image: nginx 6 container_name: 'top-container' 7 volumes: 8 - ./top:/usr/share/nginx/html 9 10 db: 11 container_name: 'wp-db-container' 12 image: mysql:5.7 13 volumes: 14 - db_data:/var/lib/mysql 15 restart: always 16 environment: 17 MYSQL_ROOT_PASSWORD: ******** 18 MYSQL_DATABASE: ******** 19 MYSQL_USER: ******** 20 MYSQL_PASSWORD: ******** 21 22 wordpress: 23 container_name: 'blog-container' 24 depends_on: 25 - db 26 image: wordpress:latest 27 restart: always 28 volumes: 29 - ./blog:/var/www/html 30 environment: 31 WORDPRESS_DB_HOST: db:3306 32 WORDPRESS_DB_USER: ******** 33 WORDPRESS_DB_PASSWORD: ******** 34 35 36 reverse-proxy: 37 container_name: 'rev-proxy-container' 38 image: nginx 39 volumes: 40 - ./reverse-proxy/nginx.conf:/etc/nginx/nginx.conf 41 ports: 42 - 80:80 43 44volumes: 45 db_data: 46

nginx.conf

events { worker_connections 16; } http { server { listen 80; server_name ********; location / { proxy_pass http://top-server; proxy_redirect off; } location /blog/ { proxy_set_header Host $host:$proxy_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://wordpress; proxy_redirect off; } } }

試したこと

wp-config.php先頭にWP_HOME, WP_SITEURLを追加

php

1define('WP_HOME', 'http://********/blog'); 2define('WP_SITEURL', 'http://********/blog');

→ http://********/blogへのアクセスで、301リダイレクトがループした。

補足情報(FW/ツールのバージョンなど)

bash

1$ docker --version 2Docker version 20.10.6, build 370c289 3$ docker-compose --version 4docker-compose version 1.29.1, build c34c88b2

Indigo VPS
Ubuntu 20.04

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問