宿主机nginx访问docker容器中的php报错

我用的本机的Nginx,然后用Docker在本机建了个PHP7的环境,php-fpm在Docker中启动了,也映射了端口,宿主机9200映射为容器中的9000,也加了代码目录到数据卷,但是用本机nginx访问docker里的php里报错,nginx访问php-fpm的端口使用的是映射后的端口, fastcgi_pass 127.0.0.1:9200;

nginx的错误日志如下:

2018/06/06 20:36:52 [error] 81417#0: *500 upstream prematurely closed connection while reading response header from upstream, client: 127.0.0.1, server: wq.cn, request: "GET //test.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9200"

能连接过去,大概意思是从上游读取响应头时过早地关闭连接。在网上查解决方案,没找到,不知有没有大神可以帮助解决一下,非常感谢!

阅读 4.1k
1 个回答

不能用127.0.0.1,php对于你来说已经是另一台电脑了,不是本机,你需要进docker查看容器的ip是多少。
还有一种方案就是nginx也做成容器,然后把php的容器关联进nginx的容器,这样就可以设置php容器的别名,你也不需要每次启动容器去改ip了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题