前提・実現したいこと
Docker上でnginx、php-fpm、nextjs、mysql、CentOS、Linuxの環境を作っています。
ポートを変えてステージング環境を作ろうとしていますが、502Bad Gatewayが出て解消できません。
本番環境は問題なく動いており、何が問題か分かりません。
本番とステージングとの差分はポート番号とコンテナ名のみです。
お力添えいただけると助かります。
発生している問題・エラーメッセージ
$docker-compose logs nginx-stg nginx-stg | 2021/11/18 05:40:38 [error] 8#8: *10 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: , server: , request: "GET / HTTP/1.1", upstream: "", host: "localhost:28000" nginx-stg | { "time_local": "18/Nov/2021:05:40:38 +0000", "remote_addr": "", "remote_user": "", "request": "GET / HTTP/1.1", "status": "502", "body_bytes_sent": "150", "request_time": "0.001", "http_referrer": "", "http_user_agent": "curl/7.29.0" }
$ curl http://localhost:28000 <html> <head><title>502 Bad Gateway</title></head> <body> <center><h1>502 Bad Gateway</h1></center> <hr><center>nginx</center> </body> </html>
該当のソースコード
docker-compose.yml
version: "3" services: nginx-stg: image: shin1x1/laravel-nginx118 container_name: nginx-stg ports: # - "8000:80" - "28000:80" volumes: - .:/var/www/html - ./docker/nginx/conf.d:/etc/nginx/conf.d links: - php-stg php-stg: build: ./docker container_name: php-stg volumes: - .:/var/www/html ports: # 本番環境はポート指定なし - "9001:80" depends_on: - db-stg db-stg: image: mysql:8.0 container_name: mysql-stg environment: MYSQL_ROOT_USER: ------- MYSQL_ROOT_PASSWORD: ------- MYSQL_DATABASE: app MYSQL_USER: ------- MYSQL_PASSWORD: ------- TZ: 'Asia/Tokyo' command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci volumes: - ./docker/db/data:/var/lib/mysql - ./docker/db/my.cnf:/etc/mysql/conf.d/my.cnf - ./docker/db/sql:/docker-entrypoint-initdb.d ports: # - 3306:80 - "3307:80" phpmyadmin-stg: image: phpmyadmin/phpmyadmin container_name: phpmyadmin-stg depends_on: - db-stg environment: - PMA_ARBITRARY=1 - PMA_HOSTS=mysql-stg ports: # - "10080:80" - "10081:80" nextjs-stg: container_name: nginx-nextjs-stg build: context: ./docker/images/nextjs-nodejs/ dockerfile: dockerfile ports: # - "8080:80" # - "80:3001" - "3010:3000" volumes: - ./nextjs:/usr/share/nextjs command: bash -c "npm --prefix /usr/share/nextjs run start /usr/share/nextjs"
Dockerfile
FROM php:7.4.0-fpm COPY --from=composer:latest /usr/bin/composer /usr/bin/composer RUN apt-get update && apt-get install -y \ git \ && docker-php-ext-install pdo_mysql
default.conf
server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /var/www/html/public; index index.php index.html index.htm; charset utf-8; location ~ .(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar|svg|mp3)$ { try_files $uri =404; } location / { try_files $uri $uri/ /index.php$is_args$args; } location ~ .php$ { # fastcgi_pass php:9000; fastcgi_pass php-stg:9001; fastcgi_index index.php; fastcgi_buffers 16 16k; fastcgi_buffer_size 32k; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
$ docker-compose ps Name Command State Ports ------------------------------------------------------------------------------------------------------------------- mysql-stg docker-entrypoint.sh mysql ... Up 3306/tcp, 33060/tcp, 0.0.0.0:3307->80/tcp nginx-nextjs-stg /docker-entrypoint.sh bash ... Up 0.0.0.0:3010->3000/tcp, 80/tcp nginx-stg nginx -g daemon off; Up 0.0.0.0:28000->80/tcp php-stg docker-php-entrypoint php-fpm Up 0.0.0.0:9001->80/tcp, 9000/tcp phpmyadmin-stg /docker-entrypoint.sh apac ... Up 0.0.0.0:10081->80/tcp
試したこと
default.conf
- php-stg:をポート番号に変更。→同様のエラー
listen 80
をlisten 28000
に変更。→curlを投げると下記エラーになる。
(56) Recv failure: 接続が相手からリセットされました
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/18 09:17
2021/11/18 09:22
2021/11/18 09:28
2021/11/18 09:37
2021/11/18 09:54
2021/11/18 10:13
2021/11/19 09:03