记一次nginx跨域404的问题 ,切记css、js、图片文件会优先匹配
程序员文章站
2022-07-10 12:44:26
...
项目属于前后端分离项目,由于项目登录时需要输入图片类验证码,但是获取验收码的url路径一直报404错误。
项目nginx 跨越配置如下:
在浏览器中输入:http://xiaozhaowang.net,就是无法获取验证码,如下图:
分析过程如下:
一、定位是否是vue前端Nginx配置的问题
1、查看 服务器8111端口是否打开
使用
Telnet tserv 8111
其中,"tserv"是终端服务器的主机名。
发现 8111端口是打开的
2、检查 apis 路径是否被拦截生效
输入下图路径提示Full authentication is required to access this resource,该提示是后台 spring secrity权限注解拦截后给出的权限提示,可以获取提示证明apis配置有效。
二、定位是否是Springboot后台的问题
1、在获取验证码的代码处加入日志
如下图经过测试可以在控制台和log日志中打出验证码内容,但部署到生产环境进行一下测试,发现日志中没有记录,页面依旧提示404 not found ,说明Nginx没有转发到后台相应方法。排除为后台的问题。
三、模拟Nginx转发原理定位问题
根据nginx转发原理,我们在浏览器中直接输入:http://xiaozhaowang.net:8111/captcha.jpg 是可以获取验证码内容的,如下图:
通过以上过程定位确为Nginx的问题
四、检查Nginx的配置,爬坑最终发现:图片、js/css文件都会nginx中优先匹配
注释掉配置中的如下内容:
service nginx restart 重启正常!有图为证: