【服务器搭建环境配置】Linux上部署Nginx服务以及故障排除

    说明

 

 

(一)linux服务器上部署nginx

 

 

(二)linux服务器上部署了nginx,可是外部(公网)就是不能访问

 

检查思路:

一、确认nginx配置是否ok。
二、确认网络是否可达。
三、是否受防火墙安全控制等。
四、排除以上缘由以后,远程实际再测试。linux


那么开始排查:
一、确认nginx配置是否ok
        1.一、检查nginx的配置。
                发现有报错,原来有httpd进程(apache),关闭它                nginx

[host]#  netstat -lanp|grep 80
2013/11/13 15:35:09 [emerg] 7739#0: bind() to 0.0.0.0:80 failed (98: Address already in use) 

        1.2本机是否能够访问(公网ip)
 apache

[host]#  curl http://12x.xx.x.xx/

二、确认网络是否可达浏览器

[host]#  telnet 12x.xx.x.xx 80
Trying 12x.xx.x.xx...
Connected to 12x.xx.x.xx.
Escape character is '^]'.

    说明网络上可达,而且TCP三次握手能够完成,由于能telnet通,排除网络不通。
三、是否受防火墙安全控制等。  (我我的遇到的问题是这中状况)
    如下4条命令清除iptables的配置,将iptables和selinux关闭安全

iptables -F
iptables -F -t nat
iptables -X
iptables -X -t nat
setenforce 0 #关闭selinux

四、远程访问再次确认和推论bash

    4.1远程使用浏览器访问,不能访问。。。
    4.2服务器日志没有滚动
    4.3基于4.1和4.2,结论是请求没有到nginx,可是根据,二、网络是可达的。
彷佛矛盾出来了:网络可达,可是80端口的请求就确实没有到nginx。。实际上,网络的可达,或者说telnet能痛,只说明TCP三次握手是ok的,可是流量器不能访问,说明http数据传输受影响。因此,初步判断,是给服务器以前的“某个网络设备”过滤了。
    4.4telnet 以后,直接输入GET /,发现页面能传输回来,可是输入了GET / HTTP/1.1就会被卡死,无任何数据反馈。因而就比较怀疑是服务器以前的“某个网络设备”过滤了(专门过滤http数据)。

五、咱们修改了nginx的监听的端口为8080,发现访问正常了:不管是浏览器仍是telnet以后输入GET / HTTP/1.1都ok服务器

相关文章
相关标签/搜索