全部產品
Search
文件中心

Alibaba Cloud DNS:通過Nginx搭建自建URL轉寄

更新時間:Nov 26, 2024

概述

本文主要介紹如何通過Nginx的轉寄功能來自行搭建URL轉寄伺服器,實現網域名稱轉寄功能。

配置前提

  1. 本文使用工具為 Nginx ,且確認 http_rewrite_module 是開啟的,一般預設為開啟狀態。

  2. 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

配置過程:

  1. 配置nginx.conf檔案,檔案在安裝檔案時填寫的路徑位置,即--prefix=填入的路徑。

  2. 修改server模組中的server_name和location /模組的內容:

  • 修改server_name標籤為跳轉前網域名稱,實際配置請填入實際業務網域名稱。

  • 在location / 模組下添加 return 302 http://www.aliyun.com$request_uri;(實際配置請填入實際業務網域名稱)

    說明

    重新導向目前分為301永久重新導向,302臨時重新導向,若您網站不涉及搜尋引擎技術,則選擇302臨時重新導向即可。

    配置前:

    image

    配置後:

    22

    配置內容參考:

    server {
        
        server_name url.dns-example.com; # url.dns-example.com改為跳轉前的網域名稱
    
        location / {
            return 302 http://www.aliyun.com$request_uri; # http://www.aliyun.com 改為跳轉後網域名稱
        }
    }
  1. 重啟服務

    cd /usr/local/nginx/sbin #實際操作時更換為安裝時配置的路徑
    ./nginx -s reload
  1. 解析配置

    Nginx服務配置完畢後,需要將跳轉前的網域名稱解析指向到Nginx所在伺服器IP上。即需要在網域名稱的DNS服務位址添加一條url.dns-example.com(配置時更換為實際跳轉前網域名稱)的A記錄指向到47.94.XX.XX配置時更換為實際Nginx所在伺服器)。

  • 以雲解析為例,詳細步驟參考添加解析記錄,大致步驟如下:

    • 登入Alibaba Cloud DNS產品控制台

    • 選擇 權威網域名稱解析>權威網域名稱,單擊需要配置解析的網域名稱進入 解析設定 頁面。

    • 單擊 添加記錄 ,進行如下解析配置。

      image..png

  1. 驗證效果

    #在伺服器上運行,網域名稱請填寫您實際業務網域名稱。
    curl -v http://url.dns-example.com/a.txt

    33

情境二:將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 改為跳轉後網域名稱
    }
}