当前位置: 首页 > news >正文

Nginx location

  • location块是nginx配置文件中,配置在http块中的server块中,匹配的是uri

location匹配uri的方式 :

  1. 精确匹配: location = /[ ...}

  2. 正则匹配: location - /{ ...}

  3. 一般匹配: location /{ ....}

匹配的规则:

  • = :精确匹配,完全匹配,错一个字都匹配到,必须完全一致。

  • ^~ : 匹配普通字符,前缀匹配

  • ~ :区分大小写的匹配

  • ~ * :不区分大小写的匹配.

  • ~$ : 结束位置

  • !~ :区分大小写的匹配,取的逻辑非,取反

  • !~* :不区分大小写的取反

    注 :location 越精确,越匹配(优先级越高)

匹配的优先级 :

  • 精确匹配 最高

  • 正则匹配 次之

  • 通用匹配 最后

location = > location ^- > locatuin -* > location /test/ > location /

一旦匹配到了之后,不再向下匹配.

生产中location 匹配规则;

  • 第一个必选规则: location = /

    直接匹配根网站。通过域名访问网站首贞是最多的。使用精确匹配,可以加快处理速度。首贞。

  • 第二个规则 : location ^- /static/ f 处理静态文件的请求,目录匹配.

  • 第三个规则 :location -*.(gifljpglpnglcss)、

    四配图片用的

  • 第四个通用规则 :

           location / {

               proxy_pass 指定代理,反向代理,转发动志请求。.php .jsp的请求,发到后端

            }

rewrite 重写、重定向

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

rewrite 执行顺序 :

  1. 执行server块当中的rewrite

  2. 执行location匹配

  3. 如果location当中还有rewrite,继续执行。

不停rewrite,死循环,只能10次,然后报错,报错的状态码: 500

rewrite的语法:

rewrite <regex> <replacemnet> [flag]

rewrite :开始重定向 regex:正则匹配的规则 replacemnet:表示跳转后的内容,你要重定向的url flag :标志位 (4种)

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

  • redirect :临时重定向,显示的返回码: 302 ,用于短期变更(网站维护,或者升级更新)。搜索引擎是不是转移权重和排名到新的url

  • break :不会改变url而且只会请求一次、跳出当前匹配 ,即刻终止

  • last :本条负责匹配完成后,继续向下匹配,只要有 last ,就继续匹配,,配置的时候要注意,防止死循环

如 :日志显示:
rewrite or internal redirection cycle while processing 
#表示写成了死循环,一直在匹配 location,10次,返回码500.

nginx的变量 :

  • x_forwarded_for:用于获取HTTP请求头中的X-Forwarded-For字段的值。 X-Forwarded-For是一个常见的HTTP请求头,通常由代理服务器添加,用于指示原始客户端的IP地址。 proxy_set_header X-Forwarded-For $remote_addr; 这个是传给后端。

  • X-Real-IP:头部为客户端真实IP地址 proxy_set_header X-Real-IP $remote_addr; proxy_set_header指令来设置X-Real-IP头部的值为$remote_addr,即客户端的真实IP地址。 这样,Nginx会将客户端的真实IP地址作为X-Real-IP头部的值传递给后端服务器。

如果没有在其他地方显示设置 content-type的头字段,默认响应为text/plain; 纯文本格式

test/html :默认的响应类型,也就是我们说的页面

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

test/css :css样式表的 类型 .css

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

http://www.lryc.cn/news/119522.html

相关文章:

  • 数据库字段命名导致的SQL报错
  • 【办公自动化】使用Python一键提取PDF中的表格到Excel
  • 【基础类】—原型链系统性知识
  • ddia(3)----Chapter3. Storage and Retrieval
  • SpringBoot自定义拦截器interceptor使用详解
  • AI抠图使用指南:Stable Diffusion WebUI Rembg实用技巧
  • gitlab-Runner搭建
  • 【ChatGPT 指令大全】销售怎么借力ChatGPT提高效率
  • 计算机网络 网络层 路由 路由信息协议RIP
  • 【Spring】-Spring项目的创建
  • SQL | 使用通配符进行过滤
  • make: *** [Makefile:719: ext/openssl/openssl.lo] Error 1
  • Android Studio实现简单ListView
  • 【设计模式】模板模式
  • 配置docker和复现
  • Qt应用开发(基础篇)——工具箱 QToolBox
  • 地理测绘基础知识(1) 坐标系经纬度与ECEF直角坐标的基本换算
  • 【UE4 RTS】08-Setting up Game Clock
  • 百度chatgpt内测版
  • [GAN] 使用GAN网络进行图片生成的“调参人”入门指南——生成向日葵图片
  • (十)人工智能应用--深度学习原理与实战--模型的保存与加载使用
  • Java“牵手”1688商品详情页面数据获取方法,1688API实现批量商品数据抓取示例
  • Docker_docker runContainerd
  • python中常见的矩阵变换总结
  • LightningChart JS 2023Crack,CPU高效实时更新
  • hutool 导出复杂表头excel
  • git和github学习
  • 竞赛项目 车位识别车道线检测 - python opencv
  • 中文版开源Llama 2同时有了语言、多模态大模型,完全可商用
  • JavaScript、TypeScript、ES5、ES6之间的联系和区别