这篇指南主要是对nignx
及其所能完成的任务做个简单的介绍,假设你已经安装了nignx
,如果还没安装,可以参考安装nginx
nginx
有一个主进程和若干个工作者进程。主进程的主要功能是读配置文件并管理各个工作者进程。实际处理请求的是工作者进程。nginx
基于事件并利用操作系统的相关机制有效的分配请求给工作者处理。工作者过程的数量可以在配置文件中设置,可以设置为固定数量,也可以根据CPU的核心数量自动设置一个适合的工作者进程数。
nginx
和它的模块按照配置文件中的设置运作。默认情况下,配置文件名为nginx.conf
,并且被放在目录/usr/local/nginx/conf
、/etc/nginx
或者/usr/local/etc/nginx
下面。
启动、停止以及重新载入配置¶
直接运行nginx
文件,可以启动nginx
,nginx
启动以后就可以使用以下命令形式来控制它:
nginx -s signal
其中,signal
可以是下面的一个值:
- stop - 快速停止
- quit - 优雅的停止
- reload - 重新载入配置文件
- reopen - 重新打开日志文件
例如,要等工作者线程完成当前请求后停止nginx
运行,使用:
nginx -s quit
对配置文件的更改想要生效的方法是:重新载入配置文件或者重新启动nginx
。重新载入配置文件使用:
nginx -s reload
主进程会重新读取配置文件内容并检验语法是否有效,并尝试应用更改后的配置。
如果应用新配置成功,nginx
主进程就创建新的工作者线程并向老的工作者发出停止信号。如果应用新配置失败,依旧使用老的配置。如果老的工作者进程在接到停止信号时正在处理用户请求,它会拒绝接受新的用户请求,并在当前正在处理的请求处理完成之后停止运行。
信号也可以借助unix的命令行工具kill
来发送,这种方式会直接发送信号给指定进程ID的进程。nginx
主进程的ID被写入/usr/local/nginx/logs
或/var/run
目录下的文件nginx.pid
中。例如,主进程的ID为1628
,要发信号使其停止运行,执行下面的指令:
kill -s QUIT 1628
要获取运行着的nginx
的全部进程列表,使用ps
命令:
ps -ax | grep nginx
更多关于控制nginx
的内容,参看控制nginx
配置文件结构¶
nginx
通过在配置文件中通过指令来指定各个模块的运作。指令分为简单指令
和块指令
。
简单指令由空格分隔的名字和参数组成,并以;
号结尾。
块指令与简单指令有相同的结构,但它的结尾不是;
号,而是一组用{
和}
包围的其它指令。如果一个块指令在花括号内可以包含其它指令,就被称为环境
(例如: events
、http
、server
和location
这些指令都被称为环境
。
在配置文件中,最外层的指令被放在主环境中
,块指令events
和http
是在主环境中的,server
是http
环境中,location
在server
环境中。
以#
开头的是注释语句。