客户是一家大集团下的子公司
应用装在这个子公司的服务器上
但其他分公司也要访问
前端和后端安装在同一个服务器上, IP为SUB_IP
前端端口为80, tomcat端口为8080
前端应用名为asms, 后端应用名为asms_server
前后端分离, 前端用的是vue.js, 通过nginx访问后端tomcat
(vue.js前后端分离不能部署到tomcat上么?)
nginx配置如下(和本应用相关的)
location / {
root html;
index index.html index.htm;
try_files $uri $uri/ /asms/index.html;
}
location /lspbc/ {
proxy_pass http://localhost:8080/asms_server/;
proxy_cookie_path /asms /lspbc;
}
前端访问后端接口, 都加了lspbc路径
http://SUB_IP/asms/
用上面的URL一点问题也没有, 可以登录也能获取数据
但因为是大公司, 各分公司间网络是不能相互访问的
但他们集团做了个服务/代理, 所有集团/分公司的应用都在各自公司部署
但通过一个统一的IP: comm_ip, 后面跟不同的应用, 这样大家就能访问了
比如我们的应用: http://SUB_IP/asms/ 其他分公司是访问不了的
但用http://comm_ip/asms/ 就能访问了
我想应该也是用了类似nginx的代理服务或是类似端口映射一样来访问的
用http://comm_ip/asms/ 是能打开前端的页面
但登录时, 没有任何动静, 好象前端访问不了后端了
但我用http://comm_ip/asms_server/是能够访问获取数据的
奇了怪了
为了模拟他们的这种情况
我把asms, asms_server完全一样部署到我们的内部服务器上
用相同的suse, 安装的nginx, tomcat, mysql都用相同的版本, 相同的安装路径
因为外网不能直接访问内网, 我就用了tp-link提供的动态域名, 以及端口映射
外网9080映射到nginx的80端口,
http://temp.tpddns.cn:9080/asms/
外网我用上面的URL能直接访问前端, 也能登录获取数据
用相同的nginx配置
那为什么在客户那就不能登录呢?
我用chrome查了下, 见附图
看冒似cookie没传过来,是么?
我用了proxy_cookie_path, proxy_pass, 照理应该可以传cookie的啊
而且用公司用内外网模拟时都不成问题
在客户那使用公司的SUB_IP/asms/也能访问, 说明cookie是可以传的啊
只是他们使用了类似代理的服务, 用统一的集团IP访问而矣啊
百思不得解