Abstact
本人菜鸟一枚:正在看官网文档学习Nginx。Nginx docs。这个系列作为学习笔记
正文
这篇介绍了Nginx最基础的知识。
Nginx有一个master进程和若干worker进程,如上图所示。
master进程主要加载和执行配置文件,驻留worker进程。worked进程处理请求。worked进程的个数在配置文件里,或者根据CPU可用的核数自动调整
Nginx的配置文件在/usr/local/nginx/conf,或/etc/nginx, 或 /usr/local/etc/nginx.
Nginx采取基于事件的模型和 OS 依赖的机制在多个子进程之间高效的分配请求。
通过信号控制Nginx
nginx -s signal
signal可以是
信号 | 作用 |
---|---|
stop | fast shutdown |
quit | graceful shutdown |
reload | reloading the configuration file |
reopen | reopening the log files |
当修改了配置文件后:要执行nginx -s reload才会生效。 当master进程收到reload信号后:先检查配置文件的语法。 如果语法正确,master进程会生成新的worked进程,并给老worked进程发送关闭信号
ps -ax | grep nginx 查看Nginx进程
配置文件结构
指令分为简单指令simple directive 和块指令block directive
简单指令由名字和参数组成,中间用空格分开,并以; 分号结尾。
例如:
root /data/www;
块级指令和简单指令一样有着类似的结构,但是末尾不是分号而是用 { 和 } 大括号包裹的额外指令集。如果一个块级指令的大括号里有其他指令,则它被叫做一个上下文(比如:events,http,server,和 location)。 在配置文件中,没有放在任何上下文中的指令都是处在主上下文中。events 和 http 的指令是放在主上下文中,server 放在 http 中, location 放在 server 中。
以 # 开头的行,会被当做注释。
基本的Nginx配置文件格式为:(也就是上图)
# 全局块
...
# events块
events {
...
}
# http块
http
{
# http全局块
...
# 虚拟主机server块
server
{
# server全局块
...
# location块
location [PATTERN]
{
...
}
location [PATTERN]
{
...
}
}
server
{
...
}
# http全局块
...
}