Docker nginx 502网关错误


docker nginx 502 bad gateway

我试图改变nginx.conf和docker-compose中的端口号。将9001改为9000。但是,当我运行docker-compose up时,它显示502个坏网关。为什么呢?我被锁定只能使用端口9000吗?

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"

你改变了Docker发布的端口,Nginx转发给PHP-FPM的端口,但是你没有改变PHP-FPM监听的端口。端口9001上没有任何东西可以响应Nginx请求,因此是502

如果你想这样做,改变php-fpm.conf文件中的listen选项:

listen = 127.0.0.1:9001

但是你实际上不需要。如果您希望服务在端口9001上公开可用,您可以让它在容器内部监听端口9000,只需更改发布:

ports:
  - "9001:9000"

将把端口9000从容器发布到主机上的端口9001,因此您可以在外部使用端口9001。