前端访问不了后端tomcat服务

rabbitbug 2018-06-06 09:36:37
客户是一家大集团下的子公司
应用装在这个子公司的服务器上
但其他分公司也要访问
前端和后端安装在同一个服务器上, 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访问而矣啊
百思不得解
...全文
2452 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
maradona1984 2018-06-07
  • 打赏
  • 举报
回复
cookie跟域走,看前后端域是否一个(在你这里应该是ip了)

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