登录接口一直报404

来源:6-13 单点登录Redis存储Session及SessionId问题说明与集群实战-3

Iran_1112

2018-04-22

单独访问两个tomcat是可以的,启动nginx以后也没有问题,直接访问nginx也是能被代理,轮询成功。但是测试接口的时候就是不行。如果跳过nginx直接访问ip+端口也

//img.mukewang.com/szimg/5adc8e0b00013eff04320275.jpg

//img.mukewang.com/szimg/5adc8e0b000115e007190095.jpg

//img.mukewang.com/szimg/5adc8e0b0001f61615860648.jpg

是可以debug到。以下是nginx配置截图



我发现这样都访问不到

//img.mukewang.com/szimg/5adc8f4f0001881f09790237.jpg


现在是任何路径都会报404,怀疑是tomcat配置的问题。更换了一个版本的tomcat也没用。

感觉像是idea部署的问题。。

写回答

3回答

polo哦

2018-04-22

尝试下不做负载均衡,直接通过域名访问8080和9080端口能不能成功访问, 如果可以就是负载均衡的配置文件出错了,如果不可以那就是你的项目路径出问题了

0
1
Iran_1112
跳过nginx是可以直接访问的,但是其他的路径还是会报404
2018-04-22
共1条回复

Iran_1112

提问者

2018-04-25

已经找到了,首先,在nginx配置文件里,location配置多了一个符号。这里不得不吐槽一下nginx的语法要求实在严格,因为不经常用,容易出问题,这个符号导致nginx仅对首页进行反向代理。
其次,在排查过程中,使用的tomcat是8.5,因此怀疑过是tomcat问题,进而手写了一个接口,requestmapping是/user/hello,直接返回hello字符串,却忘记了在web.xml里配置urlpattern.所以在跳过nginx时,直接访问,却发现访问不到。
最后,终于找到原因后,发现在addcookies时,会报错,再次检查,所有配置都是正确的后,发现tomcat8.5和8.0以下的版本对cookie的domain规则不同,8.5是必须要求以字母数字开头。所以去掉domain常量前的.即可

1
1
Geely
赞同学~~
2018-04-30
共1条回复

Geely

2018-04-24

你检查一下你访问的这个路径存在么?能debug进来 是restlet进来的,但是restlet为啥还报错呢。。看截图里的响应。。感觉说不通呢,汗。然后看看tomcat的webapps/ROOT下是否正常,都是项目的文件。我们进一步排查一下。

0
0

Java企业级电商项目架构 Tomcat集群与Redis分布式

Tomcat集群+Redis分布式+代码重构+源码原理解析

2685 学习 · 947 问题

查看课程