C++ 全栈知识体系C++ 全栈知识体系
✿导航
  • 基础
  • 函数
  • 知识点
  • IO框架
  • 新版本特性
  • 数据库原理
  • SQL语言
  • SQL - MySQL
  • NoSQL - Redis
  • NoSQL - ElasticSearch
  • 算法基础
  • 常见算法
  • 领域算法
  • 分布式算法
  • 数据结构与算法
  • 计算机网络
  • 操作系统
  • 计算机组成
  • 开发
  • 测试
  • 架构基础
  • 分布式系统
  • 微服务
  • 中间件
  • 概念
  • 理论
  • 架构设计原则
  • 设计模式
  • 协议
  • 技术选型
  • 编码规范
  • 流水线构建 - CI/CD
  • 知识点 - Linux
  • 网站 - Nginx
  • 容器化 - Docker
  • 容器编排 - Kubernetes
  • 服务网格 - Service Mesh Istio
  • 常用快捷键 - Shortcut
  • 工具使用 - Tools
  • 开源项目
  • 学习项目
  • 个人项目
  • 项目开发
  • 项目Idea
  • 并发
  • 部署
  • 分布式
  • 知识
  • 问题
  • 编程语言与技术
  • 系统与架构
  • 软件开发实践
  • 数据处理与应用设计
  • 个人
  • 产品
  • 团队
  • 知识体系
  • Vue
关于
✿导航
  • 基础
  • 函数
  • 知识点
  • IO框架
  • 新版本特性
  • 数据库原理
  • SQL语言
  • SQL - MySQL
  • NoSQL - Redis
  • NoSQL - ElasticSearch
  • 算法基础
  • 常见算法
  • 领域算法
  • 分布式算法
  • 数据结构与算法
  • 计算机网络
  • 操作系统
  • 计算机组成
  • 开发
  • 测试
  • 架构基础
  • 分布式系统
  • 微服务
  • 中间件
  • 概念
  • 理论
  • 架构设计原则
  • 设计模式
  • 协议
  • 技术选型
  • 编码规范
  • 流水线构建 - CI/CD
  • 知识点 - Linux
  • 网站 - Nginx
  • 容器化 - Docker
  • 容器编排 - Kubernetes
  • 服务网格 - Service Mesh Istio
  • 常用快捷键 - Shortcut
  • 工具使用 - Tools
  • 开源项目
  • 学习项目
  • 个人项目
  • 项目开发
  • 项目Idea
  • 并发
  • 部署
  • 分布式
  • 知识
  • 问题
  • 编程语言与技术
  • 系统与架构
  • 软件开发实践
  • 数据处理与应用设计
  • 个人
  • 产品
  • 团队
  • 知识体系
  • Vue
关于
  • 流水线构建 - CI/CD

    • CI/CD - 基础
    • CI/CD - 部署
    • CI/CD - 本地仓库CI流程
    • CI/CD - 远程仓库CI流程
  • 知识点 - Linux

    • Linux - 常用命令大全
    • Linux - 信号
    • Linux - 线程
    • Linux - 进程
    • Linux - 线程和进程同步
    • Linux - shell命令使用技巧
    • Linux - 使echo命令输出结果带颜色
  • 网站 - Nginx

    • Nginx - 学习笔记
    • Nginx - 部署静态页面网站
    • Nginx - 反向代理服务器
    • Nginx - 错误日志配置及信息详解
    • Nginx - 图片服务器配置
  • 容器化 - Docker

    • Docker - 容器技术Docker、Compose、k8s的演变
    • Docker - Dockerfile学习
    • Docker - 命令大全
    • Docker - Docker-compose学习
  • 容器编排 - Kubernetes

    • Kubernetes - 概念
    • Kubernetes - 基础应用
    • Kubernetes - 命令
    • Kubernetes - 检测探针
  • 服务网格 - Service Mesh Istio

    • Istio - 基础
    • Istio - 安装
    • Istio - 使用
    • Istio - 架构解析
    • Istio - 可观察性
    • Istio - 通过阿里云ecs部署k8s集群
  • 常用快捷键 - Shortcut

    • Shortcut - Linux
    • Shortcut - Vim
    • Shortcut - VsCode
    • Shortcut - IDEA
  • 工具使用 - Tools

    • Tools - cmake使用指南
    • Tools - cmake install详解
    • Tools - curl使用方法
    • Tools - docker使用方法
    • Tools - GCC警告选项
    • Tools - GCC和动静态库
    • Tools - gdb调试方法
    • Tools - nginx安装以及使用
    • Tools - VsCode插件

