nginx重定向URI中rewrite和alias指的是什么

本篇文章给大家分享的是有关nginx重定向URI中rewrite和alias指的是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

熟悉Nginx的同学都知道Nginx可以用来做负载均衡和反向代理,非常好用。做前后端分离也是非常的方便。今天我们就来说一下,用Nginx做前后端分离时如何做URI重定向?

什么是URI重定向?

就是说访问某一个或者某一规则URI时由Nginx的配置来决定重定向到另外一个或一类URI。

有啥用呢?

其中一个作用就是可以将请求映射到真实目录。

这时我们可以这样配置location:

location /ITwalking {    root D:/resources/;}

用root这种方式配置的话,location后面的ITwalking是作为系统目录的,

即D:/resources/下要有/ITwalking/page这层目录。

这种配置是没问题的。

但假如我们的D:/resources/下直接就是page,

然后下面直接就是文件呢,中间没

有/ITwalking这层目录,怎么办呢?你可能会想,新建个ITwalking把page及其中的文件移动到里面,然后用上面的配置不就可以了吗。

可以,但没必要!

非常没必要,因为我们的resources/page目录可能是从git上clone的,如果我们新建目录移动进去,那我们是不是修改了本地git仓库,那我们提交代码或更新时咋办?再移出去?多麻烦啊。(因为我们请求后台必须要加/ITwalking的)

为了解决这个问题,我们可以用 Nginx 的 alias 指令或者 rewrite 指令。

1、alias指令用来重置当前文件的目录,lacation后面的是虚拟目录

location /ITwalking/ {    #使用 nginx alias 指令    alias D:/resources/page/;}

这样,当URL为

http://www.abc.com/ITwalking/page/index.html时,

会将此请求重定向到

D:/resources/page/index.html

此时的ITwalking是虚拟目录,对此目录的访问重置到

D:/resources/page/

2、rewrite重定向,需要配合root指令一起使用

location /ITwalking/ {    root D:/resources/page/;    #使用 nginx rewrite 指令    rewrite ^/ITwalking/(.*?)$ /$1 break;}

这两种效果是一样的。^/ITwalking/(.*?)$是正则,表示满足这个正则的请求,都重定向到D:/resources/page/下,/$1重定向的地址,break终止匹配。

rewrite是针对http请求的,它里面的路径是网址里面的地址,rewrite做的是地址间的转换。
而root和alias是系统文件路径的设置。
区别是,root用来设置根目录,而alias用来重置当前文件的目录。

以上就是nginx重定向URI中rewrite和alias指的是什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程之家行业资讯频道。

相关文章

文章浏览阅读3.7k次,点赞2次,收藏5次。Nginx学习笔记一、N...
文章浏览阅读1.7w次,点赞14次,收藏61次。我们在使用容器的...
文章浏览阅读1.4k次。当用户在访问网站的过程中遇到404错误时...
文章浏览阅读2.7k次。docker 和 docker-compose 部署 nginx+...
文章浏览阅读1.3k次。5:再次启动nginx,可以正常启动,可以...
文章浏览阅读3.1w次,点赞105次,收藏182次。高性能:Nginx ...