【服務器搭建環境配置】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服務器

相關文章
相關標籤/搜索