Nginx - 学习笔记

  • nginx进程间的关系
  • 仅对指定的客户端输出debug级别的日志
  • 超时keeplive_timeout配置详解
  • 每个worker的最大连接数
  • 用HTTP核心模块配置一个静态Web服务器
    • 虚拟主机与请求的分发
    • 文件路径的定义

nginx进程间的关系

nginx一般通过一个master进程来管理多个worker进程(个数一般等于CPU核数)。master只负责监控管理worker进程,具体互联网服务都是由worker进程提供。worker进程之间通过共享内存、原子操作等一些进程间通信机制来实现负载均衡等功能

部署后nginx的进程间关系

仅对指定的客户端输出debug级别的日志

events { debug_connection 10.224.66.14 debug_connection 10.224.57.0/24 }

超时keeplive_timeout配置详解

Nginx 处理的每个请求均有相应的超时设置。如果做好这些超时时间的限定,判定超时后资源被释放,用来处理其他的请求,以此提升 Nginx 的性能。

keepalive_timeout

  • HTTP是一种无状态协议,客户端向服务器发送一个 TCP 请求,服务端响应完毕后断开连接。

  • 如果客户端向服务器发送多个请求,每个请求都要建立各自独立的连接以传输数据。

  • HTTP 有一个 KeepAlive 模式,它告诉 webserver 在处理完一个请求后保持这个 TCP 连接的打开状态。若接收到来自客户端的其它请求,服务端会利用这个未被关闭的连接,而不需要再建立一个连接。

  • KeepAlive 在一段时间内保持打开状态,它们会在这段时间内占用资源。占用过多就会影响性能。

  • Nginx 使用 keepalive_timeout 来指定 KeepAlive 的超时时间(timeout)。指定每个 TCP 连接最多可以保持多长时间。Nginx 的默认值是 75 秒,有些浏览器最多只保持 60 秒,所以可以设定为 60 秒。若将它设置为 0,就禁止了 keepalive 连接。

每个worker的最大连接数

worker_connections 1024;

用HTTP核心模块配置一个静态Web服务器

Nginx为配置一个完整的静态Web服务器提供了非常多的功能,主要有以下8类:

  1. 虚拟主机与请求的分发
  2. 文件路径的定义
  3. 内存及磁盘资源的分配
  4. 网络连接的设置
  5. MIME类型的设置
  6. 对客户端请求的限制
  7. 文件操作的优化
  8. 对客户端请求的特殊处理

虚拟主机与请求的分发

配置块 server

  1. 监听端口
  2. 主机名称
  3. location
1. =表示把URI作为字符串,以便于参数中的uri做完全匹配
location = / {
    #只有用户请求是/时,才会使用该location下的配置
}
2. ~表示匹配URI时是字母大小写敏感的。
3. ~*表示匹配URI时忽略字母大小写问题。
4. ^~表示匹配URI时只需要前半部分与uri参数匹配即可。
5. @表示仅用于Nginx服务内部请求之间的重定向,带有@的location不直接处理用户请求
    当然,在uri参数里是可以用正则表达式:
    location ~* \. (gif|jpg|jpeg) $ {
        #匹配以.gif、.jpg、.jpeg结尾的请求
    }
6. 可以用/作为参数,来匹配所有HTTP请求
    location  / {
        #可以匹配所有HTTP请求
    }

文件路径的定义

location /download/ {
    root /opt/web/html/
}

将请求的URI  /download/index/test.html  转换成web服务器上的 /opt/web/html/download/index/test.html 

location /conf {
    alias /usr/local/nginxc/conf/
}

将 /conf/nginx.conf 转换成 /usr/local/nginxc/conf/nginx.conf,即会去掉/conf/nginx.conf中原始的conf前缀
Last Updated:
Contributors: klc407073648
Next
Nginx - 部署静态页面网站