Niginx

2023-11-11

基础

  1. 流程 :
    1. 分为正向代理和反向代理

    2. 在反向代理中,访问地址被nginx所拦截,而后,转发到其他位置;通过server进行处理,其中,server_name和listen用来匹配服务器,不针对其后的具体路径

    3. server匹配成功后,通过rewrite对请求url进行改写(会优先匹配),或者通过location进行转发;其二者存在一个即可;可以配置多个location,location可以对具体的路径进行匹配

    4. rewrite ^/(.*) http://www.baidu.com/ permanent; rewrite会先进行正则式的匹配,匹配完成后,在跳转到其后的路径中,其中:

      1. last:相当于apache里的(L)标记,表示完成rewrite匹配。(浏览器地址栏URL地址不变);
      2. break:本条规则匹配完成后,终止匹配,不再匹配后面的规则。(浏览器地址栏URL地址不变)
      3. redirect:返回302临时重定向,浏览器地址栏会显示跳转后的URL地址
      4. permanent:返回301永久重定向,浏览器地址栏会显示跳转后的URL地址。
    5. location在进行匹配时,=表示精确匹配,必须完全相同,~ 表示:指定的正则表达式要区分大小写,具体

    6. location中,可以使用 proxy_pass进行转发,或者root或alias,index展示本地页面

  2. nagle算法:
    1. 当用户使用Telnet连接到远程服务器时,每一次击键操作就会产生1个字节数据,进而发送出去一个数据包,所以,在典型情况下,传送一个只拥有1个字节有效数据的数据包,却要发费40个字节长包头(即ip头20字节+tcp头20字节)的额外开销,这种有效载荷(payload)利用率极其低下的情况被统称之为愚蠢窗口症候群(Silly Window Syndrome)。
    2. 为了解决这种问题,规定如果包的大小满足MSS,那么可以立即发送,否则数据会被放到缓冲区,等到已经发送的包被确认了之后才能继续发送。通过这样的规定,可以降低网络里小包的数量,从而提升网络性能。
    3. 数据在满足一下两种情况下会发出:
      1. 积累的数据量满足mss
      2. 收到ack
    4. MTU: Maximum Transmit Unit,最大传输单元,即物理接口(数据链路层)提供给其上层(通常是IP层)最大一次传输数据的大小;以普遍使用的以太网接口为例,缺省MTU=1500 Byte,这是以太网接口对IP层的约束,如果IP层有<=1500 byte 需要发送,只需要一个IP包就可以完成发送任务;如果IP层有> 1500 byte 数据需要发送,需要分片才能完成发送,这些分片有一个共同点,即IP Header ID相同。
    5. MSS:Maximum Segment Size ,TCP提交给IP层最大分段大小,不包含TCP Header和 TCP Option,只包含TCP Payload ,MSS是TCP用来限制application层最大的发送字节数。如果底层物理接口MTU= 1500 byte,则 MSS = 1500- 20(IP Header) -20 (TCP Header) = 1460 byte,如果application 有2000 byte发送,需要两个segment才可以完成发送,第一个TCP segment = 1460,第二个TCP segment = 540。
  3. DelayedAcknowledgment(TCP Delayed Ack):
    1. 假如需要单独确认每一个包的话,那么网络中将会充斥着无数的ACK,从而降低了网络性能。
    2. 不再针对单个包发送ACK,而是一次确认两个包,或者在发送响应数据的同时捎带着发送ACK,又或者触发超时时间后再发送ACK。通过这样的规定,可以降低网络里ACK的数量,从而提升网络性能
  4. tcp_nodelay :
    1. 一般默认会启用 Nagle‘s Algorithm,和 TCP Delayed Ack,则在写写–读的情况下会出现问题
    2. 第一个Write立刻发出去,但是包比较小,接收端不会立刻发送ack;第二个Write也比较小,第二个Write只有当收到第一个Write的ack才会发送,所以会导致延迟40ms才发送第二个Write
    3. TCP_NODELAY是用来 禁用 Nagle’s Algorithm
    4. tcp_nodelay只在keep-alive才启作用
  5. sendfile:
    1. 快速传输文件,减少了用户态到内核态的复制操作
  6. 文件结构:
    1. Nginx的配置文件nginx.conf位于其安装目录的conf目录下。
    2. nginx.conf由多个块组成,最外面的块是main,main包含Events和HTTP,HTTP包含upstream和多个Server,Server又包含多个location:
    3. main全局设置、server(主机设置)、upstream(负载均衡服务器设置)和 location(URL匹配特定位置的设置)。
    4. mian 无标签,在最外层
    5. main块设置的指令将影响其他所有设置;
    6. server块的指令主要用于指定主机和端口
    7. upstream指令主要用于负载均衡,设置一系列的后端服务器
    8. location块用于匹配网页位置
    9. server继承main,location继承server,upstream既不会继承其他设置也不会被继承。
  7. 转发规则
    1. 监听位置 以及其之前的字符串 被完全替换为 proxy_pass
    2. 当监听位置 如/A,不在域名后,如 http://wff.lietou.com/mm/A/cc/dd,则proxy_pass仅替换域名,其后部分保留
    3. proxy_pass 仅可以在匹配最左的情况下修改请求实际路径,否则仅域名及域名后部分
    4. location proxy_pass
      1. 监听 /
        1. proxy_pass http://127.0.0.1:8080/a
        2. 请求 http://wff.lietou.com/manager/index.jsp
        3. 实际请求路径 http://127.0.0.1:8080/amanager/index.jsp
        4. 域名以及域名后的“/”,被proxy_pass完全替换
      2. /A
        1. proxy_pass http://127.0.0.1:8080/a/ ;
        2. 请求 http://wff.lietou.com/Amanager/html
        3. 实际请求路径 http://127.0.0.1:8080/a/manager/html
        4. proxy_pass http://127.0.0.1:8080/a;
        5. 请求 http://wff.lietou.com/Amanager/html
        6. 实际请求路径 http://127.0.0.1:8080/amanager/html
        7. proxy_pass http://127.0.0.1:8080/a/
        8. 请求 http://wff.lietou.com/mm/A/cc/dd
        9. 实际 http://127.0.0.1:8080 /a/mm/A/cc/dd
        10. proxy_pass http://127.0.0.1:8080/a ;
        11. 请求 http://wff.lietou.com/mm/A/cc
        12. http://127.0.0.1:8080/a/mm/A/cc

