Nginx实现前端重定向的三种方法介绍

 更新时间:2025年09月30日 09:20:06   作者:檀越@新空间  
这篇文章主要为大家详细介绍了Nginx实现前端重定向的三种方法,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下

需求:

http://127.0.0.1/test-chat/orig_docs/80a4e16a-6945-4fa0-bc8a-2b9c9c6eacb7

使用 nginx 转为下面的请求

http://127.0.0.1/orig_docs/80a4e16a-6945-4fa0-bc8a-2b9c9c6eacb7

可以使用 nginx 的rewritelocation指令来实现这个 URL 转换。以下是几种配置方式:

方法 1:使用 rewrite 指令

server {
    listen 80;
    server_name 127.0.0.1;

    # 方法1.1:在server级别重写
    rewrite ^/test-chat/orig_docs/(.*)$ /orig_docs/$1 permanent;

    # 或者方法1.2:在location中重写
    location /test-chat/orig_docs/ {
        rewrite ^/test-chat/orig_docs/(.*)$ /orig_docs/$1 permanent;
    }
}

方法 2:使用 location 代理

server {
    listen 80;
    server_name 127.0.0.1;

    location /test-chat/orig_docs/ {
        # 移除test-chat前缀
        rewrite ^/test-chat(/orig_docs/.*)$ $1 break;

        # 代理到实际服务
        proxy_pass http://your_backend_server;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    location /orig_docs/ {
        # 处理原始/orig_docs请求
        proxy_pass http://your_backend_server;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

方法 3:精确的路径重写

server {
    listen 80;
    server_name 127.0.0.1;

    location ~ ^/test-chat/orig_docs/(.+)$ {
        return 301 /orig_docs/$1;
    }
}

完整的 nginx 配置示例

server {
    listen 80;
    server_name 127.0.0.1;

    # 访问日志
    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    # 重写规则:移除test-chat前缀
    rewrite ^/test-chat/orig_docs/(.*)$ /orig_docs/$1 permanent;

    # 处理/orig_docs请求
    location /orig_docs/ {
        # 这里配置您的后端服务
        proxy_pass http://backend_server;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # 可选:设置超时时间
        proxy_connect_timeout 30s;
        proxy_send_timeout 30s;
        proxy_read_timeout 30s;
    }

    # 其他location配置...
    location / {
        # 默认处理
        root /usr/share/nginx/html;
        index index.html;
    }
}

配置说明

permanent (301 重定向):浏览器会记住重定向,适合永久性 URL 变更

redirect (302 重定向):临时重定向,每次都会请求原 URL

break:在 server 内部重写,不对外部重定向

测试配置

# 检查nginx配置语法
nginx -t

# 重新加载配置
nginx -s reload

选择哪种方法取决于您的具体需求:

  • 如果希望用户浏览器地址栏显示新的 URL,使用permanentredirect
  • 如果只是内部重写,使用break
  • 如果需要代理到其他服务,使用方法 2 的代理配置

到此这篇关于Nginx实现前端重定向的三种方法介绍的文章就介绍到这了,更多相关Nginx前端重定向内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Nginx+Tomcat多站点部署的方法

    Nginx+Tomcat多站点部署的方法

    本篇文章主要介绍了Nginx+Tomcat多站点部署的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • CentOS 中Nginx的安装方法

    CentOS 中Nginx的安装方法

    最近研究LNMP,首先要在linux下配置nginx服务器,废话少说,下面给大家分享下在CentOS 中Nginx的安装方法
    2017-08-08
  • 解决nginx+uwsgi部署Django的所有问题(小结)

    解决nginx+uwsgi部署Django的所有问题(小结)

    本篇文章主要介绍了解决nginx+uwsgi部署Django的所有问题(小结),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • Nginx生产环境平滑升级的实现

    Nginx生产环境平滑升级的实现

    本文主要介绍了Nginx生产环境平滑升级的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • nginx代理minio的实现示例

    nginx代理minio的实现示例

    本文介绍通过Nginx代理MinIO实现预签名URL的配置方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-05-05
  • nginx配置ssl实现https的方法示例

    nginx配置ssl实现https的方法示例

    这篇文章主要介绍了nginx配置ssl实现https的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Nginx之QPS限制模块的具体使用

    Nginx之QPS限制模块的具体使用

    本文主要介绍了Nginx之QPS限制模块的具体使用,主要介绍Nginx QPS限制模块的原理、安装和使用方法,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09
  • 制作能在nginx和IIS中使用的ssl证书

    制作能在nginx和IIS中使用的ssl证书

    现在的后端开发,动不动就是需要https,或者说是需要ssl证书,既然没有正版的证书,那么我们只能自己制作ssl的证书了。 证书的制作采用的是openssl工具,如果没有,可以自行安装下,因为笔者是在linux(ubuntu)下制作,所以一般是使用包管理工具(apt)安装好了的
    2021-06-06
  • 服务器使用Nginx部署Vue项目

    服务器使用Nginx部署Vue项目

    本文主要介绍了服务器使用Nginx部署Vue项目,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • Nginx状态监控以及日志分析详解

    Nginx状态监控以及日志分析详解

    这篇文章主要给大家介绍了关于Nginx状态监控以及日志分析的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Nginx具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-06-06

最新评论