在现代Web开发中,Nginx作为一款高性能的HTTP服务器和反向代理服务器,被广泛应用于各种网站和应用的部署。然而,在配置和使用Nginx的过程中,不少用户会遇到404 Not Found错误,这一问题常常让人感到困惑和无助。本文将详细介绍Nginx出现404 Not Found错误的原因及相应的解决方法,帮助读者快速定位并解决问题,确保网站和服务的正常运行。
Nginx出现404 Not Found错误的原因及解决方法
近日在部署项目时,出现了一些问题,如图
正常的登录界面是可以访问的,但是在登录之后访问之后的地址会报404错误,于是去查看是否配置有错误,但是查看之后发现,nginx.conf与config.js两个配置文件的ip和端口都是没有错误的
这个项目部署过好多次,没有出现过这样的错误。
这是原版没动过的解压缩后的nginx.conf的源文件
圈起来的地方是应该按照项目配置对应的ip和监听的端口
listen对应的是端口,server_name对应的是访问的ip
但是发现当我去修改为实际ip和端口还是不能解决问题,经过查阅官方文档,了解到我们需要添加如下的一句话:
try_files $uri $uri/ /index.html;
记住,$uri是两个啊!!!!即$uri $uri(两个$uri之间有空格)!
这句话的作用是嘛呢?
用官方解释就是:
Checks the existence of files in the specified order and uses the first found file for request processing; the processing is performed in the current context. The path to a file is constructed from the file parameter according to the root and alias directives. It is possible to check directory's existence by specifying a slash at the end of a name, e.g. “$uri/”. If none of the files were found, an internal redirect to the uri specified in the last parameter is made.
简单的翻译一下大致意思,差不多相当于高考报志愿这么个意思,从一志愿一直找到最后一个志愿,如果其中有满足要求的,那恭喜你考上了,找到最后一个都没有,那不好意思,清华落榜生就是你了!
用在Nginx中就是项目在加载的时候找文件用的,按照你给的文件顺序,一个一个的找,要是找到了就显示,找不到就显示404(文件路径丢失错误)。
添加的位置应当在这里:
在server下的location段里添加,此时再重新启动nginx就可以了
在nginx.exe所在的目录内,点击地址栏,输入cmd,可直接在该目录下启动命令行,无需打开cmd后再跳转目录。
若之前没有关闭nginx服务,先停止再打开,如果已关闭,可以直接输入启动服务的命令
停止nginx服务命令:
nginx -s stop
启动nginx服务命令:
start nginx
热部署nignx服务命令:
(但是不推荐使用这个命令,这个命令有时候是不起作用的,不如直接停了再启动)
nginx -s reload
重新启动nginx后,浏览器最好是清除缓存后再进行测试
可以直接在浏览器窗口按
Ctrl+Shift+Del
可直接打开清除缓存的对话框
重新测试,可以正常访问了
总结
通过本文的介绍,我们了解了Nginx出现404 Not Found错误的多种原因及其解决方法。无论是文件路径配置错误、目录权限问题,还是反向代理设置不当,都可能导致这一错误的发生。解决这些问题需要仔细检查Nginx配置文件、确保文件和目录的正确权限,以及验证反向代理的设置。希望本文提供的详细步骤和实用建议能为广大用户提供有效的帮助,使他们在遇到类似问题时能够迅速定位并解决问题,保障网站和服务的稳定运行。在未来的工作中,我们应持续关注Nginx的配置和优化,不断提高系统的可靠性和性能。
本文来源于#劉汉卿,由@zhanid 整理发布。如若内容造成侵权/违法违规/事实不符,请联系本站客服处理!
该文章观点仅代表作者本人,不代表本站立场。本站不承担相关法律责任。
如若转载,请注明出处:https://www.zhanid.com/dnzs/1773.html