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

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

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

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

nginx

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

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Redmine

Redmineは、プロジェクトのタスク管理、進捗管理、情報共有が可能な、 オープンソースプロジェクト管理ソフトウェアです。

Docker

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

Q&A

1回答

6717閲覧

nginxのリバースプロキシ設定がうまくいかず、502:Bad Gatewayが返される

asyahana

総合スコア13

docker-compose

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

nginx

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

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Redmine

Redmineは、プロジェクトのタスク管理、進捗管理、情報共有が可能な、 オープンソースプロジェクト管理ソフトウェアです。

Docker

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

0グッド

0クリップ

投稿2021/07/16 02:06

Redmineの構築に際し、将来的に複数Redmineを1つのサーバーにまとめるべく、1つのDBコンテナと複数のRedmine(ないしwebアプリケーション)コンテナを乗せて運用という形を目指しています。
Redmineはsameersbn/docker-redmineを使用していますが、sameersbn/docker-redmineに備え付けのnginxをOFFにし、新たにnginxコンテナを立て、そこからURIに応じて各Redmineへ接続するというのが目標です。
しかしながらnginxに関してド初心者でして、リバースプロキシの設定で苦戦しております。。。

皆様のお知恵をお借り頂ければ幸いです。m(_ _)m
ちなみに各ファイルや構造は下記の通りです。

【最終的な目標】
http://[サーバーURI]/infra、http://[サーバーURI]/products の2つのURLでRedmineにアクセスし、かつそれは別個である事。

【環境】

  • OS:CentOS 7.9.2009(Core)
  • Docker:Docker CE 20.10.7(stable)
  • Docker Compose:1.29.2
  • Redmine:sameersbn/docker-redmine(4.2.1-1)
  • nginx:sameersbn/nginx(latest)
  • DB:groonga/mroonga:mysql-5.7-latest

【どこで躓いているか】
nginxのリバースプロキシ設定。

【症状】
想定していたURIで接続すると、502:Bad Gatewayが返される。

【各ファイル】
docker-compose.yml

dockerComposeYml

1version: '3.8' 2 3services: 4 database: 5 build: ./database 6 image: groonga/mroonga:mysql-5.7-latest 7 ports: 8 - 3306:3306 9 environment: 10 TZ: Asia/Tokyo 11 MYSQL_ROOT_PASSWORD: ***** 12 volumes: 13 - ./database/data:/var/lib/mysql 14 - ./database/my.cnf:/etc/mysql/conf.d/my.cnf 15 command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci 16 17 nginx: 18 build: ./nginx 19 container_name: nginx 20 hostname: nginx 21 ports: 22 - 80:80 23 volumes: 24 - ./nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf 25 26 infra-redmine: 27 build: ./i-redmine 28 image: sameersbn/redmine:4.2.1-1 29 depends_on: 30 - database 31 - memcached 32 - nginx 33 environment: 34 TZ: Asia/Tokyo 35 36 DB_ADAPTER: mysql2 37 DB_HOST: database 38 DB_PORT: 3306 39 40 DB_USER: u_i_redmine 41 DB_PASS: redmine 42 DB_NAME: db_i_redmine 43 44 REDMINE_PORT: 45 REDMINE_HTTPS: 0 46 REDMINE_RELATIVE_URL_ROOT: /infra 47 REDMINE_SECRET_TOKEN: 48 49 REDMINE_SUDO_MODE_ENABLED: 0 50 REDMINE_SUDO_MODE_TIMEOUT: 15 51 52 REDMINE_CONCURRENT_UPLOADS: 2 53 54 REDMINE_BACKUP_SCHEDULE: daily 55 REDMINE_BACKUP_EXPIRY: 56 REDMINE_BACKUP_TIME: 57 58 NGINX_ENABLED: 0 59 ports: 60 - 3000:3000 61 volumes: 62 - ./i-redmine/data:/home/redmine/data 63 - ./i-redmine/logs:/var/log/redmine 64 65 products-redmine: 66 build: ./p-redmine 67 image: sameersbn/redmine:4.2.1-1 68 depends_on: 69 - database 70 - memcached 71 environment: 72 TZ: Asia/Tokyo 73 74 DB_ADAPTER: mysql2 75 DB_HOST: database 76 DB_PORT: 3306 77 78 DB_USER: u_p_redmine 79 DB_PASS: redmine 80 DB_NAME: db_p_redmine 81 82 REDMINE_PORT: 3001 83 REDMINE_HTTPS: 0 84 REDMINE_RELATIVE_URL_ROOT: /products 85 REDMINE_SECRET_TOKEN: 86 87 REDMINE_SUDO_MODE_ENABLED: 0 88 REDMINE_SUDO_MODE_TIMEOUT: 15 89 90 REDMINE_CONCURRENT_UPLOADS: 2 91 92 REDMINE_BACKUP_SCHEDULE: daily 93 REDMINE_BACKUP_EXPIRY: 94 REDMINE_BACKUP_TIME: 95 96 NGINX_ENABLE: 0 97 ports: 98 - 3001:3001 99 volumes: 100 - ./p-redmine/data:/home/redmine/data 101 - ./p-redmine/logs:/var/log/redmine 102 103 memcached: 104 image: 'sameersbn/memcached:latest' 105 container_name: memcached 106 ports: 107 - 11211:11211 108 restart: always

nginx configファイル

defaultConf

1upstream infra { 2 server 127.0.0.1:3000; 3} 4upstream products { 5 server 127.0.0.1:3001; 6} 7server { 8 listen 80; 9 server_name localhost; 10 11 location /infra { 12 proxy_set_header X-Forwarded-For $remote_addr; 13 proxy_set_header Host $http_host; 14 proxy_set_header X-Real-IP $host; 15 proxy_set_header X-Forwarded-Proto $scheme; 16 proxy_set_header X-Forwarded-Server $host; 17 proxy_set_header X-Forwarded-Host $host; 18 19 proxy_pass http://localhost:3000; 20 } 21 22 location /products { 23 proxy_set_header X-Forwarded-For $remote_addr; 24 proxy_set_header Host $http_host; 25 proxy_set_header X-Real-IP $host; 26 proxy_set_header X-Forwarded-Proto $scheme; 27 proxy_set_header X-Forwarded-Server $host; 28 proxy_set_header X-Forwarded-Host $host; 29 30 proxy_pass http://localhost:3001; 31 } 32} 33

「docker立ち上げ~アクセス後、502:Bad Gatewayが返された時点」までのnginx エラーログ

errorLog

12021/07/16 01:30:33 [warn] 1#1: conflicting server name "localhost" on 0.0.0.0:80, ignored 22021/07/16 01:31:12 [error] 17#17: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 172.24.0.1, server: localhost, request: "GET /infra/ HTTP/1.1", upstream: "http://127.0.0.1:3000/infra/", host: "localhost" 32021/07/16 01:31:12 [error] 17#17: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 172.24.0.1, server: localhost, request: "GET /infra/ HTTP/1.1", upstream: "http://127.0.0.1:3000/infra/", host: "localhost" 4

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

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

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

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

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

guest

回答1

0

upstreamに指定されているlocalhostはnginxコンテナ自身の事だからですね。
localhostにホストのIPを指定する、もしくは下記の方法です。

それぞれのコンテナ名が入ります。
default.conf

location /infra { proxy_pass http://infra-redmine:3000; } location /products { proxy_pass http://products-redmine:3001; }

docker-compose.yml

services: nginx: links: - infra-redmine - products-redmine

投稿2021/07/16 02:52

Noin

総合スコア188

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問