使用Laravel Sail(Docker)时如何通过Guzzle调用同应用的Laravel接口
同Sail容器内调用自身应用接口的地址配置方案
直接使用 localhost 或 127.0.0.1 作为主机地址即可,默认Sail环境下容器内部Web服务监听80端口,请求完整格式为 http://localhost/接口路径。
报错原因说明
你使用 host.docker.internal 出现502错误,是因为这个地址是Docker提供的从容器内访问宿主机网络的入口,走这个地址相当于请求先出容器到宿主机,再通过端口映射回到Sail容器,路径冗余不说,只要宿主机的映射端口配置有冲突、或者没有正确绑定,就会出现网关错误。
特殊场景适配
- 如果你自定义过Sail的端口映射规则,容器内部仍然使用80端口即可,宿主机的端口映射不影响容器内部的端口监听配置
- 如果你需要调用HTTPS接口,直接使用
https://localhost即可,Sail内置的自签名证书在容器内部默认被信任 - 命令行脚本、队列任务中发起请求同样适用上述地址,不需要额外修改服务配置
内容的提问来源于stack exchange,提问作者Rakesh K
相关产品推荐
相关产品推荐

