nginx的重定向(rewrite)

location 匹配

location 匹配的就是后面的URI

/wordpress

192.168.233.21/wordpress

location匹配的分类和优先级*

1、精确匹配 location= / 对字符串进行完全匹配,必须完全符合

2、正则匹配

^-前缀匹配,以什么开头

-区分大小写的匹配

-*不区分大小写

3、一般匹配

location /字符串

精确匹配的优先级最高>正则>一般

优先级总结:

location = 完整路径=1.jpg > location ^- >location - location-* > location /部分起始位置 > location /

实际网站中的使用规则:

location =/ {

root html;

index index.html index.html index.php

}

网站的首页

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

locaiton ^- /static/ {

root/web/static/;

index index.html index.htm;

}

用来匹配静态页面

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

root /web/picturs/;

index index.html index.html;

}

访问图片或是指定的后缀名

第三个规则,一般是通用规则,用来转发.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地址

nginx.conf

proxy_set_header X-Real-IP $ remote_addr加上这一字段,客户端的真实ip地址就会传递给后端服务器。

标志位:

flag

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

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

break:永久重定向,返回码也是301,但是他匹配到规则之后不会再向下匹配其他规则,URL也不会发生变化

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

rewrite的执行顺序:

1、sever模块rewrite优先级最高

2、匹配location的规则

3、执行选定的location规则

rewrite的语法:

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

rewrite or internal redirection cycle while processing?

在重定向的过程中,使用了last方式进行重定向,但是,没有结束语,陷入了死循环,nginx会自动循环10次,超过10次没有结束,就会停止,然后报错500

相关推荐
Fcy64814 分钟前
Linux下 进程(一)(冯诺依曼体系、操作系统、进程基本概念与基本操作)
linux·运维·服务器·进程
袁袁袁袁满16 分钟前
Linux怎么查看最新下载的文件
linux·运维·服务器
代码游侠36 分钟前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
Harvey9031 小时前
通过 Helm 部署 Nginx 应用的完整标准化步骤
linux·运维·nginx·k8s
珠海西格电力科技2 小时前
微电网能量平衡理论的实现条件在不同场景下有哪些差异?
运维·服务器·网络·人工智能·云计算·智慧城市
释怀不想释怀2 小时前
Linux环境变量
linux·运维·服务器
zzzsde2 小时前
【Linux】进程(4):进程优先级&&调度队列
linux·运维·服务器
聆风吟º4 小时前
CANN开源项目实战指南:使用oam-tools构建自动化故障诊断与运维可观测性体系
运维·开源·自动化·cann
NPE~4 小时前
自动化工具Drissonpage 保姆级教程(含xpath语法)
运维·后端·爬虫·自动化·网络爬虫·xpath·浏览器自动化
神梦流4 小时前
GE 引擎的内存优化终局:静态生命周期分析指导下的内存分配与复用策略
linux·运维·服务器