nginx中url地址重写的实现

 更新时间:2025年03月30日 09:34:14   作者:贺茗Y28  
本文主要介绍了nginx中url地址重写的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一.url重写介绍【在进行url地址替换的时候,常常用完整的url地址进行替换】

可以在nginx上进行配置,将客户端的访问请求进行修改,随后拿修改后的地址给客户端进行响应。

如上图所示,这是使用url地址重写的两种应用场景。

一种是https加密网站,nginx反向代理服务器可以对用户的url地址进行重写,加上https的前缀,

一种是当公司的业务结构发生变化的时候,用户用之前的访问地址不能访问到之前想要访问的内容,这时候就可以使用nginx反向代理服务器的url地址重写功能,将用户的url地址进行重写。使得用户能够再次以之前的访问地址,访问到之前想要访问的内容。

语法:

rewrite uri地址,新uri地址【标志】;

1.server ,location,if条件判断

2.rewrite可以存在多条,依次进行处理

3.旧uri地址支持正则表达式;新uri支持反向引用

4.旧uri地址匹配客户端时,不包括请求中的参数

如上图所示,旧uri地址在匹配客户端请求的时候,是不包含匹配中的参数,旧uri地址中是会有一个问号,这个问号之后的东西就是uri地址中的参数,

5.支持变量中的使用   $remote_addr这个表示客户端的IP地址。

如上图所示,如果客户端的访问请求,可以在location中经历10次的地址重写,那么就会给客户端返回500的错误。

标志flag

【很少去用,常常在地址改写的时候,写上完整的url地址。】

1)last

终止本location块中的匹配,将新地址转交给下一个location处理。

2)break

不会将新地址交给其他的location处理,只在本location中处理。

如上图所示,这两种方式都无法结束location的循环,但是如上图所示,如果被改写的uri地址是一个完整的url地址的时候,那么此时就可以结束location的循环。

3)redirect

表示这次改写是一次临时重定向,状态码302

4)permanet

永久重定向,状态码301

如上图所示,这是nginx的重写模块

如上图所示,这就是对一个url地址的重写过程。

案例1:改写地址中的目录名称

如上图所示,虚拟主机的网页目录是/data/python

如上图所示,这是在虚拟主机的网页目录下新创建一个目录,并且创建网页,

如上图所示,现在公司的业务结构发生变化,之前的mp3目录改名了改成了music,那么用户要想用之前的访问请求,访问之前的数据内容,就需要我nginx反向代理服务器实现url地址重写功能。

如上图所示,这是在没有配置nginx服务器反向代理服务器的地址重写功能。

如上图所示,这是在虚拟主机的配置文件中进行修改的过程,

如上图所示,这是在修改虚拟主机配置文件之后,对语法进行检查,随后使得nginx软件重新识别配置文件的操作。

如上图所示,这就是url地址重写的例子。

【考虑实际需求,当我们去实际部署一个业务的时候,不可能这个业务只有一个网页,如果这个业务有多个网页。当目录名称发生变化的时候,该怎么办?】

如上图所示,这是访问目录下有多个网页。

如上图所示,当新的数据目录下有多个网页,

如上图所示,这是利用正则表达式的反向引用。将所有mp3替换成music,并且引用用户想要访问的网页名称。

$1的意思就是要引用(.*)中的内容。

案例2:域名跳转

客户端访问我的时候,后面的访问地址是什么都可以,都会跳转到我指定的新的网站上。

案例3:实现https的自动跳转

如上图所示,如果客户端要访问我www.linux.com的网站,那我们就自动给这个网站加上https的前缀

到此这篇关于nginx中url地址重写的实现的文章就介绍到这了,更多相关nginx url地址重写内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 基于Nginx的衍生版服务器Tengine简介

    基于Nginx的衍生版服务器Tengine简介

    这篇文章主要介绍了基于Nginx的衍生版服务器Tengine简介,本文讲解了Nginx的特性、Tengine的特性、架构和扩展性等内容,需要的朋友可以参考下
    2015-03-03
  • 浏览器控制台报错Failed to load module script:解决方法

    浏览器控制台报错Failed to load module script:解决方

    这篇文章主要为大家介绍了浏览器控制台报错Failed to load module script:解决方法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • Centos下编译安装Nginx教程详解

    Centos下编译安装Nginx教程详解

    这篇文章主要介绍了Centos下编译安装Nginx的教程详解,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-12-12
  • nginx 部署启动jar包用到的一些命令和流程操作

    nginx 部署启动jar包用到的一些命令和流程操作

    这篇文章主要介绍了nginx 部署启动jar包用到的一些命令和流程操作,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-11-11
  • Centos7.3 安装部署Nginx并配置https的方法步骤

    Centos7.3 安装部署Nginx并配置https的方法步骤

    这篇文章主要介绍了Centos7.3 安装部署Nginx并配置https的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • Nginx解决vue项目服务器部署及跨域访问后端详解

    Nginx解决vue项目服务器部署及跨域访问后端详解

    跨域问题在前后端分离项目很常见,至于为什么会跨域,同源策略,百度各种博客都很详细,这里不再介绍,这篇文章主要给大家介绍了关于Nginx解决vue项目服务器部署及跨域访问后端的相关资料,需要的朋友可以参考下
    2022-11-11
  • Nginx负载均衡的4种方案配置实例

    Nginx负载均衡的4种方案配置实例

    这篇文章主要介绍了Nginx负载均衡的4种方案配置实例,本文讲解了轮询、最少连接、IP地址哈希、基于权重的负载均衡等内容,需要的朋友可以参考下
    2015-01-01
  • 基于nginx的静态网页部署的实现

    基于nginx的静态网页部署的实现

    这篇文章主要介绍了基于nginx的静态网页部署的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • 配置Nginx服务器展示随机首页与空白图片的方法

    配置Nginx服务器展示随机首页与空白图片的方法

    这篇文章主要介绍了配置Nginx服务器展示随机首页与空白图片的方法,分别用到了ngx_http_random_index_module模块和ngx_http_empty_gif_module模块,需要的朋友可以参考下
    2016-01-01
  • nginx 如何配置文件上传大小

    nginx 如何配置文件上传大小

    这篇文章主要介绍了nginx 如何配置文件上传大小,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-01-01

最新评论