我在同一台服务器上运行两个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项目:
第一次
1条答案
按热度按时间nxagd54h1#
容器之间的连接始终使用目标服务的标准端口号。这些连接不需要
ports:
,并且忽略可能在那里指定的任何端口重新Map。这意味着,在第二个Nginx代理中,您需要使用标准的PHP-FPM端口9000,而不是重新Map的端口:
如果您不打算直接从主机访问FastCGI服务(并且执行此操作的工具有限),则可以删除两个
php
容器上的ports:
,这样可以进一步避免此冲突。(您也可以删除container_name:
,Compose将选择一个不冲突的默认值。)