跳转至

这篇指南主要是对nignx及其所能完成的任务做个简单的介绍,假设你已经安装了nignx,如果还没安装,可以参考安装nginx

nginx有一个主进程和若干个工作者进程。主进程的主要功能是读配置文件并管理各个工作者进程。实际处理请求的是工作者进程。nginx基于事件并利用操作系统的相关机制有效的分配请求给工作者处理。工作者过程的数量可以在配置文件中设置,可以设置为固定数量,也可以根据CPU的核心数量自动设置一个适合的工作者进程数。

nginx和它的模块按照配置文件中的设置运作。默认情况下,配置文件名为nginx.conf,并且被放在目录/usr/local/nginx/conf/etc/nginx或者/usr/local/etc/nginx下面。

启动、停止以及重新载入配置

直接运行nginx文件,可以启动nginxnginx启动以后就可以使用以下命令形式来控制它:

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通过在配置文件中通过指令来指定各个模块的运作。指令分为简单指令块指令

简单指令由空格分隔的名字和参数组成,并以;号结尾。

块指令与简单指令有相同的结构,但它的结尾不是;号,而是一组用{}包围的其它指令。如果一个块指令在花括号内可以包含其它指令,就被称为环境(例如: eventshttpserverlocation这些指令都被称为环境

在配置文件中,最外层的指令被放在主环境中,块指令eventshttp是在主环境中的,serverhttp环境中,locationserver环境中。

#开头的是注释语句。

静态内容服务

建立简单的代理服务器

建立FastCGI代理