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

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。