网站个性化设计,中企动力优秀网站,网站集约化建设优势,携程网站建设进度及实施过程一、location匹配的规则和优先级#xff08;*#xff09;
URI#xff1a;统一资源标识符#xff0c;是一种字符串标识#xff0c;用于标识抽象的或者是物理资源#xff1b;如#xff1a;文件、图片、视频等
nginx中的URI匹配的是#xff1a;网址”/“后的路径 如*
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.confserver {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