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

 

出現問題

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

解決

  • 去騰訊雲申請一個免費的一年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轉爲httpshtml

    return 301 https://$server_name$request_uri;

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

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

解決得了記得點個贊哦nginx

相關文章
相關標籤/搜索