线上nginx_cache服务器nginx.conf文件详解

#使用的用户和组
user  www www;
#指定工作衍生进程数(一般等于cpu的总核数或总核数的两倍,例如两个四核cpu,则总核数为8)
worker_processes 4;
#指定错误日志存放的路径,错误日志记录级别可选项为:[debug|info|notice|warn|error|crit]
error_log  /usr/local/nginx/logs/nginx_error.log  crit;
#指定pid存放的路径
pid        /usr/local/nginx/logs/nginx.pid;
#指定进程可以打开的最大描述符:数目
#工作模式与连接数上限
#这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配亲求并不是那么均匀,所以最好与ulimit -n的值保持一致。
#现在在linux 2.6内核下开启文件打开数为65535,worker_rlimit_nofile就相应应填写65535.这是因为nginx调度时分配请求道进程并不是那么的均衡,所以假如填写10240,总并发量达到3-4万时就有进程可能超过10240了,这时会返回502错误。
worker_rlimit_nofile 65535;

events
{
#使用的网络I/O模型,Linux系统推荐采用epoll模型,FreeBSD系统推荐采用kqueue模型
    use epoll;
    multi_accept on;
#单个进程最大连接数(最大连接数=连接数*进程数)
#根据硬件调整,和前面工作进程配合起来用,尽量大,但是别把cpu跑到100%就行,每个进程允许的最多连接数,理论上每台nginx服务器的最大连接数为
    worker_connections 65535;
}

