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过程解决完以后申请后进行nginxnginx -s stop
立即进行nginx过程
1.5.3 从新加载配置
nginx -s reload
master过程收到reload操作指令后:
- 查看配置语法合法性;
- 利用配置;
- 若利用配置胜利,master过程开启新的worker过程并发信息给旧的worker过程申请他们进行;若利用配置失败,主过程回滚,仍应用旧的worker过程工作;
- 旧的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
...未完待续(旧笔记已誊抄完,未学完而已)