使用

nginx 启动

  1. 进入其conf 路径下 打开cmd文件,不使用nginx.exe(exe会闪退,cmd会一直存在,可以操作)
  2. 在命令行中 nginx -t 为检查配置文件是否可用
  3. nginx -s stop 为关闭nginx,nginx -s reload 为更新 start nginx 为开启nginx
  4. 启动失败时,可以查看日志 error

nginx 请求接入本地服务器 (兼https转http,cookie转发)

  1. switchhost 找到url请求的域名(要求全拼)配置其转发到本地127.0.0.1
  2. 配置 nginx server 监听对应域名 (server_name) 请求端口(http 80 ,https 443)
  3. 配置 server location / { proxy_pass http://127.0.0.1:8080(端口号可能不同); }
  4. 当请求为https 时 ,转发需要配置crt 和key 证书(否则不会转发cookie)
  5. config 配置文件中 ,一般使用相对路径, ssl 文件的起始路径为conf路径下,log对应的起始路径为 logs

端口转发,路径代理

  1. switchhost配置域名 ,使请求指向本地
  2. nginx 监听对应域名以及端口
  3. 配置location ,执行转发
    1. 路径 /
    2. 端口转发 ,proxy_pass 指向新的域名 或者id:port

转发请求中添加请求头

  1. location中 使用add_header
location / {
			add_header X-Requested-With XMLHttpRequest;
			proxy_pass  http://127.0.0.1:8848/ ;
			
            # root   html;
            # index  index.html index.htm;
        }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Niginx 的相关文章

  • 原生AJAX 的基本使用

    1 准备工作 1 1 安装node js Node js 中文网 1 2 安装express 服务端框架 Express 基于 Node js 平台的 web 应用开发框架 Express 中文文档 Express 中文网 1 2 1 初始
  • MYSQL多表连查

    前言 多表查询 也称为关联查询 指两个或更多个表一起完成查询操作 前提条件 这些一起查询的表之间是有关系的 一对一 一对多 它们之间一定是有关联字段 这个关联字段可能建立了外键 也可能没有建立外键 比如 员工表和部门表 这两个表依靠 部门编
  • 诚邀您参加Go+1.0发布会!与大咖共同探索行业生态!

    你想参与iPhone13抽奖吗 你想和大咖面对面交流吗 你想收获最前沿的行业动态吗 10 月15 日 Go Together Go 1 0发布会暨Go 开发者基金会启动仪式重磅来袭 活动中除七牛云 CEO Go 语言发明人许式伟以及Go 开
  • 传奇私服游戏支付接口申请(已解决)

    传奇游戏是一款经典打怪升级 PK游戏 盛大游戏公司于2001年9月发布 随后出现了众多传奇私服游戏版本 到现在依然受很多人喜爱 经历了多次升级换代 现已转变为游戏体验更加细腻的页游和手游 成为了小成本高收益的热门游戏 受到各游戏服务商和玩家
  • IO流基础总结

    IO流 File 1 File类概述和构造方法 File 它是文件和目录路径名的抽象表示 文件和目录是可以通过File封装成对象的 对于File而言 其封装的并不是一个真正存在的文件 仅仅是一个路径名 而已 它可以是存在的 也可以是不存在的
  • Allegro PCB设计中:结构文件DXF导入、更新、PCB板框更改

    1 将结构工程师输出的DXF文件导入到Allegro PCB设计中 文章来源地址https www yii666 com blog 453846 html action onAll 2 结构文件DXF多次更改导致PCB板框尺寸涉及的修改 1
  • C++STL:vector

    C STL中的vector是一种动态分配的数组 可以在运行时动态增加和删除元素 它也是C 中最常用的容器之一 以下是vector的使用介绍 引入头文件 在使用vector之前 需要添加头文件 include
  • nrm 源管理

    什么是nrm nrm 是一个 npm 源管理器 你可以快速地在 npm源间切换 大家在开发中可能会经常切换 npm 源 我们会使用命令切换 如 npm set registry https registry npm taobao org 或
  • Vue style中的 scoped 属性

    Vue 中存在 scoped 属性 HTML5中也存在一个 scoped 属性 而且 这两者都是针对 css 样式处理的属性 所以很多文章在 解释 Vue scoped 的时候 都会把两者混为一谈 直接进把 HTML5 scoped 的定义
  • Login控件用法,用自己的数据库提供login控件的数据源

    一 在配置web config文件 web config 文件
  • 基于SuperSocket 1.6版本的自定义帧过滤的源码分析(实现MODBUS通信)

    一 SuperSocket 1 6 自定义帧过滤的官方文档地址 http docs supersocket net v1 6 zh CN Implement Your Own Communication Protocol with IReq
  • QT信号槽机制

    信号槽 信号槽是QT中用于对象间通信的一种机制 也是QT的核心机制 在GUI编程中 我们经常需要在改变一个组件的同时 通知另一个组件做出响应 例如 一开始我们的Find按钮是未激活的 用户输入要查找的内容后 查找按钮就被激活 这就是输入框与
  • 细线表格 border-collapse:collapse;/*细线表格,合并边框*/

  • vue3获取reactive代理的target原数组

    使用toRaw获取 可从vue引入toRaw const t3 reactive age name 3 console log toRaw t3 age 官方示例
  • MySQL-SQL全部锁详解(下)

    作者 小刘在C站 个人主页 小刘主页 努力不一定有回报 但一定会有收获加油 一起努力 共赴美好人生 学习两年总结出的运维经验 以及思科模拟器全套网络实验教程 专栏 云计算技术 小刘私信可以随便问 只要会绝不吝啬 感谢CSDN让你我相遇 前言
  • R︱并行计算以及提高运算效率的方式(parallel包、clusterExport函数、SupR包简介)

    终于开始攻克并行这一块了 有点小兴奋 来看看网络上R语言并行办法有哪些 赵鹏老师 R与并行计算 做的总结已经很到位 现在并行可以分为 隐式并行 隐式计算对用户隐藏了大部分细节 用户不需要知道具体数据分配方式 算法的实现或者底层的硬件资源分配
  • 关于ISP下载中 编译后自动下载代码不能执行完成的一点问题 补充keil未破解下载超范围问题

    在STC的ISP下载过程中 偶尔发现一点问题 首先在建立工程的时候没有按照自己的芯片选择 而是选择的通用型号 我在ISP中选择芯片型号后 打开串口和工程 没有提示问题 由于习惯 勾选了编译后自动下载工程 在后面的编写过程中 起初是没有问题的
  • sklearn 转换器和预估器

    刚学习sklearn时 没分清转换器的fit 和模型训练的fit 还以为是一个 结果学完了回过头来 才发现这些差异 再此记录一下 一 sklearn 转换器和预估器 转换器 Transformers 定义 转换器是一种可以对数据进行某种转换
  • 前端例程20220914:带悬停动画登陆页面

    演示 原理 对登陆框监听鼠标进入 mouseenter 和退出 mouseleave 事件 在鼠标进入时添加一个元素 并设置其扩大的动画 在鼠标退出时设置元素动画 并在动画完成后删除元素 代码

随机推荐

  • VUE2基础知识(详细版)

    目录 1 Vue 1 1 介绍 1 2 MVVM模型 1 3 单页面应用 SPA 2 Vue的使用 2 1 局部使用 2 2 全局使用 推荐 3 组件 3 1 介绍 3 2 说明 1 组件后缀 2 组成部分 编辑 3 步骤 4 模板语法 4
  • 创新实验_stm32_点灯_流水灯

    创新实验 stm32 点灯 流水灯 软件 步骤 实例 点灯 流水灯 软件 keil stm32cubemx proteus vscode 步骤 实例 点灯 准备 选择芯片 软件配置 编写代码 写入程序 流水灯 注意变量的位数
  • Java写一个猜数字游戏Plus

    之前我写了一个普通的猜数字游戏 那个是猜一个数字 然后提示你猜的大了还是小了 这次在学习完数组后 又来整活了 哈哈 这次写的是系统随机生成10个1 50的数字 自己去猜 不提示大了还是小了 猜出后告诉你猜中了第几个 最后把所有系统生成的随机
  • Pytorch1.4.0+cuda9.2离线安装

    由于训练机无法联网 考虑离线安装pytorch 一 确保已安装cuda和cudnn 这里我安装的是cuda9 2 cudnn7 6 5 二 安装pytorch1 4 pytorch的安装一般来说是使用conda或者pip来安装 我选择使用p
  • 集成电路相关书籍

    注 从此开始 文中提到的书籍都会在公众号对应文章末尾给出链接 不需要在微信后台获取 当然还是可以通过在微信后台回复相关书名获取对应的电子书 在后台看到很多人回复集成电路相关的一些书籍 所以本文就提供一些书籍 书籍链接在公众号本文文末直接获取
  • 数学建模常见模型算法归纳总结

    一 常见模型汇总 在数学建模中 根据具体问题的特点和要求 选择合适的模型和算法是非常重要的 同时需要根据实际情况进行调整和优化 以得到合理和可行的解决方案 二 数学建模四大模型 在数学建模中 通常将数学模型按照其应用目标和任务的不同划分为四
  • 如何重写equals方法

    重写equals方法 我们都知道 如果不对equals方法进行重写的话 那么它默认比较的就是两个对象的地址值是否是一样的 但是我们往往需要比较的是对象的内容是否是一样的 除了几个内置重写了equals方法的类型 我们写的bean一般都要自己
  • python网络爬虫方向的第三方库是_测验9: Python计算生态纵览 (第9周)

    测验9 Python计算生态纵览 第9周 单项选择题 1 以下选项不是Python数据可视化方向第三方库的是 A Matplotlib B Seaborn C Mayavi D Pyramid 正确答案 D Pyramid是Web开发框架库
  • Web自动化测试05:Selenium-CSS定位

    系列文章目录 软件测试功能到自动化学习路线图 2022年最新版技术栈 软件测试01 从了解测试岗位职能和测试流程开始 附作业 软件测试02 6大实际案例手把手教你设计测试点 软件测试03 用例执行以及缺陷管理的学习 附禅道下载使用流程 软件
  • 常用相机投影及畸变模型(针孔

    常用相机投影及畸变模型 1 背景 2 针孔相机投影模型及其畸变模型 2 1 缩略词和术语 2 1 世界坐标系到像素坐标系 2 2 针孔相机模型 2 2 1 世界坐标系到相机坐标系 2 2 2 相机坐标系到像素坐标系 2 3 综述 2 4 内
  • alook浏览器哪个好 夸克浏览器_简单搜索、X浏览器、夸克浏览器、Via几款极简浏览器,到底哪个最好用?...

    1 X浏览器 用过的都说X浏览器的广告拦截很强悍 大小 0 8M 无开屏页 只有安卓版本 用过 Chrome 的 都说X浏览器是好的备胎 无新闻 无推送 无后台 不足1M却小而强大 给你淋漓尽致的浏览体验 极简干净整洁的界面交互 无新闻 无
  • Android获取View宽高的几种方式

    有时我们会有基于这样的需求 当Activity创建时 需要获取某个View的宽高 然后进行相应的操作 但是我们在onCreate onStart中获取View的大小 获取到的值都是0 只是由于View的绘制工程还未完成 和在onCreate
  • 对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是: 00000 00001 00010 00011 00100 请按从小到大的顺序输出这32种01串。

    问题描述 对于长度为5位的一个01串 每一位都可能是0或1 一共有32种可能 它们的前几个是 00000 00001 00010 00011 00100 请按从小到大的顺序输出这32种01串 输入格式 本试题没有输入 输出格式 输出32行
  • [极客大挑战 2019]RCE ME 1

    极客大挑战 2019 RCE ME 1 首先打开题目得到 发现是代码审计 传入的code不能大于40 并且不能包含a到z的大小写字符和1到10的数字 我们可以通过不在这个字符集里的字符进行绕过 可以采用异或和取反 这里我采用取反 绕过 执行
  • 如何画好『数据流图』和『业务流程图』

    前言 数据流图 Data Flow Diagram DFD 是一种便于用户理解和分析系统数据流程的图形工具 他摆脱了系统和具体内容 精确的在逻辑上描述系统的功能 输入 输出和数据存储等 是系统逻辑模型的重要组成部分 一 数据流图组成部分 数
  • (深度学习)Pytorch实现MLP并在MNIST数据集上验证

    Pytorch实现MLP并在MNIST数据集上验证 1 综述 2 MNIST数据集 3 代码细节说明 4 详细代码 综述 PyTorch实现MLP并在MNIST数据集上验证 是我所上的模式识别与深度学习课程的第一个实验 主要是给我们练练手熟
  • 进阶自动化测试,你一定要知道的...

    自动化测试指软件测试的自动化 在预设状态下运行应用程序或系统 预设条件包括正常和异常 最后评估运行结果 将人为驱动的测试行为转化为机器执行的过程 自动化测试框架一般可以分为两个层次 上层是管理整个自动化测试的开发 执行以及维护 在比较庞大的
  • 搭建LightPicture开源免费图床系统「公网远程控制」

    文章目录 1 前言 2 Lightpicture网站搭建 2 1 Lightpicture下载和安装 2 2 Lightpicture网页测试 2 3 cpolar的安装和注册 3 本地网页发布 3 1 Cpolar云端设置 3 2 Cpo
  • 2021年漳州三中高考成绩查询,漳州高中学校实力排名,2021年漳州所有的高中分数线排名...

    2018年漳州市重点高中排名 排名学校名称人气所在市类型 1漳州三中1585漳州市省级示范高中 2漳浦道周中学1403漳州市省级示范高中 3诏安县第一中学1377漳州市省级示范高中 4福建省龙海第一中学1267漳州市省级示范高中 5福建省漳
  • Niginx

    基础 流程 分为正向代理和反向代理 在反向代理中 访问地址被nginx所拦截 而后 转发到其他位置 通过server进行处理 其中 server name和listen用来匹配服务器 不针对其后的具体路径 server匹配成功后 通过rew