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

二、Nginx目录结构与基本运行原理

目录

一、目录结构

二、运行原理


一、目录结构

我们使用tree 命令查看nginx的目录。如果tree 命令失效,需要安装tree工具

[root@localhost local]# yum install -y tree[root@localhost /]# tree /usr/local/nginx
/usr/local/nginx
├── client_body_temp  # POST 大文件暂存目录
├── conf    # Nginx 所有配置文件目录
│   ├── fastcgi.conf    # fastcgi 相关参数的配置文件
│   ├── fastcgi.conf.default
│   ├── fastcgi_params
│   ├── fastcgi_params.default
│   ├── koi-utf
│   ├── koi-win
│   ├── mime.types
│   ├── mime.types.default
│   ├── nginx.conf  # Nginx的核心配置文件,其他文件基本都在这里引用
│   ├── nginx.conf.default
│   ├── scgi_params
│   ├── scgi_params.default
│   ├── uwsgi_params
│   ├── uwsgi_params.default
│   └── win-utf
├── fastcgi_temp
├── html
│   ├── 50x.html    # 访问失败后的页面
│   └── index.html    # 默认的首页文件
├── logs    #Nginx的日志目录
│   ├── access.log    # 访问的日志文件,每次请求都会记录
│   ├── error.log     # 错误日志文件
│   └── nginx.pid     # pid文件,Nginx启动后,会把主进程的进程号写进该文件
├── proxy_temp
├── sbin
│   └── nginx
├── scgi_temp
└── uwsgi_temp

二、运行原理

  1. 启动Nginx时,Nginx会启动一个Master进程,这个进程负责管理其他Worker进程。
  2. Worker进程处理实际的请求,每个Worker进程可以同时处理多个请求。
  3. Nginx使用epoll模型来处理连接,这是Linux下高性能网络I/O模型之一。
  4. 配置文件中定义的指令会指导Nginx如何监听端口、处理请求、以及如何将请求转发给上游服务器。
  5. 当请求发起之后呢,nginx在响应请求时候,主目录下有个sbin,是可执行文件。
  6. nginx 起来之后,会开启两个进程 一个master 主进程 和 一个worker 子进程。
  7. 主进程里边会把配置文件读取出来,也会做一个检验,检查配置文件是否有错误,如果没错误,会开启子进程
  8. 主进程是不工作的。他是协调这些子进程。都启动之后,就会等待用户的请求。
  9. 用户的请求进来之后,是由worker子进程来响应并解析的。

 

相关文章:

  • SpringBoot:手动创建应用
  • 探索安全之道 | 企业漏洞管理:从理念到行动
  • 【ES001】elasticsearch实战经验总结(最近更新中)
  • Linux - 磁盘的分区和挂载
  • 操作系统基础知识
  • C语言面试题11至20题
  • 冶金比例换向阀放大器
  • 【TB作品】msp430f5529单片机,dht22,烟雾传感器
  • JVM之【GC-可达性分析算法】
  • redis面试知识点
  • oracle 还原被覆盖的视图
  • 算法每日一题(python,2024.05.29) day.11
  • 【Java基础-注解】Java中注解的分类有哪些,如何自定义一个注解,并使用举例
  • String常用操作
  • HashMap与Hashtable的异同
  • Angular2开发踩坑系列-生产环境编译
  • AWS实战 - 利用IAM对S3做访问控制
  • E-HPC支持多队列管理和自动伸缩
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • IDEA 插件开发入门教程
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • Kibana配置logstash,报表一体化
  • Promise初体验
  • Rancher如何对接Ceph-RBD块存储
  • SSH 免密登录
  • underscore源码剖析之整体架构
  • Vim Clutch | 面向脚踏板编程……
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 技术胖1-4季视频复习— (看视频笔记)
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 区块链分支循环
  • 思考 CSS 架构
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • # Kafka_深入探秘者(2):kafka 生产者
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • (zt)最盛行的警世狂言(爆笑)
  • (二十四)Flask之flask-session组件
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转)winform之ListView
  • *1 计算机基础和操作系统基础及几大协议
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .NET 中什么样的类是可使用 await 异步等待的?
  • .NET设计模式(2):单件模式(Singleton Pattern)
  • .NET学习全景图
  • //解决validator验证插件多个name相同只验证第一的问题