我的项目部署在外部的服务器
主应用A port:8001
子应用B port:8002
子应用C port:8003
访问未配置https
PC端可以通过域名访问A B C应用,且访问后端端口无异常
但是手机端只能通过IP的方式访问A,且A展示无异常,访问B,C显示白屏
若手机端更替未域名访问,则A B C均访问超时
请问上述问题应该从哪里去排查?
我的项目部署在外部的服务器
主应用A port:8001
子应用B port:8002
子应用C port:8003
访问未配置https
PC端可以通过域名访问A B C应用,且访问后端端口无异常
但是手机端只能通过IP的方式访问A,且A展示无异常,访问B,C显示白屏
若手机端更替未域名访问,则A B C均访问超时
请问上述问题应该从哪里去排查?
排查步骤及解决方案:
现象:手机端通过域名访问超时,但IP可访问主应用
排查:
ping 域名
或 nslookup 域名
验证DNS解析结果。现象:子应用B/C白屏,可能因静态资源跨域拦截
解决:
# 子应用B/C的Nginx配置中添加跨域头
location / {
add_header 'Access-Control-Allow-Origin' '$http_origin'; # 或主应用域名/IP
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
}
现象:白屏可能由资源加载失败导致
publicPath
配置错误或资源路径未适配IP访问解决:
publicPath
配置(需为绝对路径,如 //ip:port/
或 //域名/
)。index.html
)中资源路径正确(避免相对路径)。现象:手机浏览器更严格的安全策略可能拦截非HTTPS内容
解决:
Content-Security-Policy
测试。在CSP中显式允许HTTP资源(需权衡安全性):
<meta http-equiv="Content-Security-Policy" content="default-src 'self' 'unsafe-inline' data: http: ip:端口">
现象:手机端无法通过域名访问子应用
排查:
0.0.0.0
(而非 127.0.0.1
)。netstat -tuln | grep 8002
确认端口监听状态。现象:子应用加载逻辑异常
解决:
entry
配置是否为动态地址(如通过环境变量注入域名/IP)。现象:手机浏览器内核差异导致JS/CSS解析失败
排查:
总结优先级: