Nginx入门指南

Nginx - Beginner’s Guide

基础

Nginx的配置文件是 nginx.conf,默认位于 /usr/local/nginx.conf/etc/nginx或者 /usr/local/etc/nginx

启动 && 控制

通过执行nginx来启动,启动后通过nginx -s 信号来控制。信号包括以下:

  • stop 快速停止
  • quit 优雅停止(等待工作进程完成当前请求后再停止)
  • reload 重现加载配置文件(更改nginx的配置后不会立即生效,需要使用reload命令或者等待重新运行nginx)
  • reopen 重新打开日志文件

应用新的配置信息时,主进程检查配置的有效性,然后并尝试应用。完成后,主进程允许新的工作进程,并且发送消息给旧的工作进程让其关闭。否则,主进程将回滚改动并依据旧的配置进行工作。

旧的工作进程收到关闭命令后,不再接受新的连接,并继续服务当前请求,待所有请求都服务完后,旧的工作进程退出。

也可通过kill将信号发送给Nginx进程。

配置文件结构

Nginx由配置文件中指定的指令控制的模块组成,指令分为简单指令块指令。简单指令由 名称 参数;构成,块指令的的结构与简单指令类似,但是它以{}结束。

如果一个块指令在大括号中可以有其他指令,那么它被称为上下文

没有放置在任何上下文之中的指令被认为是放在main上下文中,eventshttp指令在main上下文中,serverhttp中,locationserver中。

# 之后的内容即为注释。

服务静态内容

配置文件可以包含多个server块,不同的server通过监听的端口和sever名称来区分。一旦Nginx决定了哪一个server处理请求,它根据server内的location指令参数测试uri

对于匹配的请求,uri被添加到根指令中指定的路径。如果有多个匹配的location块,优先选择前缀最长的那个。

日志

Nginx的日志文件默认位于 /usr/local/nginx/logs 或者 /var/log/nginx,包含了access.logerror.log

设置简单的代理服务器

代理服务器,这意味着服务器接收请求,将请求传递给代理服务器,从请求中检索响应,并将其发送给客户端。

代理指令是proxy_pass

Nginx选择一个location为请求服务时,首先检查指定前缀的location指令,并优先选择前缀最长的location,之后再检测正则表达式。如果匹配到了正则表达式,Nginx选择它的location,否则,选择之前记住的location

设置FastCGI代理

Nginx可用于将请求路由到FastCGI服务器。

FastCGI指令是fastcgi_passfastcgi_param指令用于设置传递给FastCGI服务器的参数。