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

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

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

簡介

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

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

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

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

先決條件

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

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

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

步驟 1 — 配置 DNS 記錄

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

打開您的 DNS 提供商的 Web 控制臺(tái)。本教程使用 DigitalOcean DNS。

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

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

對(duì)于第二個(gè) DNS 記錄,您可以使用 CNAME 記錄而不是 A 記錄。CNAME 記錄是指向另一個(gè)名稱而不是 IP 地址的別名。您可以創(chuàng)建一個(gè) CNAME 記錄,將 www.my-website.com 指向 my-website.com,并且任何對(duì) www 子域的 HTTP 請(qǐng)求都會(huì)找到您的服務(wù)器,因?yàn)槟鷦倓倿楦蛎麆?chuàng)建了 A 記錄。但為了簡單起見,只需創(chuàng)建另一個(gè)與第一個(gè)類似的 A 記錄,將“www”輸入到“主機(jī)名”字段中,將服務(wù)器的公共 IP 地址輸入到“將指向”字段中。

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

!必需的 A 記錄

放置了這兩個(gè)記錄后,對(duì) my-website.com 和 www.my-website.com 的 Web 請(qǐng)求應(yīng)該能夠到達(dá)您的 Nginx 服務(wù)器?,F(xiàn)在讓我們配置服務(wù)器。

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

如先決條件中所述,您應(yīng)該已經(jīng)在 Nginx 中配置了您的網(wǎng)站。站點(diǎn)的 server 塊出現(xiàn)在主 /etc/nginx/nginx.conf 文件中或者在自己的文件中都無所謂。重要的是您已經(jīng)配置了一些 server 塊,并且其中的 server_name 指令設(shè)置為 my-website.com 和/或 www.my-website.com。無論您的 server_name 包含一個(gè)還是兩個(gè)名稱,現(xiàn)在是決定哪個(gè)名稱您想要成為唯一托管站點(diǎ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,請(qǐng)從 server_name 行中刪除 www.my-website.com,然后保存并退出文件。(如果您想要將 my-website.com 重定向到 www.my-website.com,請(qǐng)刪除 my-website.com。)

然后,創(chuàng)建一個(gè)名為 /etc/nginx/conf.d/www.my-website.com.conf(或 /etc/nginx/conf.d/my-website.com.conf,如果您要重定向的名稱是這個(gè))的新的 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

完成后保存并退出。

在應(yīng)用更改之前,檢查您的 Nginx 配置是否沒有錯(cuò)誤:

sudo nginx -t

除非您出現(xiàn)了語法錯(cuò)誤(例如,您忘記了一個(gè)分號(hào)),否則配置應(yīng)該是正確的。

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

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

sudo systemctl restart nginx

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

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

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

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

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

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

結(jié)論

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

想進(jìn)一步了解 Nginx 如何決定哪個(gè) server 塊將處理特定請(qǐng)求嗎?請(qǐng)查閱本指南:理解 Nginx 服務(wù)器和位置塊選擇算法。

總結(jié)

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

相關(guān)文章

最新評(píng)論