阿里雲nginx配置(轉)


nginx公網IP無法訪問瀏覽器(轉)

一、開始找原因

在瀏覽器輸入:http://ip,正常的話,會有頁面,welcome to nginx 
我這里是瀏覽器訪問失敗, 
查找原因:

1、在服務器上訪問Ip

執行:curl http://ip 
結果:超時,未連接成功

查看nginxaccess.log日志,發現日志未滾動,代表本機訪問不到公網ip

2、確認網絡是否可達

telnet 12x.xx.x.xx 80 Trying 12x.xx.x.xx... Connected to 12x.xx.x.xx. Escape character is '^]'.
  • 1
  • 2
  • 3
  • 4

這樣就說明網絡上可達,並且TCP三次握手可以完成,因為能telnet通,排除了網絡不通的情況 
但是我本地的網絡不通。

3、是否受防火牆安全控制等。

將iptables和selinux關閉 
以下4條命令清除iptables的配置

iptables -F iptables -F -t nat iptables -X iptables -X -t nat
  • 1
  • 2
  • 3
  • 4

setenforce 0 #關閉selinux 
重新遠程訪問,還是失敗。說明不是防火牆的原因。這里因為我是debian,所以默認是沒有開啟防火牆的,所以不是這個原因。

4、去/var/log/nginx/error.log查看錯誤日志

日志報錯:Address already in use 
這里就已經確認錯誤在哪了,原來是80端口被占用的問題。

5、解決方案

1)執行:lsof -i:80 查看此時哪個進程正在使用80端口 
我這邊發現是阿里雲盾正在使用80端口

2)殺掉雲盾進程,重啟nginx試試 
kill -s 9 pid 
具體參考博客:http://blog.csdn.net/ljfphp/article/details/78666376

6、好吧,驚奇的發現,通過瀏覽器還是訪問不了nginx,但是此刻我的80端口已經被nginx監聽了。繼續查看錯誤日志。錯誤日志並沒刷新。

7、百度發現有人說是iptables防火牆的原因,但是debian系統的安裝默認是沒有iptables,所以應該不是防火牆的原因。

8、看到有人說,是沒有備案域名的原因,80端口默認是關閉狀態。好吧,我准備改成8080端口,看看能不能行吧。(這個沒來得及試)

二、真正的凶手

      終於找到問題了,眼淚差點掉下來。原來是阿里雲的問題。我剛開通的服務器,沒有設置安全組規則。下面給大家演示一下安全組怎么設置。 
1、進入雲服務控制台

2、找到安全組,點擊進入 
這里寫圖片描述 
3、在默認的一個安全組上,有一個配置規則按鈕。點擊配置規則 
這里寫圖片描述 
4、這是我原來的安全組規則,沒有http的

這里寫圖片描述

5、按照如圖所示添加

這里寫圖片描述

6、瀏覽器訪問ip成功 
這里寫圖片描述

配置好安全規則之后,我們就能在瀏覽器通過ip訪問了。。千想萬想,沒想到會收到來自阿里雲的GANK,很絕望。。不過在查錯過程中也學到了很多,記錄一下。

end


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM