docker nginx 502坏网关

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

nginx.conf </ strong> </ p>

  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; &lt; - 将其更改为9001
}
</ code> </ pre>

docker-compose.yml </ strong> </ p>

  php:
build:images / php
卷:
  • ./images/php/app:/app working_dir:/ app / public 命令:php-fpm links:\ n - db
  • cache ports:
  • “9000:9000”&lt; - 将其更改为“9001:9001” </ code> </ pre> </ div>

展开原文

原文

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个回答



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

如果您想这样做,请更改 php-fpm.conf </ code>文件中的 listen </ code>选项:</ p> \ n

  listen = 127.0.0.1:9001

nn

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

  ports:

  • “9001 :9000“
    </ code> </ pre>

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

展开原文

原文

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.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