我们 vue3 项目原来部署在客户内网里,通过 https 可以正常访问 nginx 服务器的 443 端口。 原来的登录接口 uri: https://xxxx.com:443/api/login
现在用户那边要把这个服务器 443 端口通过防火墙 NAT 到外网去,映射之后的端口变成 33301 。 客户内网有 dns 服务器,可以保证服务域名在内网和外网都通过 xxxx.com 域名访问的到。
现在我们在外网所有的 api 都无法访问了, 现在在外网 vue3 的路由生成的接口访问地址是 htttps://xxxx.com:33301/api/login
有没有什么办法可以修改下路由或者 nginx 的配置,让这个网站同时支持内网外网的访问?
![]() |
1
javalaw2010 2 天前
两个方案:
1. 在内外网都部署一个 reserve proxy ,用统一的域名和端口访问。 2. 域名+端口不要写死,后端 api 加一个 health endpoint ,打开网站后设置一个定时器访问 xxxx.com:33301/api/health ,通了就说明是内网,走内网域名和端口,不通就是外网走外网域名和端口。 |
![]() |
2
murmur 2 天前
完全没看明白
首先对于前端,他都是相对路径,不存在改了接口访问不了的情况 最多加个判断 location.href.indexOf('33001') > 0 ? 后端内网地址:后端映射地址 其次可以让接口支持全跨域 所以问题在哪里 |
![]() |
3
murmur 2 天前
|
![]() |
4
fub2020 OP |