php 连接到Docker项目中9000以外端口的上游时连接被拒绝

fcg9iug3  于 2022-12-02  发布在  PHP
关注(0)|答案(1)|浏览(320)

我在同一台服务器上运行两个php docker项目已经很长时间了。对于第一个项目,我使用docker-compose. yaml中的php端口9000:9000。如果我在另一个项目中使用同一个端口,逻辑上,当启动docker时,它会报告一个错误,端口9000已经在使用中。因此,我将端口设置为9002,但我得到错误502 Bad Gateway and Connection refused。
connect() failed (111: Connection refused) while connecting to upstream, client: 172.19.0.1, server: localhost, request: "GET / HTTP/1.1", upstream: "fastcgi://172.19.0.3:9002", host: "127.0.0.1:4443"
第一个项目工作正常。
有人能告诉我如何调整配置或我哪里做错了吗?

第一个Docker项目:

第一个

第二个Docker项目:

第一次

nxagd54h

nxagd54h1#

容器之间的连接始终使用目标服务的标准端口号。这些连接不需要ports:,并且忽略可能在那里指定的任何端口重新Map。
这意味着,在第二个Nginx代理中,您需要使用标准的PHP-FPM端口9000,而不是重新Map的端口:

upstream php-upstream {
    server php:9000;
}

如果您不打算直接从主机访问FastCGI服务(并且执行此操作的工具有限),则可以删除两个php容器上的ports:,这样可以进一步避免此冲突。(您也可以删除container_name:,Compose将选择一个不冲突的默认值。)

相关问题