为什么起这个标题
关于我这篇前端https访问后端http接口博客配置反向代理以后出现500错误,其实到最后解决问题的时候,其实也不是nginx上的问题,
那为什么起这样的标题?主要是有些小伙伴配置反向代理出现500以后不经思考的在网上乱查询,起这样的标题能够让伙伴们点进来看看我这篇博客的问题是否跟伙伴们的问题一样。
出现状态500错误后,不要乱,放平心态,耐心地分析为什么会出现500错误,出现500错误的原因很多,一定要看日志!一定要看错误的反馈信息!
我遇到500后怎么做
说说我这里的500错误吧,出现500以后我分析了许久nginx的反向代理配置,以为是nginx这里配置的问题,就是因为这样在这里瞎折腾了许久,在这个过程我把前后端的服务环境重新部署了还是出现500问题,也去看了nginx的日志和后端的日志,发现都没问题,这时候我就很疑惑了,然后我去问了一些自己认为厉害的高手,在这里多说一句,一定要厚着脸皮去问,解决了那就最好,可以节省很多时间,他们没帮你解决也别灰心,看看有没有其他替代的方案,最后你能自己解决问题以后保你成就感满满的!
回归正题,如果你出现500以后你可以尝试重启后端的服务,分析你的报错反馈信息,然后上网查查有没有关于这方面的信息,网上或许有很多的复制粘贴的博客他们的环境也不一定跟我们一样,所以一定一定要看自己的日志信息,看日志有没有打印提示报错的地方或者检查后端依赖的服务有没有崩。
最后我是怎么解决问题的
我部署后端的环境是在内网中的,然后我把后端的接口暴露,使用postman
工具来测试发现测试返回的数据不是想要的数据,因为在线上是没问题的,然后再去看后端的日志,我后端使用了spring security
的安全框架,在日志中有一条过滤器的打印描述了没认证的信息。因为之前我尝试打错参数去发送请求,得到密码错误的信息,说明是可以请求到后端的,也是因为这里才误导我以为是nginx的配置问题。也就是上面的日志输出才让我清晰地认识到是不是权限的问题,然后我就去检查我后端配置的root用户的数据库权限,原来问题出在我在搭建docker的时候部署mysql没有给到root远程主机登录的权限,也就是root的host字段是localhost
,然后把该字段添加了%
,再用postman
去请求后端的接口成功有数据返回,问题解决了。
总结
在这里总结一下,出现错误不要慌,一定要让自己冷静下来,没头绪的话,喝杯水,看看远处风景,要有坚持把问题解决的决心。
一定一定要看错误的反馈信息,一定一定要看日志!可能有很多地方误导我们,所以我们一定要冷静下来回想架构,分析可能出现问题的地方。
最后,祝你们也能早点解决还没解决的bug!
本文摘自 :https://www.cnblogs.com/