欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

在CentOS?7上使用Nginx將www重定向到非www的完整步驟

 更新時間:2024年11月06日 08:59:10   作者:白如意i  
本文介紹了如何在CentOS7上使用Nginx進行域名重定向配置,以及設置相應的DNS記錄,重定向不僅有助于提高網(wǎng)站的搜索引擎排名,還能確保用戶無論通過www還是非www域名訪問,都能獲得一致的網(wǎng)站體驗,需要的朋友可以參考下

簡介

許多網(wǎng)站開發(fā)者需要允許用戶通過 www 子域名和根域名(非 www)訪問他們的網(wǎng)站或應用程序。也就是說,用戶在訪問 www.my-website.com 和 my-website.com 時應該有相同的體驗。雖然有許多設置方法,但最有利于搜索引擎優(yōu)化(SEO)的解決方案是選擇您喜歡的域名(子域名或根域名),并讓 Web 服務器將訪問另一個域名的用戶重定向到首選域名。

有許多種類型的 HTTP 重定向,但在這種情況下,最好使用 301 重定向,它告訴客戶端:“您請求的網(wǎng)站已永久移動到另一個 URL,請前往那里。” 一旦瀏覽器從服務器接收到 HTTP 301 響應代碼,它會向服務器發(fā)送第二個請求,然后用戶將看到網(wǎng)站,可能根本沒有注意到它們被重定向了。

為什么不配置您的 Web 服務器只為兩個域名的請求提供相同的網(wǎng)站呢?這可能看起來更容易,但它不具備 301 重定向的 SEO 優(yōu)勢。永久重定向告訴搜索引擎爬蟲您的網(wǎng)站有一個規(guī)范位置,并提高了該 URL 的搜索排名。

在本教程中,您將在 CentOS 7 上使用 Nginx 配置 301 重定向。如果您使用的是 Apache 而不是 Nginx,請參閱此教程:如何在 CentOS 7 上使用 Apache 將 www 重定向到非 www。

先決條件

要完成本教程,您首先需要:

  • 在運行 Nginx 的服務器上擁有超級用戶權(quán)限(wheel 組中的用戶)。如果您尚未設置,請按照此教程進行:在 CentOS 7 上進行初始服務器設置。
  • 已安裝并配置 Nginx 以提供您的網(wǎng)站。請按照此教程進行:如何在 CentOS 7 上安裝 Nginx。
  • 注冊的域名。如果您尚未擁有域名,可以從 Freenom 獲取免費域名。您可以使用任何您喜歡的 DNS 提供商(包括您的注冊商)來托管您的域名記錄,只需確保將注冊商指向您的提供商的域名服務器。如果選擇使用 DigitalOcean DNS,我們的文檔中的文章展示了如何操作。

讓我們開始配置您的 DNS 記錄。

步驟 1 — 配置 DNS 記錄

首先,您需要將 www.my-website.com 和 my-website.com 指向運行 Nginx 的服務器。 (本教程假定您的域名是 my-website.com。在下面看到該域名時,請用您自己的域名替換它。)您可以通過為每個名稱創(chuàng)建一個 DNS A 記錄來實現(xiàn)這一點,該記錄指向您的 Nginx 服務器的 IP 地址。

打開您的 DNS 提供商的 Web 控制臺。本教程使用 DigitalOcean DNS。

在“添加域名”表單中,輸入您注冊的域名并單擊“添加域名”。這將打開新域名的頁面,在該頁面上,您可以查看、添加和刪除該域名的記錄。

在“創(chuàng)建新記錄”下,將“@”輸入到“主機名”文本字段中。這是一個特殊字符,表示您正在為根域名添加記錄,即僅為 my-website.com 添加記錄。在“將指向”文本字段中,輸入服務器的公共 IPv4 地址,然后單擊“創(chuàng)建記錄”(無需更改 TTL)。

對于第二個 DNS 記錄,您可以使用 CNAME 記錄而不是 A 記錄。CNAME 記錄是指向另一個名稱而不是 IP 地址的別名。您可以創(chuàng)建一個 CNAME 記錄,將 www.my-website.com 指向 my-website.com,并且任何對 www 子域的 HTTP 請求都會找到您的服務器,因為您剛剛為根域名創(chuàng)建了 A 記錄。但為了簡單起見,只需創(chuàng)建另一個與第一個類似的 A 記錄,將“www”輸入到“主機名”字段中,將服務器的公共 IP 地址輸入到“將指向”字段中。

創(chuàng)建完兩個記錄后,應該看起來像這樣:

!必需的 A 記錄

放置了這兩個記錄后,對 my-website.com 和 www.my-website.com 的 Web 請求應該能夠到達您的 Nginx 服務器?,F(xiàn)在讓我們配置服務器。

步驟 2 — 在 Nginx 中配置重定向

