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

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

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

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

さくらのVPS

さくらのVPSは、さくらインターネット社が提供するVPS(仮想専用サーバー)です。高速なSSDの選択や複数台構成も可能。利用者に応じた柔軟なプランが用意されています。大規模システムにも対応可能なスケーラビリティを備えたホスティングサービスです。

nginx

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

WordPress

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

Docker

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

Q&A

0回答

675閲覧

shuudockerでwordpressのコンテナがリバースプロキシに失敗し、表示できない

darumausagi

総合スコア18

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

さくらのVPS

さくらのVPSは、さくらインターネット社が提供するVPS(仮想専用サーバー)です。高速なSSDの選択や複数台構成も可能。利用者に応じた柔軟なプランが用意されています。大規模システムにも対応可能なスケーラビリティを備えたホスティングサービスです。

nginx

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

WordPress

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

Docker

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

0グッド

1クリップ

投稿2020/06/16 08:48

編集2020/07/14 01:03

サイト運営を目標に現在勉強中です。
浅学ゆえの未熟な質問、ご容赦ください。
ご助力いただけますと大変助かります。

前提・実現したいこと

  • リストバーチャルホストによるマルチドメインサイトのウェブサーバのひとつをWordPressで構築したい

状況

リバースプロキシ用のコンテナを立ち上げて、ウェブサーバ用のコンテナをそれぞれバーチャルホストしてサブドメインで表示させています。
現在、WordPressのコンテナのみ、502エラーで表示ができません。
リバースプロキシのコンテナ内で振り分けを確認すると、うまくいっているコンテナとそうでないコンテナの差が
「server 172.18.0.XX:80;」「server 127.0.0.1 down;」であることがわかりました。
172.18.0.XXは調べたところdockerの内部IPで、127.0.0.1はlocalhostのIPアドレスなので、
WordPressのコンテナについても、dockerの内部IPアドレスを読み込めるようになれば、うまくいくのではないかと思い、試行錯誤しています。
nginx.confの設定でどうにかできるところなのかな、と思い、色々設定を変更してみたのですが、うまくいかないため、
設定方法をご教授いただけると助かります。

docker exec -it nginx-proxy /bin/bash ls -l /etc/nginx/conf.d/default.conf cat /etc/nginx/conf.d/default.conf

/etc/nginx/conf.d/default.conf
一部抜粋

# hoge.com upstream hoge.com { ## Can be connected with "common_link" network # primary server 172.18.0.8:80; } server { server_name hoge.com; listen 80 ; access_log /var/log/nginx/access.log vhost; return 301 https://$host$request_uri; } server { server_name hoge.com; listen 443 ssl http2 ; access_log /var/log/nginx/access.log vhost; ssl_session_timeout 5m; ssl_session_cache shared:SSL:50m; ssl_session_tickets off; ssl_certificate /etc/nginx/certs/hoge.com.crt; ssl_certificate_key /etc/nginx/certs/hoge.com.key; add_header Strict-Transport-Security "max-age=31536000" always; location / { proxy_pass http://hoge.com; } } # test01.hoge.com upstream test01.hoge.com { ## Can be connected with "common_link" network # test01 server 127.0.0.1 down; } server { server_name test01.hoge.com; listen 80 ; access_log /var/log/nginx/access.log vhost; return 301 https://$host$request_uri; } server { server_name test01.hoge.com; listen 443 ssl http2 ; access_log /var/log/nginx/access.log vhost; ssl_session_timeout 5m; ssl_session_cache shared:SSL:50m; ssl_session_tickets off; ssl_certificate /etc/nginx/certs/hoge.com.crt; ssl_certificate_key /etc/nginx/certs/hoge.com.key; add_header Strict-Transport-Security "max-age=31536000" always; location / { proxy_pass http://test01.hoge.com; } } # aaa.hoge.com upstream xn--cksr0ah2kx6h781e.hoge.com { ## Can be connected with "common_link" network # quinary server 172.18.0.11:80; } server { server_name aaa.hoge.com; listen 80 ; access_log /var/log/nginx/access.log vhost; return 301 https://$host$request_uri; } server { server_name aaa.hoge.com; listen 443 ssl http2 ; access_log /var/log/nginx/access.log vhost; ssl_session_timeout 5m; ssl_session_cache shared:SSL:50m; ssl_session_tickets off; ssl_certificate /etc/nginx/certs/hoge.com.crt; ssl_certificate_key /etc/nginx/certs/hoge.com.key; add_header Strict-Transport-Security "max-age=31536000" always; location / { proxy_pass http://aaa.hoge.com; } }

