Nginx的主配置文件

user  www  www;
worker_processes  4;                           
##开启4个进程,经我测试2足够,如果你服务器cpu资源很多,那么就分配为cpu的1倍或2倍

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

pid        var/nginx.pid;
worker_rlimit_nofile 51200;                 
##指一个nginx进程打开的最大文件描述符个数,理论值应该和(ulimit -n )结果数值和nginx进程数值相除的结果一致,但实际中不可能有这样均匀,所以最好和ulimit -n 的值一致。

events {
    use epoll;   
##使用epoll的I/O模型
    worker_connections  4096;  
##每个进程允许的最多连接数,理论上每台nginx服务器的最大连接数为worker_processes * worker_connections
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    server_names_hash_max_size 512;
    server_names_hash_bucket_size 128;

    sendfile       on;
    tcp_nopush     on;
    tcp_nodelay    on;

    keepalive_timeout  1;  
##keepalive超时时间
    client_header_timeout 10;
    client_body_timeout   10;
    send_timeout          30;

    client_header_buffer_size    4k;  
##客户端请求头部的缓冲区大小,这个可以根据你的系统分页大小来设置,一般一个请求头的大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。分页大小可以用命令getconf PAGESIZE取得
#   open_file_cache max=51200 inactive=20s;  
##这个将为打开文件指定缓存,默认是没有启用的,max指定缓存数量,建议和打开文件数一致,inactive是指经过多长时间文件没被请求后删除缓存
#   open_file_cache_valid 30s;
##这个是指多长时间检查一次缓存的有效信息
#   open_file_cache_min_uses 1;
##open_file_cache指令中的inactive参数时间内文件的最少使用次数,如果超过这个数字,文件描述符一直是在缓存中打开的,如上例,如果有一个文件在inactive时间内一次没被使用,它将被移除。
    large_client_header_buffers  4 4k;
    client_body_temp_path  /dev/shm/nginx_temp/client_body 1 2;

######
##一般情况下压缩后的html、css、js、php、jhtml等文件,大小能降至原来的25%,也就是说,原本一个100k的html,压缩后只剩下25k。这无疑能节省很多带宽,也能降低服务器的负载。
######
    gzip on;   //打开gzip压缩
    gzip_min_length  1024;  
##设置允许压缩的页面最小字节数,页面字节数从header头中的Content-Length中进行获取,默认值是0,不管页面多大都压缩,建议设置成1024,小于1k可能会越压越大
    gzip_buffers     4 8k;
##设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。例如 4 4k 代表以4k为单位,按照原始数据大小以4k为单位的4倍申请内存。 4 8k 代表以8k为单位,按照原始数据大小以8k为单位的4倍申请内存。如果没有设置,默认值是申请跟原始数据相同大小的内存空间去存储gzip压缩结果。

    gzip_http_version 1.1;  
##识别http的协议版本。由于早期的一些浏览器或者http客户端,可能不支持gzip自解压,用户就会看到乱码,所以做一些判断还是有必要的。注:现在除了类似于百度的蜘蛛之类的东西不支持自解压,99.99%的浏览器基本上都支持gzip解压了,所以可以不用设这个值,保持系统默认即可。
    gzip_comp_level 5;  
##gzip压缩比,1 压缩比最小处理速度最快,9 压缩比最大但处理最慢(传输快但比较消耗cpu)。
    gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
##匹配MIME类型进行压缩,(无论是否指定)"text/html"类型总是会被压缩的。

    log_format main '$remote_addr - $remote_user [$time_local] $request '
                    '"$status" $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for"';   
##记录日志的格式,这里的main是自定义的,目的是在后边的vhosts/* 中用到
    access_log "logs/access.log" main;
##规定记录日志的文件,格式为main格式(上边定义的)

    include vhosts/*;   //vhosts/目录下就是我们的虚拟主机配置文件了
}

添加新评论 »