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