1.简介

1.1 过程

有一个master过程:读取、评估conf;保护worker过程;
有多个worker过程:解决申请;

1.2 nginx过程模型

nginx采纳事件驱动模型和操作系统机制来实现申请散发worker过程;

1.3 工作过程数

worker工作过程在conf中配置、也可由CPU外围数主动调整

worker_processor number|auto;
// 默认是number; 如果是auto,则默认CPU核数

1.4 配置文件地位

配置文件:nginx.conf 位于:

  • /usr/local/nginx/conf
  • /usr/local/etc/nginx
  • /etc/nginx

1.5 start stop reload

1.5.1 通过nginx -s (signal) 发信号来操作

signal=>

stop: 疾速终止quit: 优雅终止reload: 重加载配置reopen: 从新关上日志文件

1.5.2 进行nginx

nginx -s quit 期待worker过程解决完以后申请后进行nginx
nginx -s stop 立即进行nginx过程

1.5.3 从新加载配置

nginx -s reload master过程收到reload操作指令后:

  1. 查看配置语法合法性;
  2. 利用配置;
  3. 若利用配置胜利,master过程开启新的worker过程并发信息给旧的worker过程申请他们进行;若利用配置失败,主过程回滚,仍应用旧的worker过程工作;
  4. 旧的worker过程收到一个master的shutdown命令,会进行接管新的连贯,但持续退役完手上的以后申请。而后,旧的worker过程退出。

1.5.4 列出所有的nginx过程

ps -ax|grep nginx

2.配置文件构造

2.1 模块

nginx由模块组成,这些模块由配置文件中的指令管制。
指令分为简略指令块指令

2.2 简略指令

由名称和参数组成(两头用空格),并以分号(;)完结。

2.3 块指令

与简略指令有雷同的构造,但它用一对大括号{}来突围而不是分号(;)完结。

2.4 上下文

如果块指令能够在大括号内蕴含其余指令,它(块)就被称作上下文。例如

events, http, server, location

2.5 main上下文

在其余上下文之外的指令,被认为是main上下文(主上下文)

  • events和http指令,属于main上下文;
  • server属于http上下文;
  • location属于server上下文;

2.6 "#"井号之后的行内内容为正文

3. 服务动态内容

3.1 文件

一个动态html /data/www ->index.html
一个图片 /data/images *.jpg

3.2 构造

http {    server {        location / {            root /data/www;        }    }}

location的"/"将会与URI中的申请地址相比拟,匹配到,就会从root指定的门路中来定位申请信息:

如果有多个location:抉择最长前缀匹配;这里"/"是最短匹配,只有当所有匹配都匹配不到,才会在它的root中去定位。

3.3 接着减少第二个location

location /images/ {

root /data;

}

它将会匹配由 /images/ 结尾的申请。(/也匹配,然而它是最短匹配)

3.4 最终配置

server {    location / {        root /data/www;    }    location /images/ {        root /data;    }}

以 /images/ 结尾的申请将会以 /data/images 目录下查找去响应;例如:
http://localhost/images/a.jpg, nginx会发送 /data/images/a.jpg 文件给你,如果找不到会404; 若不是 "/images/" 结尾,将会到 /data/www 去匹配。

3.4 日志

要使nginx失效: nginx -s reload
若有问题,可查日志:access.log / error.log
/usr/local/nginx/logs 或者 /usr/log/nginx

...未完待续(旧笔记已誊抄完,未学完而已)