nginx https配置后無法訪問,可能防火牆在搗鬼


同事發現nginx配置后https 無法訪問,我幫忙解決的時候從以下出發點

1.防火牆未開放443端口
2.配置出錯
  • 1
  • 2
  • 3

於是就 netstat -anp 查看防火牆開的端口
這里寫圖片描述

發現已經在監聽了,那肯定是配置問題。
檢查配置沒問題,重新生成證書等方法也還是無法訪問,甚至在別的機器上https的配置copy過來依然無法訪問

冷靜下來想想,nginx都沒有返回狀態嗎,直接無法連接。這到底請求到了嗎?

只能進入防火牆配置文件看看了
vim /etc/sysconfig/iptables
這里寫圖片描述

問題就在這里了,開放端口一定要在
-A INPUT -j REJECT –reject-with icmp-host-prohibited
這句的前面,的前面,的前面!!!

因為順序執行的原因,放在后面的規則就無效了,網上通常會看到這么一句話

特別提示:很多網友把這兩條規則添加到防火牆配置的最后一行,導致防火牆啟動失敗,正確的應該是添加到默認的22端口這條規則的下面

原因是這條規則的作用是拒絕所有-j REJECT 在iptables幫助文檔里面有一下說明This is used to send back an error packet in response to the matched packet

就是表明拒絕你,並返回一個錯誤連接信息。請求沒到nginx那,肯定沒有狀態碼返回,同時你的瀏覽器返回的只能是無法連接。

總結

被netstat -anp 出來的內容欺騙了,規則是添加了,但是沒起效果。
如果返回404,403等等,那說明是nginx的配置等因素;
如果無法連接,通常是防火牆,或者nginx為啟動等可能的因素;
冷靜分析問題,查看錯誤信息,才是解決問題的辦法,萬萬不能try stuff until it works,那樣只能是無用功。


免責聲明!

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



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