首页 > 代码库 > Nginx功能模块以及进程管理
Nginx功能模块以及进程管理
1、 功能
1.1. 功能描述
使用缓存加速反向代理,简单负载均衡和容错;
使用缓存机制加速远程FastCGI服务器的访问;
模块化结构;
基本的HTTP功能;
邮件代理服务器功能;
架构可扩展:非阻塞、时间驱动、一个master多个worker、高度模块化;
主要扮演角色为反向代理、CDN缓存服务
1.2. 基本模块
内核模块、事件驱动模块、邮件模块、服务模块
相关配置参数举例:
内核模块参数env\error_log\master_process\user\worker_cpu_affinity\worker_processes;
事件模块参数worker_connections\use;
通过work_connections和worker_processes指令能计算出最大客户端连接数:
Max_clients = work_connections * worker_processes;
在反向代理环境下,最大客户连接数变为:
Max_clients = worker_processes * worker_connection /4
原因在于默认请款改下一个浏览器会对服务器打开两个连接,nginx使用来自于同一个池的文件描述符来连接上游服务器。
HTTP模块参数aio\alias\directio\error_page\listen\server\location\root\server_name\types
2、 进程管理
2.1. Master进程和worker进程
分别表示主进程和工作进程,
主进程可处理的信号如下:Term\INT\USER1\USER2\HUP\WINCH\QUIT;
工作进程可处理:TERM\INT\USER1
2.2. Worker数目设置
设置数目可以和CPU核数一样多,最好少一个,因Linux系统本身要使用CPU
2.3. 针对Nginx对Linux系统的优化
关闭系统不需要的服务;
优化写磁盘操作,减少nginx访问时产生的写磁盘操作;
优化资源限制,如设置可打开的文件个数和进程数,使用 ulimint –n 和ulimit –u ;
优化内核TCP选项
2.4. 优化Nginx服务器
关闭访问日志;
使用epoll
服务器配置优化:如
Worker_connection 65535
Keepalive_timeout 60
Client_header_buffer_size 8K
Worker_rlimit_nofile 65535