【问题标题】:Docker: multiple PHP7-FPM containers on different portsDocker:不同端口上的多个 PHP7-FPM 容器
【发布时间】:2016-01-26 14:38:37
【问题描述】:

我正在为我的本地开发环境使用 Docker。我现在的设置是 5 个容器(1 HaProxy + 2 NGINX + 2 PHP7-FPM)。

代理容器用于根据 url 引导请求,因此如果我输入 http://project1.dev,它将代理请求到使用 project1-php 评估 php 的 project1-nginxhttp://project2.dev 的设置类似。

现在,我正试图围绕两个 php 容器的端口展开思考。默认的 fpm 端口是 9000,所以两个 php 容器都不能在这个端口上运行。我假设这里的方法是让两个容器都导出端口 9000,但在主机上将它们设为 9000 和 9001?

在我的 compose 文件中包含这些内容。

project_1_php:
  ports:
    - "9000:9000"
project_2_php:
  ports:
    - "9001:9000"

所以,一切正常启动,项目 1 正在运行,但项目 2 给了我一个 502。Nginx 错误日志显示

2016/01/26 14:37:05 [error] 6#6: *1 connect() failed (111: Connection refused) 
while connecting to upstream, client: 172.17.0.9, server: code.dev, 
request: "GET / HTTP/1.1", upstream: "fastcgi://172.17.0.4:9001"

【问题讨论】:

  • 嗯.. 你为什么要“瞄准” nginx 服务器?这真的没有意义..你的HAProxy是在路由器和nginx之间还是在nginx和fpm之间?
  • 我不确定我理解你所说的以 Nginx 为目标是什么意思?是的,代理在路由器和nginx之间
  • 您正在使用 2 个 nginx 服务器,每个服务器都有一个 server{} 块,该块定义了 project1.devproject2.dev,并根据这一点 - 他们将其代理到适当的 php-fpm 机器。这个逻辑有点不对劲,你甚至不需要HAProxy,在那种情况下它是没用的。但是,那是题外话。你确定第二个fpm 服务器允许来自172.17.0.9 的连接吗?默认配置只允许来自本地主机的连接。
  • 也许您应该将@Dracken 答案设置为正确!它对我有用!

标签: php docker


【解决方案1】:

对于那些看起来像我一样为不同项目同时运行多个 NGINX 和 PHP-FPM 容器并发现这个 SO 线程的人,遇到了这个问题:

https://github.com/docker-library/php/issues/479

php-fpm Dockerfile 内部:

FROM php:7.2-fpm
RUN sed -i 's/9000/3001/' /usr/local/etc/php-fpm.d/zz-docker.conf

然后在您的docker-compose.yaml 文件中,您可以将您的 Nginx 指向该 PHP-FPM 实例的特定端口。

【讨论】:

  • 像魅力一样工作!谢谢 !也许这应该是正确的答案!
【解决方案2】:

与 php-fpm7 有类似问题, 正如cmets中提到的@Mjh,默认情况下fpm监听127.0.0.1:9000,

所以你应该用 0.0.0.0:9000 替换它,

我在那里找到了解决方案:githib:matriphe/docker-alpine-nginx

所以你可以将 Dockerfile 添加到你的 fpm 容器中:

RUN sed -i "s|;*listen\s*=\s*127.0.0.1:9000|listen = 9000|g" /etc/php7/php-fpm.conf

【讨论】:

    【解决方案3】:

    只是想我会提到Traefik Proxy 是处理这种情况的绝佳方式

    【讨论】:

      猜你喜欢
      • 2017-03-31
      • 1970-01-01
      • 1970-01-01
      • 2018-01-25
      • 1970-01-01
      • 2016-07-23
      • 2020-10-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多