我通过命令java -jar xxx.jar
在8080端口启动springboot服务器。当我访问http://localhost:8080/test/redis时,它总是返回正确的数据,如{"a": 1}
。
但是我在下面设置了nginx代理配置
server {
#other location config
location /job/ {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
proxy_pass http://localhost:8080/;
}
}
当我访问http://localhost/job/test/redis时,nginx直接返回404页面。第二次访问url时,它返回正确的数据。再次404,然后再次正确的数据,依此类推。而http://localhost:8080/test/redis总是很好。
我无法弄明白,为什么会这样。 有人可以提供帮助吗?非常感谢!顺便说一句,如果您需要更多细节,请在评论中告诉我
答案 0 :(得分:0)
尝试删除/
后的最后http://localhost:8080
。
nginx代理也可能传递完整的url,因此你的api得到的整个/job/test/redis
并不存在。在这种情况下,您可能需要使用正则表达式删除job
部分,并使用代理传递其余的URL。
答案 1 :(得分:0)
编辑你的nginx配置后,你重新加载nginx吗?
答案 2 :(得分:0)
您是否按nginx -s reload
重新加载nginx?
您可以按tail -f <error-log-file>
您可以粘贴所有配置信息,可能是您的请求与另一条无法找到响应文件的路由匹配
答案 3 :(得分:0)
我将tomcat端口更改为8081后,问题就消失了。