如果遇到404 Not Found nginx/1.10.3 无法访问的情况,记得去看,nginx的error日志,因为我是在Linux中安装的nginx,只要找到你安装nginx对应的目录,找到error.log,然后通过 tail -f erroe.log 命令查看日志内容可以很快定位问题
报错日志内容:
connect() failed (113: No route to host) while connecting to upstream 意思是连接上游服务地址失败,之前在网上找了很多解决方法都说是服务器防火墙的问题,或许对于大多数人来说说确实可能是防火墙的问题,但是对于我出现的这种情况明显无法按网上的方法解决,因为的压根防火墙都已经关闭了,之前好好的,过了一段时间之后想着起个项目才发现启动不起来了。
排查思路:
检查nginx的配置文件nginx.conf 一般都是在你安装nginx目录里面,然后检查你的upstream {…}里面配置的服务器地址是否与error.log 错误日志打印的ip地址一致,有可能error.log打印出来访问的地址是其他地址,如果与我们nginx.conf里面配置的upstream->server地址不一致的话,我们需要通过cmd窗口 ipconfig 命令查看error.log日志打印的地址对应的是哪一个?
在这个界面,只需要按需选择你所在的服务器相关的网络连接即可,我用的是VirtualBox客户端安装的虚拟机,我就在这里如下图中所配置了一个固定同网段的ip地址,同理如果你使用的是VMware你就去对应的服务下面去看就好了。
指定以太网适配器 VirtualBox Host-Only Network: IPv4 地址 . . . . . . . . . . . . : 192.168.56.103 (因为我们在nginx.conf中指定了upstream的地址为:192.168.56.103:88)所以我就使用来了以下指定的同网段的ip地址 记得修改完之后,发起一次请求,然后去nginx安装目录中的log查看error.log的打印日志,看日志里面请求的上游服务器地址是不是我们配置的nginx.conf中配置的upstream->server,如果不一致,看是否选择了正确的网络连接进行的修改。 如若修改正确,可以在error.log日志中看到client:192.168.56.103的地址与文章中的图1和图3指定的地址一致。 如果报超时的问题,记得关闭windows的网络防火墙,允许所有的网络通信即可。 因为这个问题困扰一段时间,网上搜了好多博客内容,文章大同小异,好在突然有一天来了灵感,随即水一篇文章以作记录。毕竟我们每个人遇到的问题不可能都一模一样,这篇笔记的也只是给大家提供另一种解决思路。
|