- 最新动态
- 功能总览
- 产品介绍
- 快速入门
- 用户指南
- 最佳实践
- API参考
- SDK参考
- 场景代码示例
-
常见问题
-
产品咨询类
- 云解析服务是否计费?
- 支持创建多少个域名/记录集/反向解析?
- 华为云DNS对用户提供域名服务的DNS服务器地址是什么?
- 华为云云解析服务提供的内网DNS地址是多少?
- 公网解析与内网解析有什么区别?
- 是否同时支持IPv4和IPv6解析?
- 是否支持显性/隐性URL转发功能?
- 是否支持动态域名解析?
- 是否支持泛解析?
- 什么是TTL值?
- 云解析服务最高支持几级域名?
- 域名解析的顺序是什么?
- DNS解析线路的优先级顺序是什么?
- SOA记录中的Email格式为什么变化了?
- 什么是CAA?
- MX优先级有什么意义?
- 云解析服务是否支持端口解析?
- 如何配置NSCD服务实现缓存加速并提高DNS可用性?
- 怎样提高自建DNS的响应时效?
- 如何使用Serving Stale提高自建DNS的解析成功率?
- 如何配置Nginx解析域名?
- 是否支持通过EDNS获取客户端真实IP地址实现精准调度?
- 域名解析不生效
- 网站无法访问
- 公网域名解析
- 内网域名解析
- 反向解析
- 域名转移
- 邮箱解析
-
产品咨询类
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
通过Nginx配置URL转发
操作场景
用户服务器上部署了多个网站放置在不同目录下,或者购买了多个服务器部署了不同的网站,访问这些网站时可以配置域名转发到不同目录URL,即配置URL转发。
例如用户部署了博客、新闻、活动、应用商店等多个网站,可以为每个网站配置独立的域名转发到不同的URL进行访问。
本节操作介绍通过Nginx实现URL转发的操作步骤。
背景知识
URL转发一般分为URL显性转发和URL隐性转发,本节介绍的Nginx实现URL转发即URL显性转发。
- URL显性转发(Explicit URL Forwarding)
- 显性转发是通过HTTP重定向实现的,通常采用的是301重定向或302重定向技术。通过显性转发将原URL重定向到新URL,从而使访问原URL的所有请求转发到新的URL地址。详细内容请参见表1。
表1 301重定向和302重定向对比 重定向类型
301重定向(HTTP 301 Moved Permanently)
302重定向(HTTP 302 Found)
持久性
永久性重定向,表示资源已被永久移动。
临时性重定向,表示资源的移动是暂时的。
用途
- 网站迁移:当网站从一个域名或URL迁移到另一个域名或URL时。
- 域名变更:当企业更改其域名或子域名时。
- 网站结构调整:当网站进行重大结构调整,导致大量URL变化时。
- 临时网站迁移:当网站进行临时迁移或维护时。
- A/B测试:在进行网站测试或比较不同页面效果时。
- 临时URL变更:在某些情况下,可能需要临时更改URL,但不希望永久更改
SEO影响
有助于传递原URL的SEO价值(如链接权重)到新的URL,维护网站的搜索引擎排名。
不会传递原URL的SEO价值到新的URL,搜索引擎可能会认为这是临时的,不会更新其索引。
浏览器和缓存
重定向结果会被浏览器缓存,用户在刷新时会直接访问新的URL。
重定向结果通常不会被浏览器缓存,或者缓存时间较短,用户在刷新时可能会重新进行重定向。
- 显性转发是指DNS服务器明确配置了转发规则,将来自特定IP地址或网络的查询请求转发给指定的另一台DNS服务器。这种方式下,DNS管理员可以精确控制哪些查询需要被转发,以及转发到哪个服务器。
- 显性转发可以用于优化DNS查询的性能,例如,将来自某个地理位置的查询转发到该地区的DNS服务器,或者将特定类型的查询转发给专门的服务器。
- 显性转发是通过HTTP重定向实现的,通常采用的是301重定向或302重定向技术。通过显性转发将原URL重定向到新URL,从而使访问原URL的所有请求转发到新的URL地址。详细内容请参见表1。
- URL隐性转发(Implicit URL Forwarding)
隐性URL转发使用的是iframe框架技术,是指DNS服务器在没有明确配置转发规则的情况下,自动将无法解析的查询请求转发给其他DNS服务器。这种方式通常发生在主DNS服务器无法回答某个查询时,它会将请求转发给上级DNS服务器,直到找到能够解析该查询的服务器。
隐性转发是DNS查询的默认行为,确保了即使在没有显性转发规则的情况下,DNS查询也能够被正确处理。
步骤1:在云服务器上安装Nginx
本节操作使用工具为Nginx,且确认http_rewrite_module是开启的,一般默认为开启状态。
以CentOS 7系列为例,安装Nginx操作步骤如下:
- 安装依赖包。
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
- 下载并解压安装包。
wget http://nginx.org/download/nginx-1.20.1.tar.gz
tar -zxvf nginx-1.20.1.tar.gz
- 安装Nginx。
更换命令中“/usr/local/nginx”为实际希望安装路径。
cd nginx-1.20.1
./configure --prefix=/usr/local/nginx
make && make install
- 安装完后验证是否安装成功。
./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
步骤2:在云服务器上配置Nginx实现URL转发
以下步骤以访问测试域名www.example.cn跳转到华为云官网https://www.huaweicloud.com/xxx为例。
步骤3:在控制台设置域名解析到云服务器IP
- 登录DNS管理控制台,在左侧导航栏点击“公网域名”。
- 单击“创建公网域名”,将域名添加至DNS控制台。
- 点击域名进入解析记录集页面。
- 单击“添加解析记录集”。
- 主机记录置空。
- 记录集类型选择A类型记录集。
- 记录集的值填写为云服务器的IP地址。
步骤4:验证URL转发是否生效
执行以下命令验证URL转发是否生效:
curl -v http://www.example.cn
如图3所示。回显信息和预设的URL地址一致,说明设置的URL转发已生效 。