每一个服务 从这三方面学习 :配置文件,出错排错,优化
定义Nginx 运行的用户和用户组
user www www ,运行nginx的用户组 用户来运行,用户是系统用户,需要手动创建
启动进程,通常设置成和cpu的(逻辑的数)数量相等,这一样每个cpu 处理这个进程,worker processes 1;工作进程
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000
为每个进程分配cpu,上例中将8个进程分配到8个cpu,当然可以写多个,或者将一个进程分配到多个cpu。
worker_rlimit_nofile 102400
这个指令是指当一个nginx 进程打开的最多文件描述符目录,理论值应该是最多打开文件数
error_log /usr/local/nginx/logs/error.log info;
#错误日志定义等级 debug|info|notice|warm|error|crit
打开的进程
pid /usr/local/nginx/nginx.pid;
worker_rlimit_nofile
工作模式及连接数上线
events{
use epoll; #epoll 是多路复用IO中的一种方式,但是仅用于linux2.6 以上内核,可以大大提高nginx 的性能
worker_connections 102400 ; # 单个后台 worker process 进程的最大并发连接数(最大连接数=连接数*进程数)
multi_accepton; #尽可能多的接受请求
}
#设定http服务器,利用它的反向代理功能提供负载均衡支持
http{
#设定mime类型,类型由mime.type文件定义
include mime.types;
default_type application/octet-stream;
#设定日志格式
access_log /usr/local/nginx/log/nginx/access.log;
sendfile on;
#sendfile 指令指定nginx 是否调用sendfile 函数 (zero copy 方式)来输出文件,对于普通应用必须设为on
#如果用来进行下载等应用磁盘IO 重负载应用,可设置为off,
以平衡磁盘与网络I/O处理速度,降低系统的uptime
#autoindex on ;
# 开启目录列表访问,合适下载服务器,默认关闭。
tcp_nopush on; #防止网络阻塞
keepalive_timeout 60;
# keepalive 超时时间,客户端到服务器端的连接持续有效时间,当出现对服务器的后,继请求时 keep_alive-timeout 功能可避免建立或重新建立连接
tcp_nodeay on; # 提高数据的实施响应型
#开启gzip 压缩
tcp_nodelay on; #提高数据的实时响应性
#开启gzip 压缩
gzip on;
client_max_body_size 10m; #允许客户端请求的最大单文件字节数
client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数
以下三个参数 跟反向代理有关
proxy_connect_timeout 90; #nginx 跟后端服务器连接超时 时间(代理连接超时)
proxy_send_timeout 90; #后端服务器数据回传时间(代理发送超时)
proxy_read_timeout 90; #连接成功后,后端服务器响应时间(代理接受超时)
}