Nginx配置优化

admin
2022-05-10 / 0 评论 / 114 阅读 / 正在检测是否收录...

Nginx配置优化

1、隐藏nginx版本信息

#不显示nginx版本
server_tokens off

2、Buffers缓存

另一个很重要的参数为buffer,如果buffer太小,Nginx会不停的写一些临时文件,这样会导致磁盘不停的去读写。

client_body_buffer_size 10K;
client_header_buffer_size 1k;
client_max_body_size 8m;
large_client_header_buffers 2 1k;
  • client_body_buffer_size:允许客户端请求的最大单个文件字节数
  • client_header_buffer_size:用于设置客户端请求的Header头缓冲区大小,大部分情况1KB大小足够
  • client_max_body_size:设置客户端能够上传的文件大小,默认为1m
  • large_client_header_buffers:该指令用于设置客户端请求的Header头缓冲区大小

3、开启Gzip压缩

    #开启Gzip压缩
    gzip             on;
    #压缩等级 1-9 等级越高,压缩效果越好,节约宽带,但CPU消耗大
    gzip_comp_level  2;
    #最小压缩文件大小
    gzip_min_length  1000;
    #根据某些头部决定是否压缩,
    gzip_proxied     expired no-cache no-store private auth;
    #压缩类型,默认就已经包含text/html,所以下面就不用再写了,写上去也不会有问题,但是会有一个warn。
    gzip_types       text/plain application/x-javascript text/xml text/css application/xml;
    #是否传输gzip压缩标志
    gzip_vary on;

4、开启高效传输模式

    #开启高效传输模式。
    sendfile        on;
    #该指令必须在sendfile打开的状态下才会生效,主要是用来提升网络包的传输'效率'
    tcp_nopush on;
    #该指令必须在keep-alive连接开启的情况下才生效,来提高网络包传输的'实时性'
    tcp_nodelay on;

5、FastCGI配置

相关参数是为了改善网站的性能:减少资源占用,提高访问速度。


#为FastCGI缓存指定一个文件路径、目录结构等级、关键字区域存储时间和非活动删除时间。
fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10m inactive=5m;
#指定连接到后端FastCGI的超时时间。
fastcgi_connect_timeout 300;
#指定向FastCGI传送请求的超时时间,这个值是已经完成两次握手后向FastCGI传送请求的超时时间。
fastcgi_send_timeout 300;
#指定接收FastCGI应答的超时时间,这个值是已经完成两次握手后接收FastCGI应答的超时时间。
fastcgi_read_timeout 300;
#用于指定读取FastCGI应答第一部分需要用多大的缓冲区,这个值表示将使用1个64KB的缓冲区读取应答的第一部分(应答头),可以设置为fastcgi_buffers选项指定的缓冲区大小。
fastcgi_buffer_size 64k;
#指定本地需要用多少和多大的缓冲区来缓冲FastCGI的应答请求。如果一个PHP脚本所产生的页面大小为256KB,那么会为其分配4个64KB的缓冲区来缓存;如果页面大小大于256KB,那么大于256KB的部分会缓存到fastcgi_temp指定的路径中,但是这并不是好方法,因为内存中的数据处理速度要快于硬盘。一般这个值应该为站点中PHP脚本所产生的页面大小的中间值,如果站点大部分脚本所产生的页面大小为256KB,那么可以把这个值设置为“16 16k”、“4 64k”等。
fastcgi_buffers 4 64k;
#默认值是fastcgi_buffers的两倍。
fastcgi_busy_buffers_size 128k;
#表示在写入缓存文件时使用多大的数据块,默认值是fastcgi_buffers的两倍。
fastcgi_temp_file_write_size 128k;
#表示开启FastCGI缓存并为其指定一个名称。开启缓存非常有用,可以有效降低CPU的负载,并且防止502错误的发生,但是开启缓存也会引起很多问题,要视具体情况而定。
fastcgi_cache TEST;
#用来指定应答代码的缓存时间,实例中的值表示将200和302应答缓存一个小时,将301应答缓存1天,其他应答均缓存1分
fastcgi_cache_valid 200 302 1h;
fastcgi_cache_valid 301 1d;
fastcgi_cache_valid any 1m;

6、超时配置

    #客户端连接超时时间,单位是秒
    keepalive_timeout 60;
    #客户端请求头读取超时时间
    client_header_timeout 10;
    #设置客户端请求主体读取超时时间
    client_body_timeout 10;
    #响应客户端超时时间
    send_timeout 10;

7、expires缓存配置

    #对于图片,通常过期时间可以设置为一个月
    location ~ \.(gif|jpg|jpeg|png|bmp|ico)$ {
        expires 30d;
    }
    
    #对js/css,通常过期时间设置为1周
    location ~* \.(js|css)$ {
        expires 7d;
    }
3

评论 (0)

取消