概述
本文主要介绍如何通过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所在服务器)。
以云解析为例,详细步骤参考添加解析记录,大致步骤如下:
登录云解析DNS产品控制台。
选择 权威域名解析>权威域名,单击需要配置解析的域名进入 解析设置 页面。
单击 添加记录 ,进行如下解析配置。
验证效果
#在服务器上运行,域名请填写您实际业务域名。 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 改为跳转后域名
}
}