问题描述:
Linux虚拟机中启动了一个fastapi服务器(8000端口),希望能通过nginx容器设置代理使得前端代码可以调用这个接口,但是访问时报错(状态码:502)。nginx配置如下:
location / {
proxy_pass http://127.0.0.1:8000;
}
分析原因:
nginx容器是一个虚拟环境,127.0.0.1和localhost指的是虚拟环境内部,而不是外部宿主机,所以无法这样访问。解决办法就是将IP修改为宿主机的实际IP(例如:192.168.1.111)或者docker0的IP(例如:172.17.0.1)。
解决办法:
nginx配置修改为:
location / {
proxy_pass http://linx的实际IP(例如192.168.1.111):8000;
}