首頁  >  文章  >  運維  >  Nginx如何將HTTP重新導向到HTTPS

Nginx如何將HTTP重新導向到HTTPS

WBOY
WBOY轉載
2023-05-13 09:52:133242瀏覽

Nginx是一個強大的重定向工具,可以輕鬆設定在您的系統上重定向不安全或未加密的HTTP網路流量到加密和安全的HTTPS網路伺服器。

Nginx,發音為“Engine x”,是一個免費、開源、基於Linux的高性能Web和反向代理伺服器,負責管理和處理互聯網上最大的網站流量的負載。 Nginx是一個強大的重定向工具,可以輕鬆配置在您的系統上重定向不安全或未加密的HTTP網路流量到加密和安全的HTTPS網路伺服器。如果你是系統管理員或開發人員,那麼你應該經常使用Nginx伺服器。

在這篇文章中,我們將研究如何在Nginx中將Web流量從HTTP重定向到安全的HTTPS。 HTTP訊息頭,以明文的字串格式傳送,而HTTPS使用SSL/TLS對客戶機和伺服器系統之間的通訊進行加密。因此,由於許多原因,HTTPS應該取代HTTP:

1.客戶端-伺服器之間雙向的所有資料都已加密。但是,如果被攔截,任何人都無法存取敏感資訊。

2.當您使用HTTPS時,Google Chrome和其他瀏覽器會認為您的網站網域是安全的。

3.HTTPS版本使用HTTP/2協定改善了您指定的網站效能。

4.如果您透過HTTPS為您的網站網域提供服務,則網站將在Google上排名更高,因為它偏愛所有受HTTPS保護的網站。

5.對於每個網站版本,最好在單獨的伺服器區塊中將Nginx中的流量HTTP重定向到HTTPS。也建議避免使用“ if”方向重定向流量,這可能會導致伺服器異常行為。

將所有流量從HTTP重定向到HTTPS

將以下變更新增至Nginx設定檔中,以便將所有流量從HTTP重定向到HTTPS版本:

server { 
    listen 80 default_server; 
    server_name _; 
    return 301 https://$host$request_uri; 
}

下面,我們詳細說明每個上述術語:

  1. Listen 80 default_server – 這將指示您的系統擷取連接埠80上的所有HTTP通訊


  2. Server_name _ – 在接到請求後的符合順序


  3. Return 301 https://$host$request_uri – 這告訴您的搜尋引擎將其永久重新導向。它指定變數$host 保存網域。

更改設定設定後,需要在系統上重新載入Nginx服務。因此,使用下列命令重新載入Nginx服務:

$ sudo systemctl reload nginx

在Nginx中將指定網域的HTTP重定向到HTTPS

在您的網域上安裝SSL憑證之後,您將有兩個用於此網域的伺服器區塊選項。一個區塊用於監聽連接埠80的HTTP版本,第二個版本用於監聽連接埠443的HTTPS。然而,要將一個網站網域從HTTP重新導向到HTTPS,你需要開啟Nginx設定。您可以在/etc/nginx/sites-available目錄中找到這個設定檔。如果你沒有找到這個文件,你可以搜尋它/etc/nginx/nginx./usr/local/nginx/conf或/usr/local/etc/nginx,然後在這個文件中執行以下更改:

server { 
    listen 80; 
    server_name linuxmi.com www.linuxmi.com; 
    return 301 https://linuxmi.com$request_uri; 
}

讓我們逐行了解上面的程式碼。

  1. Listen 80 – 使用連接埠80,伺服器將偵聽指定網域的所有傳入連線。


  2. Server_name linuxmi.com www.linuxmi.com – 它指定網域名稱。因此,將其替換為您要重定向的網站域名。


  3. Return 301 https://linuxmi.com$request_uri – 將流量移至該網站的HTTPS版本。


  4. $request_uri變數用於完整的原始請求URI,其中也包含參數。

使用下列方法,您可以將流量重定向到HTTPS www版本到網站的非www版本。對於非www和www版本,建議在單獨的伺服器區塊中建立重定向。讓我們用一個例子來解釋。如果要將www HTTPS請求重新導向到非www版本,則應遵循以下配置:

server { 
    listen 80; 
    server_name linuxmi.com www.linuxmi.com; 
    return 301 https://linuxmi.com$request_uri; 
} 
server { 
    listen 443 ssl http2; 
    server_name www.linuxmi.com; 
    # . . . other code 
    return 301 https://linuxmi.com$request_uri; 
} 
server { 
    listen 443 ssl http2; 
    server_name linuxmi.com; 
 
    # . . . other code 
}

用您的網域取代域名,例如www.linuxmi.com。

透過改變Nginx設定檔設置,您可以輕鬆地將指定網域或全部重新導向到HTTPS。我們在文中提到的這種方法,可以透過改變使用者體驗,讓您的網站更安全。

以上是Nginx如何將HTTP重新導向到HTTPS的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除