nginx的重定向rewrite

nginx的重定向(rewrite)

location匹配

location匹配的就是后面的URI

location匹配的分类和优先级*

1、精确匹配 location=/ 对字符串进行完全匹配,必须完全符合,后面内容要写全

2、正则匹配 ^~ 以 xxx为开头

~区分大小写的匹配

~*不区分大小写

!~ :区分大小写取反

!~* 不区分大小写取反

3、一般匹配

location / 字符串

优先级: 精确匹配 > 正则 > 一般 和顺序无关

location=/ > location ^~ > location /

总结:

1.location = 完整路径 (1.jpg 不能是1 或 1. 1.j 要写全)

2.location ^~

3.location ~ 并列 location~*

4.location / 部分起始位置(有字符串)

5.location / (/后面什么都没有)

实际网站中使用的规则

怎么分配选择location匹配

第一

location = / {

​ root html;

​ index index.html index.htm

}

网站的首页

第二个必选规则 处理静态请求页面

location ^~ /static/ {

​ root /web/static/;

index index.html index.htm;

}

匹配静态页面

location ~* \ .(jpg|gif|png|jpeg|css)${

root /web/pictures/;

index index.html index.htm

}

访问图片或指定后缀名

第三规则 一般是通用规则,用来转发.php .js为后缀的动态请求到后端服务器(数据库)

location / {

proxy_pass

}

转发后端请求和负载均衡

rewrite重定向:

rewrite把当前访问的页面跳转到其他页面

rewrite的工作方式:通过nginx的全局变量或者自定义变量,结合正则表达式和标志位实现url的重定向

nginx的变量

$uri 客户端请求的uri地址

$host:请求的主机名

$http_user_agent:客户端请求的浏览器和操作系统

$http_referer:请求头的referer信息,表示当前页面来源的url

$remote_addr:客户端的ip地址

$remote_port :客户端的端口号

$server_addr:服务端的ip地址

$server_port:服务端的端口号

$request_method:获取客户端请求的方法

$scheme:请求的协议,要么是http 要么是https

x_forwarded_for:用来获取请求头当中客户端的真实ip地址。代理服务器添加,在代理服务器中指示客户端的ip地址。

X-Real-IP 客户端真实的ip地址

标志位:

permanent:永久重定向,返回码是301,浏览器地址栏会显示跳转后的url地址

redirect 临时重定向 返回码 302 浏览器地址栏会显示跳转后的url地址

break 永久重定向,返回码301 ,但 匹配到规则后不会再向下匹配其他规则,url也不会变化

last 重定向 但会继续向下匹配其他的location规则

rewrite执行顺序:

1.server模块的rewrite优先级最高

2.匹配location的规则

3.执行选定的location规则

rewrite语法

rewrite + 正则表达式 + 跳转后的内容 + 标志位 ;

相关推荐
JXCY13S5052 分钟前
集群及lvs基础知识
运维·服务器
小此方3 分钟前
Re:Linux系统篇(四十九)线程篇 · 二:为什么现代操作系统选择分页式存储?分页如何解决物理内存碎片?分页结构如何演化到页表、页目录、MMU?
linux·运维·驱动开发
Huangjin007_1 小时前
【Linux 系统篇(十一)】基础开发工具(六) —— 版本控制器 Git
linux·运维·git
j7~1 小时前
【Linux】二十六.线程篇三《Linux多线程编程:线程控制、线程ID以及进程地址空间分布、线程局部存储__thread以及clone系统调用》---详解
linux·运维·服务器·开发语言·c++·多线程编辑·线程的控制
沸速存储9 小时前
整机瓶颈判断思路,自上而下定位卡顿根源
运维·服务器·电脑·内容运营
奈斯先生Vector9 小时前
告别工具碎片化:基于 Nano Banana 全模态 AI 聚合架构搭建“文本-图像-视频”自动化协同生产线
运维·数据库·人工智能·架构·自动化·aigc·音视频
DLYSB_10 小时前
AIOps 大模型实战:基于 LangChain 运维 Agent 的根因诊断与现场声光播报闭环
运维·langchain·报警灯
一可米12 小时前
gitHub.com Actions自动化发布
运维·自动化·github
智塑未来13 小时前
证券公司智能运维平台哪个品牌做得好?擎创科技智能运维 2.0 适配券商全场景
运维·科技·区块链
酷可达拉斯14 小时前
自动化运维-ansible配置文件与主机清单
linux·运维·自动化·ansible