1、开始找缘由 在浏览器输入:http://ip,正常的话,会有页面,welcome to nginx 我这里是浏览器访问失败, 查找缘由:php
一、在服务器上访问Ip 执行:curl http://ip 结果:超时,未链接成功linux
查看nginxaccess.log日志,发现日志未滚动,表明本机访问不到公网ipnginx
二、确认网络是否可达 telnet 12x.xx.x.xx 80 Trying 12x.xx.x.xx... Connected to 12x.xx.x.xx. Escape character is '^]'.浏览器
这样就说明网络上可达,而且TCP三次握手能够完成,由于能telnet通,排除了网络不通的状况 可是我本地的网络不通。安全
三、是否受防火墙安全控制等。 将iptables和selinux关闭 如下4条命令清除iptables的配置服务器
iptables -F iptables -F -t nat iptables -X iptables -X -t nat setenforce 0 #关闭selinux 从新远程访问,仍是失败。说明不是防火墙的缘由。这里由于我是debian,因此默认是没有开启防火墙的,因此不是这个缘由。网络
四、去/var/log/nginx/error.log查看错误日志 日志报错:Address already in use 这里就已经确认错误在哪了,原来是80端口被占用的问题。curl
五、解决方案 1)执行:lsof -i:80 查看此时哪一个进程正在使用80端口 我这边发现是阿里云盾正在使用80端口阿里云
2)杀掉云盾进程,重启nginx试试 kill -s 9 pid 具体参考博客:http://blog.csdn.net/ljfphp/article/details/78666376url
六、好吧,惊奇的发现,经过浏览器仍是访问不了nginx,可是此刻个人80端口已经被nginx监听了。继续查看错误日志。错误日志并没刷新。 七、百度发现有人说是iptables防火墙的缘由,可是debian系统的安装默认是没有iptables,因此应该不是防火墙的缘由。
八、看到有人说,是没有备案域名的缘由,80端口默认是关闭状态。好吧,我准备改为8080端口,看看能不能行吧。(这个没来得及试)
2、真正的凶手 终于找到问题了,眼泪差点掉下来。原来是阿里云的问题。我刚开通的服务器,没有设置安全组规则。下面给你们演示一下安全组怎么设置。 一、进入云服务控制台
二、找到安全组,点击进入 三、在默认的一个安全组上,有一个配置规则按钮。点击配置规则
四、这是我原来的安全组规则,没有http的 五、按照如图所示添加 六、浏览器访问ip成功 配置好安全规则以后,咱们就能在浏览器经过ip访问了