docker nginx 502 bad gateway

流过昼夜 提交于 2019-12-08 08:21:49

问题


I was trying to change the port number in both nginx.conf and docker-compose.yml to 9001 instead 9000. However, when I run docker-compose up, it shows 502 Bad Gateway. Why is that? am I locked to use port 9000 only?

nginx.conf

location /index.php {
      include fastcgi_params;
      fastcgi_connect_timeout 10s;
      fastcgi_read_timeout 10s;
      fastcgi_buffers 256 4k;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      fastcgi_pass php:9000; <-- Changing this to 9001
  }

docker-compose.yml

php:
  build: images/php
  volumes:
    - ./images/php/app:/app
  working_dir: /app/public
  command: php-fpm
  links:
    - db
    - cache
  ports:
    - "9000:9000" <-- Changing this to "9001:9001"

回答1:


You've changed the port Docker is publishing, and the port Nginx is relaying to PHP-FPM, but you haven't changed the port PHP-FPM is listening on. There's nothing on port 9001 to respond to the Nginx request, hence the 502.

If you want to do this, alter the listen option in your php-fpm.conf file:

listen = 127.0.0.1:9001

But you don't actually need to. If you want the service available on port 9001 publicly, you can leave it listening on port 9000 internally in the container and just change the publishing:

ports:
  - "9001:9000"

That will publish port 9000 from the container to port 9001 on the host, so you can use port 9001 externally.



来源:https://stackoverflow.com/questions/39689787/docker-nginx-502-bad-gateway

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!