docker nginx + PHP -fpm 502

2019-08-12 20:02:18 +08:00
 caoyufei
    try_files $uri =404;
    fastcgi_pass  127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi.conf;
    listen = 127.0.0.1:9000
    listen.backlog = -1
    listen.allowed_clients = 127.0.0.1
docker run --name php -p 9000:9000 -v /xxx:/xxx -d php:v1
docker run --name nginx -p 8080:80 -v /xxx:/xxx --link php:php -d nginx:v1

访问 PHP 文件 502, 访问 HTML 正常

这是哪配置有问题?还是?

1727 次点击
所在节点    问与答
4 条回复
eslizn
2019-08-12 20:08:33 +08:00
建议先看看 docker network 部分
xupefei
2019-08-12 20:14:11 +08:00
每个 container 的 127.0.0.1 是独立的。
你需要让两个容器运行在同一个 network 上,然后用 link 命令把 php 的 hostname 暴露给 nginx,然后让 php 监听 0.0.0.0:9000 并 expose 9000 ; nginx 连到 php:9000。
boks
2019-08-12 20:27:20 +08:00
执行:docker inspect php | grep "IPAddress"
得到的地址就是 nginx 配置的地址
caoyufei
2019-08-12 20:42:12 +08:00
@eslizn @xupefei @boks
问题解决了
thx!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/591288

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX