Open Mustard404 opened 2 years ago
修改前端ip,就是因为前后端分离项目在第一次部署的时候。每个人的后端ip是不一样的。前端如果不写下后端ip,就是没有办法知道后端ip。 nginx反响代理也解决不了吧, 如果师傅解决了 欢迎分享下您的解决方案。谢谢哈 https://github.com/awake1t/linglong/blob/master/web/nginx.conf 感谢建议~
sed -i 's#http://127.0.0.1:18000#./api#g' ./dist/js/app.4dccb236.js && sed -i 's#http://127.0.0.1:18000#./api#g' ./dist/js/app.4dccb236.js.map
location /api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
- proxy_pass http://127.0.0.1:18000/api/;
+ proxy_pass http://server:18000/;
}
这样也可以把api端口映射关闭了
你这个是部署在虚拟机的了吧? 如果是的,你可以用 宿主机访问到虚拟机部署的linglong吗?
嗯,在vm里面。宿主机没装桌面环境。我用curl简单测试了一下,访问8001端口可以返回server容器信息。
你在docker-compose.yml里面已经depends_on到server了,所有nginx的proxy_pass参数直接server就可以了。你原来的Nginx.conf中proxy_pass http://127.0.0.1:18000/api/; 这个只会反向到web容器内的18000端口,而不是宿主机的端口。用depends_on:server替换ip。直接从docker网络内走了,server会直接指向server容器。
谢谢师傅指教, 我太菜了,有机会我实践下。 我有个小疑问,为什么你正在宿主机里请求的是 127.0.0.1。 不是vm的192.呢?
192也一样啊。。。。。我只是想表达这个是本机。。。
好奇一下 为什么你的宿主机的 127.0.0.1 == Vm的192。168.20.130呢?
@Mustard404 正确
建议
可以在Nginx上/api目录配置下反向代理;
Demo
http://ip/api目录直接指向api端口,就不用每次都改前端ip了 location /api { uwsgi_pass django; include /Savior/docker/uwsgi_params; }