Nginx location
- location块是nginx配置文件中,配置在http块中的server块中,匹配的是uri
location匹配uri的方式 :
-
精确匹配: location = /[ ...}
-
正则匹配: location - /{ ...}
-
一般匹配: 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 执行顺序 :
-
执行server块当中的rewrite
-
执行location匹配
-
如果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解析的程序文件
相关文章:
Nginx location
location块是nginx配置文件中,配置在http块中的server块中,匹配的是uri location匹配uri的方式 : 精确匹配: location /[ ...} 正则匹配: location - /{ ...} 一般匹配: location /{ ....} 匹配的规则: :精确匹…...
数据库字段命名导致的SQL报错
1.表设计 create table variables (id bigint not null comment 主键,business_key varchar(128) null comment 业务key,key varchar(128) null comment Map中的key,value varchar(255) null comment…...
【办公自动化】使用Python一键提取PDF中的表格到Excel
🤵♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞Ǵ…...
【基础类】—原型链系统性知识
一、创建对象有几种方法 字面量创建对象 1-1. 什么是字面量 字面量就是所见即所,指的是常量;用来为变量赋值时的常数量 代码例子:123;‘ABC’, {name: ‘张三’}, undefined , true 生活例子:门店的招牌&a…...
ddia(3)----Chapter3. Storage and Retrieval
However, first we’ll start this chapter by talking about storage engines that are used in the kinds of databases that you’re probably familiar with: traditional relational databases, and also most so-called NoSQL databases. We will examine two families o…...
SpringBoot自定义拦截器interceptor使用详解
Spring Boot拦截器Intercepter详解 Intercepter是由Spring提供的Intercepter拦截器,主要应用在日志记录、权限校验等安全管理方便。 使用过程 1.创建自定义拦截器,实现HandlerInterceptor接口,并按照要求重写指定方法 HandlerInterceptor接口源码&am…...
AI抠图使用指南:Stable Diffusion WebUI Rembg实用技巧
抠图是图像处理工具的一项必备能力,可以用在重绘、重组、更换背景等场景。最近我一直在探索 Stable Diffusion WebUI 的各项能力,那么 SD WebUI 的抠图能力表现如何呢?这篇文章就给大家分享一下。 安装插件 作为一个生成式AI,SD…...
gitlab-Runner搭建
root wget https://packages.gitlab.com/runner/gitlab-runner/packages/fedora/29/gitlab-runner-12.6.0-1.x86_64.rpm/download.rpm rpm -ivh download.rpm ---- 安装 rpm -Uvh download.rpm -----更新升级 然后运行: gitlab-runner register --url https://git…...
【ChatGPT 指令大全】销售怎么借力ChatGPT提高效率
目录 销售演说 电话销售 产出潜在客户清单 销售领域计划 销售培训计划 总结 随着人工智能技术的不断进步,我们现在有机会利用ChatGPT这样的智能助手来改进我们的销售工作。在接下来的时间里,我将为大家介绍如何运用ChatGPT提高销售效率并取得更好的…...
【Spring】-Spring项目的创建
作者:学Java的冬瓜 博客主页:☀冬瓜的主页🌙 专栏:【Framework】 主要内容:创建spring项目的步骤:先创建一个maven项目,再在pom.xml中添加spring框架支持,最后写一个启动类。 文章目…...
SQL | 使用通配符进行过滤
6-使用通配符进行过滤 6.1-LIKE操作符 前面介绍的所有操作符都是通过已知的值进行过滤,或者检查某个范围的值。但是如果我们想要查找产品名字中含有bag的数据,就不能使用前面那种过滤情况。 利用通配符,可以创建比较特定数据的搜索模式。 …...
make: *** [Makefile:719: ext/openssl/openssl.lo] Error 1
在ubuntu系统上编译安装PHP7.4.33时,会报错如下 make: *** [Makefile:719: ext/openssl/openssl.lo] Error 1 原因分析:这个错误提示的意思是PHP配置过程中缺少OpenSSL库文件,因此在编译过程中出现了问题;Ubuntu 22.04 中openss…...
Android Studio实现简单ListView
效果图 MainActivity package com.example.listviewtest;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle; import android.widget.ListView;import com.example.listviewtest.adapter.PartAdapter; import com.example.listviewtest.bean.PartB…...
【设计模式】模板模式
什么是模板模式? 模板方法模式(Template Method Pattern),又叫模板模式(Template Pattern),在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行…...
配置docker和复现
1.Nginx环境搭建 选择centos7来进行安装 1.1 创建Nginx的目录并进入 mkdir /soft && mkdir /soft/nginx/ cd /soft/nginx/ 1.2 下载Nginx的安装包,可以通过FTP工具上传离线环境包,或者通过wget命令在线获取安装包 wget https://nginx.org/down…...
Qt应用开发(基础篇)——工具箱 QToolBox
一、前言 QToolBox类继承于QFrame,QFrame继承于QWidget,是Qt常用的基础工具部件。 框架类QFrame介绍 QToolBox工具箱类提供了一列选项卡窗口,当前项显示在当前选项卡下面,适用于分类浏览、内容展示、操作指引这一类的使用场景。 二…...
地理测绘基础知识(1) 坐标系经纬度与ECEF直角坐标的基本换算
经纬度与ECEF直角坐标的基本换算 我们目前最常用的全球坐标系是WGS-84坐标系,各种手机、地图基本用经纬度来标记位置。然而,经纬度对于空间的计算是很复杂的,需要很多三角函数操作。平面直角坐标系利用向量的运算,可以非常方便的…...
【UE4 RTS】08-Setting up Game Clock
前言 本篇实现的效果是在游戏运行后能够记录当前的游戏时间(年月日时分秒),并且可以通过修改变量从而改变游戏时间进行的快慢。 效果 步骤 1. 在Blueprints文件夹中新建如下两个文件夹,分别命名为“GameSettings”、“Player”…...
百度chatgpt内测版
搜索AI伙伴 申请到了百度的chatgpt: 完整的窗口布局: 三个哲学问题: 灵感中心: 请做一副画,一个渔夫,冬天,下着大雪,在船上为了一家的生计在钓鱼,远处的山上也都是白雪&a…...
工业语言:02 HMI长什么样?电阻式、电容式、多点触控、OLED 显示拆解
02 HMI长什么样?电阻式、电容式、多点触控、OLED 显示拆解 拆开 HMI,我才知道工厂的屏幕比手机还讲究 工厂的屏幕不是用来“好看”的,而是用来“看得清、按得准、用得久”。 哎呀兄弟们,把茶杯先搁一边儿,今天咱们把一台HMI抬到车间工作台上,戴上手套,螺丝刀一撬——拆…...
大气层系统深度解析:解锁Switch游戏主机的无限潜能
大气层系统深度解析:解锁Switch游戏主机的无限潜能 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable 想象一下,你的Switch游戏主机不再是一个封闭的系统,而…...
Java 位掩码实战:用位与、位或、异或优雅实现状态 / 权限管理
很多人觉得位运算只能用来炫技、做算法题,实则不然。在真实业务、框架底层、权限系统、状态标记中,位掩码(BitMask) 是非常成熟、轻量化、高性能的实现方案。今天就带你落地:用 1 个 int 整数,存储多种组合…...
不只是YOLOv5:盘点那些因numpy版本引发的‘二进制不兼容’坑及一站式排查指南
跨越工具链的numpy版本陷阱:系统性解决二进制兼容性报错指南 当你从PyTorch模型导出ONNX文件时,终端突然抛出ValueError: numpy.ndarray size changed——这个看似简单的报错背后,往往隐藏着复杂的环境依赖冲突。不同于常规的版本不匹配警告&…...
VS Code写LaTeX效率翻倍秘籍:除了编译,这些Snippets和PDF同步技巧你可能还不知道
VS Code写LaTeX效率翻倍秘籍:除了编译,这些Snippets和PDF同步技巧你可能还不知道 如果你已经用VS Code写LaTeX有一段时间了,可能已经熟悉了基本的编译和预览功能。但要让VS Code真正成为你的高效科研写作利器,还需要掌握一些进阶…...
Deep Video Discovery:基于智能体架构的长视频理解与问答实战
1. 项目概述:当AI学会“看”长视频在信息爆炸的时代,视频内容正以前所未有的速度增长,从数小时的会议录像、教学课程,到整季的纪录片和网络长视频。对于人类而言,快速理解并从中提取关键信息已是一项挑战,更…...
达摩院春联生成模型体验:输入“平安”、“富贵”秒获精美春联
达摩院春联生成模型体验:输入"平安"、"富贵"秒获精美春联 春节将至,家家户户都开始准备贴春联。但你是否遇到过这样的困扰:想写一副独特的春联,却苦于文采有限;想买现成的春联,又觉得…...
小白福音:nli-MiniLM2零样本分类,开箱即用,轻松处理评论情感分析
小白福音:nli-MiniLM2零样本分类,开箱即用,轻松处理评论情感分析 1. 为什么你需要零样本分类工具? 在日常工作中,你是否遇到过这些困扰: 需要快速对大量用户评论进行情感分析,但没有标注好的…...
Unity游戏自动翻译终极指南:3种安装方法+5大实用技巧
Unity游戏自动翻译终极指南:3种安装方法5大实用技巧 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 你是否曾经因为语言障碍而无法畅玩心仪的日文或韩文Unity游戏?是否在游戏过程中…...
机器学习模型比较:McNemar检验原理与实践
1. 机器学习分类器比较的统计检验挑战在机器学习模型评估中,我们经常需要比较两个分类器的性能差异。传统方法如交叉验证虽然可靠,但当面对大型深度学习模型时,这种方法会面临严峻挑战——训练单个模型可能就需要数周时间,更不用说…...