http
{
#文件扩展名与文件类型映射表
    include       mime.types;
#默认文件类型
    default_type  application/octet-stream;
#设置使用的字符集,如果一个网站有多种字符集,请不要随便设置,应让程序员在HTML代码中通过Meta标签设置(默认编码)
    #charset  utf-8;
    server_names_hash_bucket_size 128;
    client_header_buffer_size 32k;
#客户端请求头部的缓冲区大小,这个可以根据你的系统分页大小来设置,一般请求头的大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。
#分页大小可以用命令getconf PAGESIZE取得。
#但也有client_header_buffer_size该值必须设置为“系统分页大小”的整倍数。
    client_body_buffer_size  512k;
#客户请求头缓存大小.nginx默认会用client_header_buffer_size这个buffer来读取header值,如果header过大,它会使用large_client_header_buffers来读取。
    large_client_header_buffers 4 32k;
#设置客户端能够上传的文件大小(设定通过nginx上传文件的大小)
    client_max_body_size 300m;

#开启高效文件传输模式,sendfile指令nginx是否调用sendfile函数来输出文件,对于普通应用设为on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络IO处理速度,降低系统uptime.
    sendfile on;
#此选项允许或静止使用socke的TCP——CORK的选项,此选项仅在使用sendfile的时候使用
    tcp_nopush     on;
    tcp_nodelay on;
    server_tokens off;

keepalive_timeout 60; #keepalive超时时间,单位为秒。
    client_header_timeout 15;
    client_body_timeout 15;
    send_timeout 15;

#后端服务器连接的超时时间_发起握手到等候响应超时时间
#nginx跟后端服务器连接超时时间(代理连接超时)
    proxy_connect_timeout    180;
#连接成功后,后端服务器响应时间(代理接收超时)
#连接成功_等候后端服务器响应时间——其实已经进入后端的配对之中等候处理(也可以说是后端服务器处理请求的时间)
    proxy_read_timeout       180;
#后端服务器数据回传时间(代理发送超时)
#后端服务器数据回传时间,就是在规定时间之内后端服务器必须传完所有的数据
    proxy_send_timeout       180;
#设置代理服务器(nginx)保存用户头信息的缓存区大小
#设置从被代理服务器读取的第一部分应答的缓冲区大小通常情况下这部分应答中包含
#一个小的应答头,默认情况下这个值得大小为指令proxy_buffers中指定的一个缓冲区的大小,不过可以将其设置为更小
    proxy_buffer_size        16k;
#proxy_buffers缓冲区,网页平均在32k以下的设置
#设置用于读取应答(来自被代理服务器)的缓冲区数目和大小,默认情况也为分页大小,根据操作系统的不同可能是4k或者8k
    proxy_buffers            4 64k;
#高负荷下缓冲大小(proxy_buffers*2)
    proxy_busy_buffers_size  128k;
#设置在写入proxy_temp_path时数据的大小,预防一个工作进程在传递文件时阻塞太长
#设定缓存文件夹大小,大于这个值,将从upstream服务器传
    proxy_temp_file_write_size 128k;

#gzip模块设置
    gzip on;        #开启gzip压缩输出
    gzip_min_length  1k; #最小压缩文件大小
    gzip_buffers   4 32k; #压缩缓存区
    gzip_http_version 1.1; #压缩版本(默认1.1,前段如果是squid2.5请使用1.0)
    gzip_comp_level 6; #压缩等级
    # gzip_types   text/plain application/x-javascript text/css application/xml;
    gzip_types     text/xml text/plain text/css application/javascript application/x-javascript application/rss+xml; #压缩类型,默认就已经包含textml,所以下面就不用再写了,写上去也不会有问题,但是会有一个warn.
    gzip_disable    "MSIE [1-6]\.";
    gzip_vary on;

# waf
    #lua_package_path "/usr/local/nginx/conf/waf/?.lua";
    #lua_shared_dict limit 10m;
    #init_by_lua_file  /usr/local/nginx/conf/waf/init.lua;
    #access_by_lua_file /usr/local/nginx/conf/waf/waf.lua;

# cache
#proxy_temp_path和proxy_cache_path指定的路径必须在同一分区
    proxy_temp_path /data/proxy_cache/proxy_temp_dir;
#设置内存缓存空间大小为500MB,7天没有被访问的内容自动清除,硬盘缓存空间大小为30GB
    proxy_cache_path /data/proxy_cache/qmcaifu.com/www levels=1:2 keys_zone=www:500m inactive=7d max_size=30g;
    proxy_cache_path /data/proxy_cache/qmcaifu.com/m levels=1:2 keys_zone=m:500m inactive=7d max_size=30g;

#日志格式的设置
$remote_addr与#$与$http_x_forwarded_for用以记录客户端的ip地址;
$remote_user:用来记录客户端用户名称;
$time_local:用来记录访问时间与时区
$request:用来记录请求的url与http协议;
$body_bytes_sent:记录发送给客户端文件主体内容大小;
$http_referer:用来记录从那个页面链接访问过来的;
$http_user_agent:记录客户浏览器的相关信息;
    log_format qmcaifu.com ‘$remote_addr - $remote_user [$time_local] "$request" ‘
                           ‘$status $body_bytes_sent "$http_referer" ‘
                           ‘"$http_user_agent" "$http_x_forwarded_for" ‘
                           ‘"$upstream_cache_status" $request_time $upstream_addr $http_host $upstream_response_time‘;

#负载均衡配置
    upstream backend_www {
#upstream的负载均衡,weight是权重,可以根据机器配置定义权重,weigth参数表示权值,权值越高被分配到的几率越大。
        server 10.161.158.176:80;
        check interval=3000 rise=2 fall=3 timeout=5000;
    }

include vhost/*.conf;
}

时间: 2024-10-19 22:51:52

线上nginx_cache服务器nginx.conf文件详解的相关文章

Nginx配置文件nginx.conf中文详解(转)

######Nginx配置文件nginx.conf中文详解##### #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_processes 8; #全局错误日志定义类型,[ debug | info | notice | warn | error | crit ] error_log /usr/local/nginx/logs/error.log info; #进程pid文件 pid /usr/local/nginx

Nginx配置文件nginx.conf中文详解(转载)

请参考:http://wiki.nginx.org/Main #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_processes 8; #全局错误日志定义类型,[ debug | info | notice | warn | error | crit ] error_log ar/loginx/error.log info; #进程文件 pid ar/runinx.pid; #一个nginx进程打开的最多文件描述符

Nginx 配置文件nginx.conf中文详解

1 ######Nginx配置文件nginx.conf中文详解##### 2 3 #定义Nginx运行的用户和用户组 4 user www www; 5 6 #nginx进程数,建议设置为等于CPU总核心数. 7 worker_processes 8; 8 9 #全局错误日志定义类型,[ debug | info | notice | warn | error | crit ] 10 error_log /usr/local/nginx/logs/error.log info; 11 12 #进

Linux-apache httd.conf文件详解

Linux-apache httd.conf文件详解 # This is the main Apache server configuration file. It contains the # configuration directives that give the server its instructions. # See <URL:http://httpd.apache.org/docs/2.2/> for detailed information. # In particular

httpd.conf文件详解(上)

Apache服务器的设置文件位于/etc/httpd/conf/目录下,传统上使用三个配置文件httpd.conf,access.conf和srm.conf,来配置Apache服务器的行为. httpd.conf提供了最基本的服务器配置,是对守护程序httpd如何运行的技术描述:srm.conf是服务器的资源映射文件,告诉服务器各种文件的MIME类型,以及如何支持这些文件:access.conf用于配置服务器的访问权限,控制不同用户和计算机的访问限制:这三个配置文件控制着服务器的各个方面的特性,

Nginx主配置文件nginx.conf中文详解

第1章 nginx配置解释图解 第2章 Nginx核心配置文件nginx.conf史上最细中文详解 2.1 定义Nginx运行的用户和用户组 2.2 nginxworker进程数,即处理请求的进程(熟称负责接客的服务员) 2.3 cpu亲和力配置,让不同的进程使用不同的cpu 2.4 全局错误日志定义类型,[ debug|info|notice|warn|error|crit] 2.5 把进程号记录到文件 2.6 Nginx worker最大打开文件数,可设置为系统优化后的ulimit -HSn

sysctl.conf文件详解

本文转自:http://www.cnblogs.com/Rosanna/p/3446557.html /proc/sys目录下存放着大多数内核参数,并且可以在系统运行时进行更改,不过重新启动机器就会失效./etc/sysctl.conf是一个允许改变正在运行中的Linux系统的接口,它包含一些TCP/IP堆栈和虚拟内存系统的高级选项,修改内核参数永久生效.也就是说/proc/sys下内核文件与配置文件sysctl.conf中变量存在着对应关系. 直接通过修改sysctl.conf文件来修改Lin

/etc/nginx/nginx.conf配置文件详解

user nginx; #数值和cpu核数个数一致worker_processes 8; #worker与cpu绑定 worker_cpu_affinity 0001 0010 0100 1000 1001 1010 1011 1100; #更改worker进程的最大打开文件数限制.如果没设置的话,这个值为操作系统的限制.设置后你的操作系统和Nginx可以处理比“ulimit -a”更多的文件,所以把这个值设高,这样nginx就不会有“too many open files”问题了. worke

nginx.conf配置文件详解:

[[email protected] nginx]# vim /etc/nginx/nginx.conf user  nginx nginx;     #nginx启动的用户 worker_processes  6;   #如果负载以cpu密集型应用为主,如SSL或压缩应用,则worker数应与cpu数相同. error_log  /var/log/nginx/error.log;    nginx错误日志存放路径 error_log  /var/log/nginx/error.log