Nginx入门指南
基础
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上下文中,events和http指令在main上下文中,server在http中,location在server中。
# 之后的内容即为注释。
服务静态内容
配置文件可以包含多个server块,不同的server通过监听的端口和sever名称来区分。一旦Nginx决定了哪一个server处理请求,它根据server内的location指令参数测试uri。
对于匹配的请求,uri被添加到根指令中指定的路径。如果有多个匹配的location块,优先选择前缀最长的那个。
日志
Nginx的日志文件默认位于 /usr/local/nginx/logs 或者 /var/log/nginx,包含了access.log和error.log。
设置简单的代理服务器
代理服务器,这意味着服务器接收请求,将请求传递给代理服务器,从请求中检索响应,并将其发送给客户端。
代理指令是proxy_pass。
Nginx选择一个location为请求服务时,首先检查指定前缀的location指令,并优先选择前缀最长的location,之后再检测正则表达式。如果匹配到了正则表达式,Nginx选择它的location,否则,选择之前记住的location。
设置FastCGI代理
Nginx可用于将请求路由到FastCGI服务器。
FastCGI指令是fastcgi_pass,fastcgi_param指令用于设置传递给FastCGI服务器的参数。