Nginx怎樣將HTTP重定向到HTTPS


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

Nginx怎樣將HTTP重定向到HTTPSNginx怎樣將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通信
    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;
}

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

  1. 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。

總結

我們已經討論了如何將流量從HTTP版本重定向到Nginx服務器上的HTTPS。通過改變Nginx配置文件設置,您可以輕松地將指定域名或全部重定向到HTTPS。我們在本文中提到的這種方法,可以通過改變用戶體驗,使您的網站更安全。

本文地址:https://www.linuxprobe.com/nginx-http.html


免責聲明!

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



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