通过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转发已生效 。