1

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

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


丰木
322 声望19 粉丝

遇见超乎想象的自己!


下一篇 »
CSS杂记