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; }
下面,我們詳細說明每個上述術語:
Listen 80 default_server – 這將指示您的系統擷取連接埠80上的所有HTTP通訊
Server_name _ – 在接到請求後的符合順序
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; }
讓我們逐行了解上面的程式碼。
Listen 80 – 使用連接埠80,伺服器將偵聽指定網域的所有傳入連線。
Server_name linuxmi.com www.linuxmi.com – 它指定網域名稱。因此,將其替換為您要重定向的網站域名。
Return 301 https://linuxmi.com$request_uri – 將流量移至該網站的HTTPS版本。
$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中文網其他相關文章!