参考情報
[リバースプロキシ用のdocker-compose.yml ]
/etc/vps/portal/docker-compose.yml
version: '2'

services: nginx-proxy: restart: always image: jwilder/nginx-proxy container_name: nginx-proxy ports: - "80:80" - "443:443" volumes: - /var/run/docker.sock:/tmp/docker.sock:ro - /etc/nginx/ssl:/etc/nginx/dhparam:ro - /etc/letsencrypt/live/hoge.com:/etc/letsencrypt/live/hoge.com:ro - /etc/letsencrypt/archive/hoge.com:/etc/letsencrypt/archive/hoge.com:ro - /etc/vps/portal/certs:/etc/nginx/certs:ro networks: - common_link networks: common_link: external: name: common_link

[nginx.conf]
試してみたnginx.conf設定ファイル

server { listen 80; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/host.access.log main; location / { # root /usr/share/nginx/html; root /var/www/html/test01; index index.php; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { # root /usr/share/nginx/html; root /var/www/html/test01; } location ~* .(gif|jpe?g|png|ico)$ { add_header Cache-Control "s-maxage=86400, public"; root /var/www/html/test01; } location ~ .php$ { root /var/www/html/test01; try_files $uri =404; fastcgi_split_path_info ^(.+.php)(/.+)$; fastcgi_pass wordpress01:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ .php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ .php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /.ht { # deny all; #} }

追記
[wordpress用のxml]
設定を変えていくつか試してみたので、そのうちのひとつを記載いたします…

version: '3' services: mariadb: image: mariadb:latest container_name: mariadb volumes: - /etc/vps/portal/mysql:/var/lib/mysql environment: - MYSQL_ROOT_HOST=${MYSQL_ROOT_HOST} - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - MYSQL_USER=${MYSQL_USER} - MYSQL_PASSWORD=${MYSQL_PASSWORD} - MYSQL_DATABASE=${MYSQL_DATABASE} env_file: .env networks: - common_link wordpress01: image: wordpress:php7.4-fpm container_name: wordpress01 environment: - WORDPRESS_DB_HOST=${WORDPRESS_DB_HOST} - WORDPRESS_DB_USER=${WORDPRESS_DB_USER} - WORDPRESS_DB_PASSWORD=${WORDPRESS_DB_PASSWORD} - WORDPRESS_DB_NAME=${WORDPRESS_DB_NAME} env_file: .env depends_on: - mariadb volumes: - /etc/vps/portal/portal/public:/var/www/html restart: always networks: - common_link test01: restart: always image: nginx build: context: . dockerfile: Dockerfile container_name: test01 environment: - VIRTUAL_HOST=test01.hoge.com volumes: - /etc/vps/portal/test01/conf/default.conf:/etc/nginx/nginx.conf - /etc/vps/portal/public:/var/www/html depends_on: - wordpress01 networks: - common_link networks: common_link: external: name: common_link

[.env]

# mariadb MYSQL_ROOT_HOST=db MYSQL_ROOT_PASSWORD=password MYSQL_USER=root MYSQL_PASSWORD=password MYSQL_DATABASE=wordpress # wordpress WORDPRESS_DB_HOST=db WORDPRESS_DB_USER=root WORDPRESS_DB_PASSWORD=password WORDPRESS_DB_NAME=wordpress

[Dockerfile]

FROM nginx:latest COPY nginx/default.conf /etc/nginx/conf.d/wordpress.conf CMD ["nginx", "-g", "daemon off;"]

環境

<利用サービス>
DNS:さくらのクラウドDNS
サーバ:さくらのVPS
CDN:さくらのウェブアクセラレータ
メールサーバ:さくらのメールボックス

<バージョン>
OS
CentOS Linux release 7.8.2003 (Core)

Docker
Docker version 19.03.11
docker-compose version 1.14.0

お手数ですが、よろしくお願いいたします。

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

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

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

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

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

masibw

2020/07/12 03:55

wordpressのdockerfile,docker-composeのファイルはありませんか?
darumausagi

2020/07/14 01:04

返信いただきありがとうございます。追記修正いたしました。参考になりますでしょうか…?
masibw

2020/07/14 02:16

記載ありがとうございます。 server 127.0.0.1 down; となっているのはおそらく wordpressのコンテナが起動失敗or起動した後終了しているからだと思われます。 docker-compose up コマンドを実行した際に何かエラーログなど出ていませんか? または docker-compose up -d 後に docker-compose ps コマンドの結果はどうなっていますか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問