nginx优化配置示例

nginx优化配置示例

user nginx; #用户
worker_processes auto;#进程数量 推荐auto,自动去服务器的cpu核心数
error_log /var/log/nginx/error.log  error;#错误日志地址
pid /var/run/nginx.pid; #进程文件地址
worker_rlimit_nofile 204800; #指定nginx进程可以打开的最大文件个数。 与worker_connections 匹配
events
{
    use epoll;#使用Linux中效率最高的epoll
    worker_connections 204800; #定义每个worker进程可以同时处理的最大连接数。
}
http
{
    include mime.types;#nginx支持的文件类型
    default_type application/octet-stream; #跟上 设置默认文件类型
    charset utf-8;#设置字符集
 
    server_names_hash_bucket_size 128;#服务器名字的hash表大小
    client_header_buffer_size 64k;#用于指定来自客户端请求头headerbuffer大小,对于大多数请求,1KB的缓冲区大小已经足够,如果自定义了消息头或有更大的cookie,可以增加缓冲区大小。这里设置为64KB
    large_client_header_buffers 4 128k;#用来指定客户端请求中较大的消息头的缓存最大数量和大小,“4”为个数,“128”为大小,最大缓存为4个128KB。
    client_max_body_size 8m;#允许客户端请求的最大单文件字节数
    
    sendfile on;#开启高效文件传输模式,将tcp_nopush和tcp_nodely两个指令设置为on,用于防止网络阻塞。
    tcp_nopush on; #防止网络阻塞
	tcp_nodelay on; #防止网络阻塞
    keepalive_timeout 60;#用于设置客户端连接保持活动的超时时间,在超过这个时间之后服务器会关闭该链接。
    keys_zone=TEST:10m #设置缓存名字和共享内存大小
    inactive=5m; #在指定时间内没人访问则被删除
 	#该设置缓存文件的存放路径
    fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=cache_one:100M  inactive=1d  max_size=10g; 
  • levels:指定了该缓存空间有两层hash目录,设置缓存目录层数,levels=1:2,表示创建两层目录缓存,最多创建三层。第一层目录名取fastcgi_cache_key md5的最后一个字符,第二层目录名取倒数2-3字符,如:fastcgi_cache_key md5 b7f54xxxxxxxxxx809d65029c,则:
    levels=1:2为/data/nginx/cache/c/29/b7f54xxxxxxxxxx809d65029c
    levels=1:2:3为/data/nginx/cache/c/29/650/b7f54xxxxxxxxxx809d65029c
  • keys_zone为这个缓存区起名为zone_name,500m指代缓存空间为500MB;
  • inactive=1d 代表如果缓存文件一天内没有被访问,则删除;
  • max_size=30g代表硬盘缓存最大为30G;
	#FastCGI相关参数是为了改善网站的性能:减少资源占用,提高访问速度。
    fastcgi_connect_timeout 300; #指定连接到后端fastCGI的超时时间
    fastcgi_send_timeout 300; #向fastCGI请求的超时时间,这个值是指已经完成两次握手后向fastCGI传送的超时时间
    fastcgi_read_timeout 300; # 接收fastCGI应答的超时时间,这个值已经完成两次握手后接收fastCGI应答的超时时间
    fastcgi_buffer_size 64k;#定读取fastCGI应答第一部分需要用多大的缓冲区,一般第一部分应答不会超过1k,一般设置为64k
    fastcgi_buffers 8 64k;# 指定本地需要用多少和多大的缓冲区来缓冲fastCGI的应答
    fastcgi_busy_buffers_size 128k; #默认值是fastcgi_buffers的两倍
    fastcgi_temp_file_write_size 128k;在写入fastcgi_temp_path是用多大的数据块,默认值是fastcgi_buffers两倍
    
    fastcgi_cache TEST;
    fastcgi_cache_valid 200 302 1h;#200 302 缓存1小时
    fastcgi_cache_valid 301 1d; #301缓存一天
    fastcgi_cache_valid any 1m;#其他所有缓存1分钟
    fastcgi_cache_min_uses 1; #使用字段:http, server, location 指令指定了经过多少次请求的相同URL将被缓存。
    fastcgi_cache_use_stale error timeout invalid_header http_500;#语法:fastcgi_cache_use_stale [updating|error|timeout|invalid_header|http_500] 默认值:fastcgi_cache_use_stale off; 使用字段:http, server, location 在某些网关错误、超时的情况下,nginx都将传送过期的缓存数据。
  • open_file_cache
    启用此指令将存储以下信息的缓存:
  • 打开的文件描述符和相关元数据,如大小,修改时间等
  • 文件和目录的存在与查找相关的任何错误,例如“权限被拒绝”,“文件未找到”等
  • 缓存定义固定大小,并且在溢出期间,它移除最近最少使用(LRU)元素。
  • 缓存在一段时间不活动之后逐出元素。 默认情况下禁用该指令。
    open_file_cache max=10000 inactive=30s;#表示设置缓存文件的最大数目为 10000 , 超过此数字后 Nginx 将按照 LRU 原则丢弃冷数据。。 inactive参数配置到期时间为30秒。默认情况下,非活动时间段为60秒。
    open_file_cache_min_uses 2;#表示如果在 20s 内某文件被访问的次数低于 2 次,那就将它从缓存中删除。
    open_file_cache_valid 60s;#表示每 60s 检查一次缓存中的文件元信息是否是最新的,如果不是则更新之。
	open_file_cache_errors   on; #对一些访问文件错误的信息是否进行缓存,默认是off的
	#注意 NGINX可以缓存在文件访问期间发生的错误。但是这需要通过设置open_file_cache_errors指令来启用。 如果启用错误缓存,则在访问资源(不查找资源)时,NGINX会报告相同的错误。默认情况下,错误缓存设置为关闭。
    gzip on; #开启gzip压缩输出
    gzip_min_length 1k; #用于设置允许压缩的页面最小字节数,页面字节数从header头的content-length中获取,默认值是0,不管页面多大都进行压缩,建议设置成大于1k的字节数,小于1k可能会越压越大最小压缩文件大小
    gzip_buffers 4 16k; #表示申请4个单位为16k的内存作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存空间来存储gzip压缩结果
    gzip_http_version 1.0; #压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
    gzip_comp_level 2; #压缩等级 等级越高压缩越好对应的消耗CPU也越大
    gzip_types text/plain application/x-javascript text/css application/xml;
    #压缩类型,默认就已经包含text/html,所以下面就不用再写了,写上去也不会有问题,但是会有一个warn。
    gzip_vary on;#选项可让前端的缓存服务器缓存经过gzip压缩的页面,例如,用squid缓存经过nginx压缩的数据。
	#limit_zone crawler $binary_remote_addr 10m; #开启限制IP连接数的时候需要使用
    include /etc/nginx/conf.d/*.conf;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值