NGINX组件(rewrite)

一、location匹配的规则和优先级(*)

URI:统一资源标识符,是一种字符串标识,用于标识抽象的或者是物理资源;如:文件、图片、视频等

nginx中的URI匹配的是:网址"/"后的路径 如:............/images/a.jpg

location就是用来匹配URI的

匹配方式

匹配方式
1、精确匹配: location = / {......}
2、正则匹配: location ~ / {......}
3、一般匹配: location / {......}

匹配规则

匹配规则:
= 精确匹配,完全匹配,不能错误一个字,必须要完全匹配
^~ 匹配普通字符,前缀匹配
$~ 结尾匹配
~ 区分大小写的匹配
~* 不区分大小写的匹配
!~ 区分大小写的匹配,并且逻辑取反
!~* 不区分大小写的取反

location匹配的原则:越精准,越匹配;同时优先级越高

总结:匹配的优先级------>越精准,优先级越高

location的优先级

location = :精确匹配

location ^~ :前缀匹配

location ~* : 正则匹配

location /xxx/ : 一般匹配的准确匹配

location / : 一般匹配

注意:一旦匹配成功,后续将不再匹配

工作中的location匹配规则

一、第一个 必选规则

location = / { }

原因:直接匹配根网站。直接通过域名访问首页是网站最常用的,直接使用精确匹配,可以加快处理,一般使用精确匹配处理的都是首页

二、第二个规则

location ^~ /static/ { }

处理静态文件的请求,目录匹配 (static为自定义)

三、

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

匹配图片,但注意如果使用rewrite来指定后缀的类型,要在location定义中移除,不然会陷入死循环

四、通用规则

location / {

proxy_pass ------------指定代理、反向代理,转发动态请求,如php.jsp请求 ,发到后端

}

rewrite 重写、重定向

rewrite使用nginx的全局变量,或是自己设置的变量,结合正则表达式,和标志位实现URL的重定向

default_type text/plain;

表示如果没有在其他地方显示:content_type的头字段,默认响应为text/plain纯文本格式

text/html :默认的响应类型,也就是页面

text/plain :纯文本格式,类似.txt文件

text/css :css样式的类型:css

text/javascript:java脚本,.js。前端文件,也可以理解是iava解析的程序文件。

rewrite 执行顺序

1、执行service模块中的rewrite

2、执行location中的匹配

3、如果location当中还有rewrite,则会继续执行

注意:如果不停的rewrite,则只会循环执行10次,10次过后进行报错,返回状态码:500

rewrite的语法

rewrite <regex(正则)> <replacement> flag(标志位)

过程:

rewrite:开始重定向

regex:正则匹配的规则

replacement :表示跳转后内容,要重定向的URL

flag:标志位

标志位分为四种:

permanent :永久重定向、返回码301 ------ 永久性的变更URL,搜索引擎会转移他的权重,以及排名,到新的URL

redirect :临时重定向,返回码:302 ------ 用于短期变更(网站维护、升级、更新),搜索,是不会转移权重和排名

返回码:304 指的是获取的是本地缓存

break :重定向,但是不会改变原始的URL,内容会根据系统处理而显示重定向后的内容,并且只会请求一次,即刻跳出当前匹配,立即终止

last :表示本条匹配完成后,继续向下匹配,只要有last就会继续进行匹配,配置时需要注意,防止死循环

配置基于域名的跳转

首先进入nginx的配置文件 进行修改

复制代码
vim /usr/local/nginx/conf/nginx.conf

 server {
        listen       80;
        server_name  www.zheng.cc;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            if ($host = 'www.zheng.cc') {
            rewrite ^/(.*)$ http://www.bai.com/$1 permanent;
            }
            root   html;
            index  index.html index.htm;
        }
}

在本地hosts文件中写入配置的地址

复制代码
echo "20.0.0.40 www.zheng.cc www.bai.com" >> /etc/hosts

重启nginx服务

复制代码
systemctl restart nginx

测试:输入配置的地址 www.zheng.cc 后回车

会跳转至配置的www.bai.com

相关推荐
云运维笔记4 小时前
IP地址从入门到精通:网络通信的核心基石
运维·网络·计算机网络
码农学院5 小时前
企业官网改版后 AI 引用归零的复盘:301 重定向断层让爬虫索引掉线,修复方案与恢复数据
运维·geo优化·ai优化aio
kuroomi6 小时前
Ingress-Nginx与kubernetes 网络
linux·运维·网络·kubernetes
当下新鲜事6 小时前
空调机房冷冻泵与冷却泵技术分析:赛莱默B&G背包式智能变频管道泵的工程应用
运维·物联网·业界资讯
Doris__HE7 小时前
【元脑服务器NF5476G7-NF5476M7技术规格分享】
运维·服务器·网络·数据库·性能优化
打工仔折腾 AI8 小时前
FastAPI 从本机到生产服务器:Nginx+Gunicorn+Uvicorn 完整部署实录
人工智能·后端·python·nginx·fastapi·gunicorn
闲云野鹤在人间10 小时前
docker 入门 | 第7章 容器监控 和 第8章 容器日志 详解
运维·docker·容器·架构·云计算
亚川楼宇自控系统数据中心厂家11 小时前
IBMS 集成如何打通数据中心的子系统数据孤
运维
蓝速科技11 小时前
桌面双屏翻译机量产调试:三类场景兼容性破局方案丨蓝速科技
运维·数据库·人工智能·科技·技术分享
见闻小天地11 小时前
脱硫脱硝塔选变频器避坑指南:四方DL500变频器使用体验分享
大数据·运维·人工智能·业界资讯