更新时间:2024-06-24 GMT+08:00
分享

通过Nginx配置URL转发

操作场景

如果您的服务器上部署了多个网站,且网站放置在不同目录下,访问这些网站时就需要配置域名转发到不同目录URL,即配置URL转发。本节操作介绍通过Nginx实现URL转发的操作步骤。

背景知识

URL转发分为URL显性转发和URL隐性转发。

  • URL显性转发

    显性URL转发采用的是301(也称之为永久性转移)或302重定向技术(也称之为暂时性转移)。将域名解析到一个云服务器IP,在云服务器上配置了此域名和URL的跳转,本节介绍的Nginx实现URL转发即URL显性转发。

    301永久性转移和302暂时性转移的状态码都表示重定向,当浏览器得到服务器返回的301或302状态码后会跳转到一个新的URL地址。但301表示旧地址的资源已经被永久地移除了(这个资源不可访问了),搜索引擎在抓取新内容的同时也将旧的网址交换为重定向之后的网址;302表示旧地址的资源还在(仍然可以访问),这个重定向只是临时地从旧地址跳转到新地址,搜索引擎会抓取新的内容而保存旧的网址。

  • URL隐性转发

    隐性URL转发是用的是iframe框架技术。

步骤1:在云服务器上安装Nginx

本节操作使用工具为Nginx,且确认http_rewrite_module是开启的,一般默认为开启状态。

以CentOS 7系列为例,安装Nginx操作步骤如下:

  1. 安装依赖包。

    yum install -y gcc-c++

    yum install -y pcre pcre-devel

    yum install -y zlib zlib-devel

    yum install -y openssl openssl-devel

  2. 下载并解压安装包。

    wget http://nginx.org/download/nginx-1.20.1.tar.gz

    tar -zxvf nginx-1.20.1.tar.gz

  3. 安装Nginx。

    更换命令中“/usr/local/nginx”为实际希望安装路径。

    cd nginx-1.20.1

    ./configure --prefix=/usr/local/nginx

    make && make install

  4. 安装完后验证是否安装成功。

    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

步骤2:在云服务器上配置Nginx实现URL转发

以下步骤以访问测试域名www.example.cn跳转到华为云官网https://www.huaweicloud.com/xxx为例。

  1. 打开Nginx配置文件,修改server模块中的server_name和location参数配置。

    执行以下命令编辑nginx.conf文件,请将命令中路径替换为安装nginx的实际路径。

    vi /usr/local/nginx/conf/nginx.conf

    server_name:访问的域名

    location:跳转的url地址。其中301是永久跳转,302是临时跳转,本例中使用的是302。具体差异请参考背景知识,并根据实际需求修改。

    图1中域名和URL仅为示例,请根据实际需求替换域名和URL地址。

    图1 修改Nginx配置前
    图2 修改Nginx配置后
  1. 执行以下命令,重新加载配置文件并重启Nginx服务。

    /usr/local/nginx/sbin/nginx -s reload

    /usr/local/nginx/sbin/nginx -s reopen

步骤3:在控制台设置域名解析到云服务器IP

  1. 登录DNS管理控制台,在左侧导航栏点击“公网域名”。
  1. 单击“创建公网域名”,将域名添加至DNS控制台。
  2. 点击域名进入解析记录集页面。
  3. 单击“添加解析记录集”。
    • 主机记录置空。
    • 记录集类型选择A类型记录集。
    • 记录集的值填写为云服务器的IP地址。

步骤4:验证URL转发是否生效

执行以下命令验证URL转发是否生效:

curl -v http://www.example.cn

图3所示。回显信息和预设的URL地址一致,说明设置的URL转发已生效 。

图3 添加域名的A类型记录集
分享:

公网域名解析 所有常见问题

more