1. 程式人生 > >阿里雲 配置網站 安裝nginx 訪問不了公網ip

阿里雲 配置網站 安裝nginx 訪問不了公網ip

轉載自:https://blog.csdn.net/LJFPHP/article/details/78670459

一、開始找原因

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

1、在伺服器上訪問Ip

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

檢視nginxaccess.log日誌,發現日誌未滾動,代表本機訪問不到公網ip

2、確認網路是否可達

  1. telnet 12x.xx.x.xx 80

  2. Trying 12x.xx.x.xx...

  3. Connected to 12x.xx.x.xx.

  4. Escape character is '^]'.

  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 4

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

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

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

  1. iptables -F

  2. iptables -F -t nat

  3. iptables -X

  4. iptables -X -t nat

  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 4

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

4、去/var/log/nginx/error.log檢視錯誤日誌

日誌報錯:Address already in use  這裡就已經確認錯誤在哪了,原來是80埠被佔用的問題。

5、解決方案

1)執行:lsof -i:80 檢視此時哪個程序正在使用80埠  我這邊發現是阿里雲盾正在使用80埠

6、好吧,驚奇的發現,通過瀏覽器還是訪問不了nginx,但是此刻我的80埠已經被nginx監聽了。繼續檢視錯誤日誌。錯誤日誌並沒重新整理。

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

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

二、真正的凶手

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

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

這裡寫圖片描述

5、按照如圖所示新增

這裡寫圖片描述

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

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

end