如先決條件中所述,您應該已經(jīng)在 Nginx 中配置了您的網(wǎng)站。站點的 server 塊出現(xiàn)在主 /etc/nginx/nginx.conf 文件中或者在自己的文件中都無所謂。重要的是您已經(jīng)配置了一些 server 塊,并且其中的 server_name 指令設置為 my-website.com 和/或 www.my-website.com。無論您的 server_name 包含一個還是兩個名稱,現(xiàn)在是決定哪個名稱您想要成為唯一托管站點的名稱。

打開包含您的網(wǎng)站配置的文件(例如 /etc/nginx/conf.d/my-website.com.conf)在 vi 或您喜歡的編輯器中(如果您更喜歡,可以使用 yum install nano),并找到 server_name 指令:

sudo vi /etc/nginx/conf.d/my-website.com.conf
server {
    . . .
    server_name my-website.com www.my-website.com
    . . .
}

如果您想要將 www.my-website.com 重定向到 my-website.com,請從 server_name 行中刪除 www.my-website.com,然后保存并退出文件。(如果您想要將 my-website.com 重定向到 www.my-website.com,請刪除 my-website.com。)

然后,創(chuàng)建一個名為 /etc/nginx/conf.d/www.my-website.com.conf(或 /etc/nginx/conf.d/my-website.com.conf,如果您要重定向的名稱是這個)的新的 Nginx 配置文件。文件名可以隨意命名,但與所有 Nginx 配置文件一樣,文件名必須以 .conf 結(jié)尾:

sudo vi /etc/nginx/conf.d/www.my-website.com.conf

在文件中添加以下 server 塊,將 my-website.com 替換為您自己的域名:

server {
    server_name www.my-website.com;
    return 301 $scheme://my-website.com$request_uri;
}

如果您要將 my-website.com 重定向到 www 子域,只需在 server_name 中僅放入 my-website.com,并在下一行的 URL 中放入 www.my-website.com。

完成后保存并退出。

在應用更改之前,檢查您的 Nginx 配置是否沒有錯誤:

sudo nginx -t

除非您出現(xiàn)了語法錯誤(例如,您忘記了一個分號),否則配置應該是正確的。

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

現(xiàn)在重新啟動 Nginx 以應用新的重定向規(guī)則:

sudo systemctl restart nginx

在瀏覽器中訪問 www.my-website.com 之前,可以在服務器上或本地機器上(如果本地安裝了 curl)使用 curl 進行請求:

curl -IL http://www.my-website.com

-I 標志告訴 curl 僅顯示來自服務器響應的標頭。-L 標志告訴 curl 遵循服務器的任何重定向,通過自動發(fā)出第二個請求,這次請求的 URL 是在 Location 標頭中給出的 URL(就像 Web 瀏覽器會做的那樣)。由于您已配置了 301 重定向,curl 應該會發(fā)出兩個請求,您應該只會看到兩個響應的標頭:

HTTP/1.1 301 Moved Permanently
Server: nginx/1.20.1
Date: Thu, 08 Dec 2022 19:24:44 GMT
Content-Type: text/html
Content-Length: 169
Connection: keep-alive
Location: http://my-website.com

HTTP/1.1 200 OK
Server: nginx/1.20.1
Date: Thu, 08 Dec 2022 19:24:44 GMT
Content-Type: text/html
Content-Length: 57
Last-Modified: Thu, 01 Dec 2022 22:10:57 GMT
Connection: keep-alive
ETag: "63892671-39"
Accept-Ranges: bytes

在對 http://www.my-website.com 的原始請求的 301(永久移動)響應中,請注意最后一個標頭:Location: http://my-website.com。第二個響應來自 curl 對 http://my-website.com 的后續(xù)請求,如果您的網(wǎng)站正常,服務器應該已經(jīng)以 200(OK) 響應。

最后,在您的 Web 瀏覽器中訪問 http://www.my-website.com。眨眼之間,您可能錯過了重定向。您的網(wǎng)站應該會像往常一樣顯示,但再次查看地址欄,注意到 URL 中缺少“www”。大多數(shù)用戶都不會注意到這一點,因此他們將會像請求 http://my-website.com 一樣有相同的體驗。

結(jié)論

在本教程中,您為您的網(wǎng)站添加了兩個 DNS 記錄,并配置了 Nginx 將次要域重定向到首選域?,F(xiàn)在您的網(wǎng)站可以通過這兩個域名訪問。也許在您閱讀本教程之前,您的網(wǎng)站已經(jīng)可以通過這兩個域名直接訪問。但是通過只需再添加四行 Nginx 配置,您已經(jīng)提高了您的網(wǎng)站在搜索引擎中的地位,從而使其暴露在互聯(lián)網(wǎng)上的更多用戶面前。

想進一步了解 Nginx 如何決定哪個 server 塊將處理特定請求嗎?請查閱本指南:理解 Nginx 服務器和位置塊選擇算法。

總結(jié)

到此這篇關于在CentOS 7上使用Nginx將www重定向到非www的文章就介紹到這了,更多相關CentOS7 Nginx將www重定向非www內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論