Nginx进程组成及介绍:
一、主进程(master process):
1、与外界通信和工作进程管理
2、建立、绑定和关闭socket
3、读取nginx配置文件并验证有效性
4、按照配置文件生成、管理和结束工作进程
5、nginx重启、停止、重载配置文件,及平滑升级、管理日志文件等
二、工作进程(worker process):
1、接收客户端请求,将请求交给各个功能模块处理
2、系统IO调用,获取响应的数据,发送响应给客户端
3、数据缓存管理
4、接收主进程指令,比如重启、关闭等
三、缓存索引重建及管理进程(cache loader & cache manager):
cache模块,主要由缓存索引重建和缓存索引管理两个进程完成,重建进程是在nginx服务启动一段时间之后(默认是1分钟)由主进程生成,对本地磁盘的索引文件在内存中建立元数据库,包括扫描、过期更新等操作,完成后退出
Nginx全局变量:
$args : 这个变量等于请求行中的参数,同$query_string
$content_length : 请求头中的Content-length字段
$content_type : 请求头中的Content-Type字段
$document_root : 当前请求在root指令中指定的值
$host : 请求主机头字段,否则为服务器名称
$http_user_agent : 客户端agent信息
$http_cookie : 客户端cookie信息
$limit_rate : 这个变量可以限制连接速率。
$request_method : 客户端请求的动作,通常为GET或POST。
$remote_addr : 客户端的IP地址。
$remote_port : 客户端的端口。
$remote_user : 已经经过Auth Basic Module验证的用户名。
$request_filename : 当前请求的文件路径,由root或alias指令与URI请求生成。
$scheme : HTTP方法(如http,https)
$server_protocol : 请求使用的协议,通常是HTTP/1.0或HTTP/1.1
$server_addr : 服务器地址,在完成一次系统调用后可以确定这个值
$server_name : 服务器名称
$server_port : 请求到达服务器的端口号
$request_uri : 包含请求参数的原始URI,不包含主机名,如:”/foo/bar.php?arg=baz”
$uri : 不带请求参数的当前URI,不包含主机名,如”/foo/bar.html”
$document_uri : 与$uri相同
Nginx配置基本调优:
增加连接数、工作进程数(worker_processes)
工作进程绑定CPU(worker_cpu_affinity 0001 0010 0100 1000)
增大打开最大文件数(worker_rlimit_nofile 102400)
sendfile提升文件传输
启动文件压缩(gzip)
启动客户端缓存(expires)
错误页面优雅显示
屏蔽版本输出(server_tokens off)