概述
本文主要介紹如何通過Nginx的轉寄功能來自行搭建URL轉寄伺服器,實現網域名稱轉寄功能。
配置前提
本文使用工具為 Nginx ,且確認 http_rewrite_module 是開啟的,一般預設為開啟狀態。
Nginx安裝配置方法,安裝包編譯安裝:
#下載安裝包 wget http://nginx.org/download/nginx-1.18.0.tar.gz #解壓 tar -zxvf nginx-1.18.0.tar.gz cd nginx-1.18.0 ./configure --prefix=/usr/local/nginx #配置時更換為實際希望安裝路徑即可 make && make install #安裝完後驗證是否安裝成功 cd /usr/local/nginx/sbin ./nginx -t #出現如下內容為安裝成功 nginx: the configuration file /usr/local/nginx//conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx//conf/nginx.conf test is successful
使用情境
根據使用情境不同,分為以下三個使用情境:
url.dns-example.com為跳轉前網域名稱,www.aliyun.com為跳轉後網域名稱(配置時請更換為實際業務網域名稱)
情境一:將url.dns-example.com
完全轉寄到www.aliyun.com
例如,訪問url:http://url.dns-example.com/a.txt
需要跳轉到 http://www.aliyun.com/a.txt
配置過程:
配置
nginx.conf
檔案,檔案在安裝檔案時填寫的路徑位置,即--prefix=填入的路徑。修改server模組中的server_name和location /模組的內容:
修改server_name標籤為跳轉前網域名稱,實際配置請填入實際業務網域名稱。
在location / 模組下添加
return 302 http://www.aliyun.com$request_uri
;(實際配置請填入實際業務網域名稱)說明重新導向目前分為301永久重新導向,302臨時重新導向,若您網站不涉及搜尋引擎技術,則選擇302臨時重新導向即可。
配置前:
配置後:
配置內容參考:
server { server_name url.dns-example.com; # url.dns-example.com改為跳轉前的網域名稱 location / { return 302 http://www.aliyun.com$request_uri; # http://www.aliyun.com 改為跳轉後網域名稱 } }
重啟服務
cd /usr/local/nginx/sbin #實際操作時更換為安裝時配置的路徑 ./nginx -s reload
解析配置
Nginx服務配置完畢後,需要將跳轉前的網域名稱解析指向到Nginx所在伺服器IP上。即需要在網域名稱的DNS服務位址添加一條
url.dns-example.com
(配置時更換為實際跳轉前網域名稱)的A記錄指向到47.94.XX.XX
配置時更換為實際Nginx所在伺服器)。
以雲解析為例,詳細步驟參考添加解析記錄,大致步驟如下:
選擇 權威網域名稱解析>權威網域名稱,單擊需要配置解析的網域名稱進入 解析設定 頁面。
單擊 添加記錄 ,進行如下解析配置。
驗證效果
#在伺服器上運行,網域名稱請填寫您實際業務網域名稱。 curl -v http://url.dns-example.com/a.txt
情境二:將url.dns-example.com
完全轉寄到www.aliyun.com/b/
例如,訪問http://url.dns-example.com/a.txt
需要跳轉到 http://www.aliyun.com/b/a.txt
,
具體配置步驟參考情境一,nginx.conf
配置內容參考:
server {
server_name url.dns-example.com; # url.dns-example.com改為跳轉前的網域名稱
location / {
return 302 http://www.aliyun.com/b$request_uri; # http://www.aliyun.com 改為跳轉後網域名稱
}
}
情境三:將url.dns-example.com/xxx.xxx
完全轉寄到http://www.aliyun.com
例如,訪問http://url.dns-example.com/xxx.xxx
需要跳轉到http://www.aliyun.com
,
具體配置步驟參考情境一,nginx.conf
配置內容參考:
server {
server_name url.dns-example.com; # url.dns-example.com改為跳轉前的網域名稱
location / {
return 302 http://www.aliyun.com; # http://www.aliyun.com 改為跳轉後網域名稱
}
}