服務器部署網站后,公網ip可以訪問,域名不能訪問問題(穩)


 

出現問題

    這幾天我網站已經部署到vps上,域名也備好案,想使用域名指向我們公網ip。指完發現用域名訪問不了網站,但是公網ip可以。於是看了網上資料,好像是要清除瀏覽器DNS緩存,我清完沒用。然后發現我的域名是https的,查了查,好像是沒有在服務器上安裝SSL證書,導致我用域名訪問不了。最后真是這個原因

解決

  • 去騰訊雲申請一個免費的一年SSL證書,但是每隔一年都得重新免費申請。點擊這里跳轉到騰訊雲SSL證書
    在這里插入圖片描述
  • 之后的照着填就是了。。然后應該會等待一兩天(他們是打電話給我)就申請好。
  • 申請好之后就這樣,點擊下載。
    在這里插入圖片描述
  • 下載完解壓,出現下面的文件
    在這里插入圖片描述
  • 選擇一個你在服務器上用的,我的是Nginx。
  • 下面需要使用工具Putty連接服務器和WinSCP遠程傳輸文件來解決。其實單獨用WinSCP來解決也可以。
  • 先使用WinSCP把剛剛解壓的Nginx文件中的兩個1_flunggg.cn_bundle.crt和2_flunggg.cn.key文件傳輸到你在服務器的nginx的conf目錄下。我自己是安裝在/etc/nginx下(在CentOS7安裝Nginx),但是沒有conf目錄,所以我自己新創建conf目錄,如下指令。把兩個文件從本地用WinSCP拉過去。然后在此目錄新創建一個文件
mkdir /etc/nginx/conf
vi myblog.conf
  • 在 myblog.conf中加上(由於版本問題,配置文件可能存在不同的寫法。例如:使用 listen 443 ssl 代替 listen 443 和 ssl on。),記得把下面的ssl_certificate和ssl_certificate_key改成剛剛拉進來的兩個文件名(因為原先默認會自動定位到/etc/nginx/, 所以nginx -t時錯誤找不到兩個文件,所以的配置 /conf/xxx,這個看個人nginx版本情況),還有server_name。此外可以跟原先站點配置的文件.conf一起共存,那個80端口,這是新創建的443端口,配置SSL的,但是兩者共存時,80端口的站點需要強制跳轉為htpps的站點(443端口的),待會會講。
server {
     #SSL 訪問端口號為 443
     listen 443 ssl; 
     #填寫綁定證書的域名
     server_name www.flunggg.cn flunggg.cn; 
     #證書文件名稱
     ssl_certificate conf/1_flunggg.cn_bundle.crt; 
     #私鑰文件名稱
     ssl_certificate_key conf/2_flunggg.cn.key; 
     ssl_session_timeout 5m;
     #請按照以下協議配置
     ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
     #請按照以下套件配置,配置加密套件,寫法遵循 openssl 標准。
     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
     ssl_prefer_server_ciphers on;
     location / {
        #網站主頁路徑。此路徑僅供參考,具體請您按照實際目錄操作。
         root /usr/share/nginx/html; 
         index  index.html index.htm;
     }
 }

 

  • 然后在主配置中(nginx.conf)的http下添加如下代碼,然后測試一下,成功了就使用重啟nginx
# 使得剛剛配置的SSL生效
include /etc/nginx/conf/*.conf;
#測試
nginx -t
# 重啟
nginx -s reload

 

  • 這時再訪問域名就可以訪問了。上面只是我的配置,你也可以把SSL配置跟你站點的配置放在一個文件。

如果80端口和443端口兩個配置文件同時生效的問題

有可能在訪問80端口,也就是http時有時會有點錯誤,所以在80端口的配置文件的server中,加上一句:當訪問把http轉為https

    return 301 https://$server_name$request_uri;

配完還是有可能出現的問題

  • 也就是將配置文件的root指向我們的站點目錄后。我們嘗試用域名訪問,發現出現下面問題。
    在這里插入圖片描述
  • 這是權限文件,無權訪問你的站點。我檢查了我的站點目錄權限,都是git:git,正常。,最后發現是在nginx目錄下的全局配置文件nginx.conf中。
    在這里插入圖片描述
  • user配的是nginx,導致沒有權限,修改成root。
    在這里插入圖片描述
  • 在重啟 nginx(nginx -s reload)就可以訪問了。

解決得了記得點個贊哦


免責聲明!

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



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