nginx应用场景梳理以及使用
off999 2025-01-10 16:06 12 浏览 0 评论
在这种情况下,如果文件大小为 10 兆字节(10 MB),并且使用的带宽大小为 10 兆比特每秒(10 Mbps),我们需要先确认单位。通常文件大小以字节(bytes)表示,而带宽通常以比特(bits)表示。
1 字节 = 8 比特
因此,10 兆字节(10 MB)转换成比特为:
10 MB * 8 = 80 Mb
现在,我们知道文件大小是 80 Mb,并且带宽是 10 Mbps,我们可以使用以下公式计算传输时间:
传输时间 = 文件大小 / 带宽大小
传输时间 = 80 Mb / 10 Mbps = 8 秒
因此,使用带宽大小为 10 Mbps,传输一个大小为 10 MB 的文件将需要大约 8 秒的时间才能完成传输。
常见应用问题以及场景
1.访问路径顺序问题(path的路径顺序)
2.path中带/与不带/的访问路径差别
3.请求nat转发问题(当做nat转发时前后端口不一致时问题梳理)
4.请求头的相关参数配置
5.nginx的压缩以及ssl证书配置(实现非443的ssl证书配置)
6.nginx配置正向代理
1.nginx路径访问顺序
1. **精准匹配** (=): - 如果存在 location = /exact/path 这样的精确匹配指令,且请求的 URI 与之
完全相同(包括大小写和尾部的 /),则该指令优先级最高,立即选定并处理请求,不
再继续匹配其他 location。
2. **前缀匹配** (^~): - 前缀匹配以 ^~ /prefix 形式出现。如果请求 URI 以指定的前缀开始,且在
所有非正则表达式的 location 中具有最长匹配前缀,则该 location 被选中。重要的是,一旦找到
一个 ^~ 前缀匹配,Nginx 将停止在常规前缀匹配中查找,直接使用该匹配,而不考虑可能存在的
正则表达式 location。
3. **常规前缀匹配** (/prefix 或者没有修饰符的前缀匹配): - 没有 = 或 ^~ 修饰符的前缀匹配,如
location /some/prefix。Nginx 会按照配置文件中出现的顺序依次检查这些前缀,选择
与请求 URI 开始部分匹配度最高的 location。如果有多个前缀匹配程度相同,那么将采
用配置文件中靠前的那个。
4. **正则表达式匹配** (~ 或 ~*): - 正则表达式匹配以 location ~ regex 或 location ~* regex
形式出现(其中 ~ 对应区分大小写的匹配,~* 对应不区分大小写的匹配)。在所有常规前缀匹
配完成后,如果还没有选定 location,Nginx 将按配置文件中出现的顺序检查正则表达式 location。
第一个与请求 URI 匹配的正则表达式 location 将被选中。
1. 先尝试精准匹配。
2. 若无精准匹配成功,寻找并立即采用(如果有)带有 ^~ 修饰符的最长前缀匹配。
3. 若无 ^~ 前缀匹配,按照配置文件中出现的顺序检查常规前缀匹配,选择最匹配的一个。 4. 若以上均未匹配,按照配置文件中出现的顺序检查正则表达式匹配,第一个匹配成功的 location 被选中。
5.若没有就走默认的/
6.再没有就404
2.path中带/与不带/的访问路径差别
假如要将80端口上的请求转发后端8000端口。
以8000端口为例,编写proxy_pass有两种形式。
无斜杆:http://devops.fosun.com:3000
有斜杆:http://devops.fosun.com:3000/
假设前端请求为http://devops.fosun.com/get/test。
//1无斜杆location匹配到的部分也属于请求的部分。
//location无论用/get还是用/get/只要匹配上之后都会将整个请求部分/get/test加到proxy_pass上。
server {
listen 80;
server_name devops.fosun.com;
location /get {
proxy_pass http://127.0.0.1:8000;
}
#或者
location /get/ {
proxy_pass http://127.0.0.1:8000;
}
#结果都是 将http://devops.fosun.com/get/test转发去http://127.0.0.1:8000/get/test
}
//2.有斜杆location匹配到的部分只用于匹配,不属于请求部分,
//需要在请求部分将location匹配到的部分剔除。
server {
listen 80;
server_name devops.fosun.com;
location /get {
# 结果是 将http://devops.fosun.com/get/test转发去http://127.0.0.1:8000//test,出错~
proxy_pass http://127.0.0.1:8000/;
}
#或者
location /get/ {
# 结果是 将http://devops.fosun.com/get/test转发去http://127.0.0.1:8000/test
proxy_pass http://127.0.0.1:8000/;
}
}
//同有斜杆的规则,在请求部分剔除location后加在上面即可。
server {
listen 80;
server_name devops.fosun.com;
location /get {
# 结果是 将http://devops.fosun.com/get/test转发去http://localhost:3000/abc/test
proxy_pass http://127.0.0.1:8000/abc;
}
#或者
location /get/ {
# 结果是 将http://devops.fosun.com/get/test转发去http://127.0.0.1:8000/abctest,出错~
proxy_pass http://127.0.0.1:8000/abc;
}
}
3.nat转发后的nginx配置问题
一般我们还是强烈建议客户让内外网端口保持一致
场景: 外网端口为8088 内网nginx的监听地址为8090 这样访问时 http://devops.fosun.com:8088/test 通过nginx的8090进行代理时会出现问题端口异常的问题
4.请求头的相关参数配置
5.ssl证书配置
6.nginx配置正向代理案例
常用的代理服务组件有
基于服务器的代理组件 nginx,apache,haproxy
基于k8s网关的代理组件 apisix-system,kong gateway,ingress-controller,Traefik
相关推荐
- Python如何操作Excel,xlrd和xlwt类库的使用
-
xlrd和xlwt类库简介xlrd和xlwt是Python中两个用于处理Excel文件的类库。xlrd用于读取Excel文件,xlwt用于写入Excel文件。这两个类库可以在Python中方便地处理E...
- 操作Excel,Python根本打不过VBA
-
很开心今天把一个与财务有关的Excel取数计算方面的项目收尾了。这次项目使用的是ExcelVBA语言开发。作为一名Python语言使用者,经历过这次项目开发后,更加坚定了Python根本不可能动摇V...
- 个人用户将Excel接入DeepSeek的详细步骤指南
-
个人用户将Excel接入DeepSeek的详细步骤指南,无需复杂编程基础,提供多种实现方式:一、准备工作:获取DeepSeekAPI密钥1.注册DeepSeek账号-访问[DeepSeek官网...
- Python通过win32库操控Excel实战指南
-
Python通过win32库操控Excel实战指南。同学们,我是张老师。今天给大家讲的是Python通过win32库操控Excel实战指南。今天课的主要内容有:易开发、环境配置、二Excel基础操作实...
- 如何在Excel中直接使用DeepSeek的功能
-
在Excel中直接使用DeepSeek的功能(如AI模型能力),目前需通过间接集成方式实现,因为DeepSeek并未提供官方的Excel插件。以下是两种常用方法:方法1:通过API调用集成(推荐)若D...
- Python自动化:xlrd读取excel
-
#pipinstallxlrd工作簿、工作表相关操作:importxlrd#打开工作簿people=xlrd.open_workbook('people1.xls')...
- Python自动化:openpyxl读取excel,补充了些内容
-
打开工作簿,选择工作表importopenpyxl#打开已有工作簿wb=openpyxl.load_workbook('example1.xlsx')#sheetna...
- Python自动化:openpyxl读取excel
-
#pipinstallopenpyxl工作簿、工作表相关操作:importopenpyxl#打开已有工作簿wb=openpyxl.load_workbook('example...
- Java的优势:跨平台只是一部分
-
以下讨论只针对PC端和移动端。Java最大的优势真的在于跨平台吗?以前是,但现在已经不是了。有跨平台需求的仅仅是客户端应用,而不是服务端。例如桌面应用,你的客户可能是Windows用户,也可能是Lin...
- 都2023年了,为什么大家还都在吹捧 Python?
-
2023年,Python还可学吗?答案当然是可。近些年间,Python的火热有目共睹,作为一种功能强大的高级编程语言,在2018年的时候它的流行程度就得到了大幅提高。入门人工智能有很多种选择...
- Python编程语言的优势有哪些?
-
1.简单易学:Python采用极简主义设计思想,语法简单优雅,不需要很复杂的代码和逻辑,即可实现强大的功能。这使得Python很适合初学者学习,可以帮助初学者快速入门。2.开源免费:Python所有内...
- Python操作Excel库xlrd与xlwt常用操作详解
-
来源:早起Python作者:刘早起大家好,我是早起。在之前的Python办公自动化系列文章中,我们已经相信介绍了openyxl、xlsxwriter等Python操作Excel库。openpyxl操作...
- python处理Excel,从此爱上python
-
python能干的事情太多,对于小白来说,只能望洋生叹,不过不要灰心,看看我是如何使用python处理Excel的,你就能理解python的简单和高效。一、Excel文件1、文件路径F:/...
- 软件测试|Python操作Excel制作报表,不要太方便
-
前言今天我们介绍的是Python操作Excel制作报表,我们需要用到的库是openpyxl,我们主要使用的功能有下列几个功能插入与查询数据分类数据统计数据可视化字体颜色修改基本操作表格初始数据如下图所...
- python笔记52:python操作excel
-
主要内容:小目标:掌握excel模块主要内容:excel相关模块,openpyxl安装使用如果看完这篇文章,你还是弄不明excel相关操作;你来找我,我保证不打你,我给你发100的大红包。1.ex...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- python计时 (54)
- python安装路径 (54)
- python类型转换 (75)
- python进度条 (54)
- python的for循环 (56)
- python串口编程 (60)
- python写入txt (51)
- python读取文件夹下所有文件 (59)
- java调用python脚本 (56)
- python操作mysql数据库 (66)
- python字典增加键值对 (53)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python qt (52)
- python人脸识别 (54)
- python斐波那契数列 (51)
- python多态 (60)
- python命令行参数 (53)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- centos7安装python (53)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)