编辑: 牛牛小龙人 | 2017-09-18 |
9 nginx -s reload 一旦主进程(Master)收到要重新加载配置(reload)的信号,它将检查新配置文件的语法有 效性,并尝试应用其中提供的配置.如果成功,主进程将启动新的工作进程(Worker),并 向旧工作进程发送消息,请求它们关闭.否则,主进程回滚更改,并继续使用旧配置.旧工 作进程接收到关闭命令后,停止接受新的请求连接,并继续维护当前请求,直到这些请求都 被处理完成之后,旧工作进程将退出. 可以借助 Unix 工具(如 kill 工具)将信号发送到 nginx 进程,信号直接发送到指定进程 ID 的 进程.默认情况下,nginx 主进程的进程 ID 是写入在 /usr/local/nginx/logs 或 /var/run 中的 nginx.pid 文件中.例如,如果主进程 ID 为 1628,则发送 QUIT 信号让 nginx 正常平滑 关闭,可执行: kill -s QUIT
1628 获取所有正在运行的 nginx 进程列表,可以使用 ps 命令,如下: ps -ax | grep nginx 有关向 nginx 发送信号的更多信息,请参阅 控制 nginx. 配置文件结构 nginx 是由配置文件中指定的指令控制模块组成.指令可分为简单指令和块指令.一个简单的 指令是由空格分隔的名称和参数组成,并以分号 ;
结尾.块指令具有与简单指令相同的结 构,但不是以分号结尾,而是以大括号 {} 包围的一组附加指令结尾.如果块指令的大括号内 部可以有其它指令,则称这个块指令为上下文(例如: events , http , server 和 location ). 配置文件中被放置在任何上下文之外的指令都被认为是主上下文. events 和 http 指令在 主上下文中, server 在 http 中, location 又在 server 中. 井号 # 之后的行的内容被视为注释. 提供静态内容服务 Web 服务器的一个重要任务是提供文件(比如图片或者静态 HTML 页面)服务.您将实现一 个示例,根据请求,将提供来自不同的本地目录的文件: /data/www (可能包含 HTML 文件)和 /data/images (包含图片).这需要编辑配置文件,在 http 中配置一个包含两个 初学者指南
10 location 块的 server 块指令. http { server { } } 通常,配置文件可以包含几个由监听端口和服务器域名区分的 server 块指令.一旦 nginx 决定由哪个 server 来处理请求,它会根据 server 块中定义的 location 指令的参数来检 验请求头中指定的URI. 添加如下 location 块指令到 server 块指令中: location / { root /data/www;
} 该 location 块指令指定 / 前缀与请求中的 URI 相比较.对于匹配的请求,URI 将被添加 到根指令中指定的路径,即 /data/ www ,以形成本地文件系统上所请求文件的路径.如果有 几个匹配上的 location 块指令,nginx 将选择具有最长前缀的 location 块.上面的位置块 提供最短的前缀,长度为 1,因此只有当所有其它 location 块不能匹配时,才会使用该块. 接下来,添加第二个 location 指令快: location /images/ { root /data;
} 以 /images/ 为开头的请求将会被匹配上(虽然 location / 也能匹配上此请求,但是它的 前缀更短) 最后, server 块指令应如下所示: server { location / { root /data/www;
} location /images/ { root /data;
} } 初学者指南
11 这已经是一个监听标准
80 端口并且可以在本地机器上通过 http://localhost/ 地址来访问的 有效配置.响应以 /images/ 开头的URI请求,服务器将从 /data/images 目录发送文件.例如,响应 http://localhost/images/example.png 请求,nginx 将发送 /data/images/example.png 文件.如果此文件不存在,nginx 将发送一个404错误响应.不以 / images/ 开头的 URI 的请求将映射到 /data/www 目录.例如,响应 http://localhost/some/example.html 请求,nginx 将........