Nginx 首先一定要了解其配置文件的基本结构、常用指令的含义以及其使用方法,原因在于 Nginx 所有功能的实现,都是通过配置文件的设置来完成的,例如,虚拟主机、 反向代理、负载均衡等的实现。
nginx.conf 是 Nginx 默认的主配置文件,所有功能的实现都与此文件的配置相关。 下面对该文件的结 构以及默认设置指令的含义进行详细介绍 。main
events {...)
http {
server {
location{..}
}
} main、 events、 http、 server 和 location 5 个块组成 ,关于各个块的作用,如下表所示 。 并且对于嵌套块(如 http、 server、 location)中的指令,执行的顺序为从外到内依次执行,内层块中的大部分指令会自动 获取外层块指令的值作为默认值,只有某些特殊指令除外。
#开始的注释 行,Nginx 并不会对其进行解析,该注释行的作用仅用于解释和说明。 下面为了便于阅读, 去掉配置文件中所有注释后,默认的配置整体展示如下所示。worker processes 1;
events {
worker connections 1024;
}
http{
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive timeout 65;
server{
listen 80;
server_name localhost;
location /{
roothtml;
index index.html index.htm;
}
error page 500 502 503 504 /50x.html;
location=/50x.html {
root html;
}
}
}worker_ processes 指令的参数为 1 ,第 3 行 worker_connections 指令的参数为 1024 等。当一个指令中含有多个子指令作为参数时,需要使用大括号{}进行包裹,如 2~4 行配置,且每条指令 都以分号“ ;”结尾。mime.types 文件是相对于当前配置 文件 nginx.conf 所在的目录 /usr/local/nginx/conf。绝对路径的设置就是以 Linux 的根目录“/”开始的文件路径 。 例如,可以将 mime.types 文件的引人路径写成如下形式。include /usr/local/nginx/conf/mime.types;mime.types 文件的作用是存储文件扩展名与文件类型的映射表 。

nginx.conf 配置文件中默认指令的相关说明。master process) 和多个工作进程( worker process)组成 的 。其中,主进程以 root 权限运行,而工作进程在默认情况下以 nobody 用户运行。原因在 于 nobody 用户是一个不能登录的账号,有一个专用的 ID,可将每个运行的工作进程隔离出 来,这样即使黑客破坏了服务器程序,因其不是 root 用户,也不会影响其他数据。ps 命令查看当前启动的 Nginx 服务器中主进程( master process)和工作 进程(worker process)的用户权限,具体命令如下 。ps aux | grep nginx Nginx 默认有一个主进程 (master process)和一个工作进程(worker process),以及用户和组的分配情况。( worker process),主要用于对 某些操作提供权限 。 例如,配置日志文件时,主进程创建日志文件后,会以工作进程的用户作为文件所有者,从而使工作进程能够将日志写入指定文件中 。./configure 编译安装 Nginx 时的选项中,添加如下两个选项。--user=<user>
--group=<group> user nobody; user nuser ngroup; nuser 用于指定执行工作进程的用户, ngroup 用于指定 nuser 用户所属的组。 按照上述命令修改完成后,保存 nginx.conf 配置文件,平滑重启,如下图所示 。 从查询结果的第 2 行可以看到工作进程用户已成功修改为 nuser。
reload 命令重新加载自己直时,主进程会等待工作进程完成 工作后再结束工作进程, 然后基于新的配直重新创建工作进程,避免了工作过程中被打断的情况。 由于整个过程中主进程没有停止,因此也不会发生漏掉客户端请求的情况 。
