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 + 正则表达式 + 跳转后的内容 + 标志位 ;

相关推荐
安科瑞-小李6 分钟前
铁路智能运维进化路线:自动化→状态可视→预测维护
运维·自动化·数据采集·能耗可视化
酷可达拉斯43 分钟前
自动化运维-Ansible任务控制与流程控制
运维·自动化·ansible
HiDev_43 分钟前
【非标自动化】2、认识元器件(电机保护器)
运维·自动化
承渊政道2 小时前
KES专业技能包发布:覆盖数据库开发、迁移与运维全流程
运维·数据库·gitee·数据库开发·金仓数据库
笨鸟先飞,勤能补拙2 小时前
Web 服务器与计算机网络全景原理
运维·服务器·前端·网络·人工智能·计算机网络·web安全
caimouse2 小时前
ReactOS 图形系统分析(3):显示驱动 DDI framebuf.dll
linux·运维·网络
跨境小彭2 小时前
Temu运营优化方案:活动库存自动化管控,解决断流、超卖与权重下跌问题
大数据·运维·人工智能·自动化·跨境电商·temu·temu电商运营
漫谈数据智理3 小时前
IDS-RAM 如何支撑数据空间走向可
大数据·运维·微服务
佳児素花痴╮3 小时前
网络问题与基础理论
运维·服务器·网络
tanglinS3 小时前
工业陶瓷在半导体设备里都用哪里?氮化铝基板与氮化硅结构件的静电无尘角色
大数据·运维·人工智能·自动化·材质