docker nginx 502坏网关

时间:2016-09-25 17:33:28

标签: php nginx docker server

我试图将nginx.conf和docker-compose.yml中的端口号更改为9001而不是9000.但是,当我运行docker-compose时,它会显示502 Bad Gateway。这是为什么?我是否只能使用端口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
  }

搬运工-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 个答案:

答案 0 :(得分:3)

您已经更改了Docker正在发布的端口,并且端口Nginx正在转发到PHP-FPM,但您还没有更改PHP-FPM正在侦听的端口。端口9001上没有任何内容可以响应Nginx请求,因此502

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

listen = 127.0.0.1:9001

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

ports:
  - "9001:9000"

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