【翻译】nginx初学者指南

nginx初学者指南

本文翻译自nginx官方网站:http://nginx.org/en/docs/beginners_guide.html#control

该指南会对nginx做一个简要的介绍,同时描述一些使用nginx完成的简单任务。该指南假设读者的机器上已经安装好了nginx。如果没有安装好,请转移到Installing nginx页面完成安装。该指南描述了如何启动和停止nginx,如何重新载入nginx的配置,解释了配置文件的构成以及如何使用nginx来分发静态资源、如何配置nginx来作为一个代理服务器、以及如何使用FastCGI来连接到nginx。

nginx有一个主进程和几个工作者进程。主进程的主要工作是读取和评估配置文件中的值,同时维护工作者进程。工作者进程处理实际的请求。nginx使用基于事件的模型和依赖于操作系统的机制来有效地在工作进程之间分发请求。工作进程的数量在配置文件中定义,可以针对给定的配置进行固定,也可以根据可用CPU内核的数量自动调整(参见worker_processes)。

nginx及其模块的工作方式在配置文件中确定。默认情况下,配置文件名为nginx.conf,并放置在/usr/local/nginx/conf、/etc/nginx或/usr/local/etc/nginx.目录中。

启动、停止nginx和重载配置文件

要启动nginx,运行nginx的可执行文件。一旦nginx启动后,就可以通过调用 -s的命令行参数来配置它。使用一下语法:

nginx -s signal

signal可以是一下列出的一个:

  • stop —快速关闭
  • quit — 优雅的关闭
  • reload — 重新载入配置文件
  • reopen —重新打开日志文件

例如,要停止nginx进程,等待worker进程完成服务当前请求,可以执行以下命令:

nginx -s quit

注释:这个命令应该在启动nginx的同一用户下执行。

在将重新加载配置的命令发送到nginx或重新启动配置之前,不会应用配置文件中所做的更改。要重新加载配置,请执行:

nginx -s reload

一旦主进程接收到重新载入配置文件的信号,它首先检查配置文件中的语法是否有效,然后尝试应用配置文件中提供的配置。如果成功,那么他会创建新的工作者进程,并发送消息到旧的工作者进程中来通知旧的工作者进程关闭。否则,主线程回滚配置并使用旧的配置。同时旧的工作者进程接收到关闭请求,停止接收连接并处理当前请求知道完成当前请求后,旧的工作者进行会关闭并退出。

在一些工具/命令的帮助下也可以想nginx发送信号,比如kill。在本例中,一个信号被直接发送到具有给定进程ID的进程。默认情况下,nginx主进程的进程ID被写入nginx.pid,它位于/usr/local/nginx/logs或/var/run目录中。例如,如果主进程ID是1628,要发送退出信号导致nginx优雅地关闭(quit命令),执行:

kill -s QUIT 1628

要获得所有运行nginx进程的列表,可以使用ps工具,例如:

ps -ax | grep nginx

关于发送信号到nginx的更多信息,请参阅:Controlling nginx.

配置文件的结构

nginx是由模块组成的,而模块有配置文件中的指令控制。指令分为简单指令和块指令。一个简单的指令由名称和参数组成,它们由空格分隔,并以分号(;)结束。块指令具有与简单指令相同的结构,但它的结尾不是分号,而是一组由大括号({和})包围的附加指令。如果一个块指令可以在大括号中包含其他指令,那么它被称为上下文(例如:events, http, server, and location

放在任何上下文之外的配置文件中的指令被认为是在主上下文中。events和http指令驻留在主上下文中,server驻留在http中,location驻留在server中。

#号后面的会被当作注释。

提供静态内容

回家再写吧,该下班了

猜你喜欢

转载自www.cnblogs.com/pangjianxin/p/10969379.html