美文网首页
nginx优化

nginx优化

作者: 邹智敏 | 来源:发表于2020-07-13 18:29 被阅读0次

相信大家对nginx都很熟悉,但是如何优化nginx却又是在网上各种找资料,但是找到的资料都是各种抄袭;今天我就用我实战出来的成果展示给大家,下面是nginx.conf优化配置,nginx版本:1.13 ;

user  nginx;

# 4核
worker_processes  4; 

# 使得每一个worker进程可以独享一个核,提供cpu亲核性,避免多进程争抢。提升CPU的缓存命中率
worker_cpu_affinity 0001 0010 0100 1000;

# 文件最大打开数量为65535
worker_rlimit_nofile 65535;

events {
    # 采用epoll事件模型,处理效率高
    use epoll;
    # 告诉nginx收到一个新连接通知后接受尽可能多的连接,默认是on,设置为on后,多个worker按串行方式来处理连接,也就是一个连接只有一个worker被唤醒,其他的处于休眠状态,设置为off后,多个worker按并行方式来处理连接,也就是一个连接会唤醒所有的worker,直到连接分配完毕,没有取得连接的继续休眠。当你的服务器连接数不多时,开启这个参数会让负载有一定的降低,但是当服务器的吞吐量很大时,为了效率,可以关闭这个参数。
    multi_accept off;
    # 单个worker进程允许客户端最大连接数,这个数值一般根据服务器性能和内存来制定,实际最大值就是worker进程数乘以work_connections
    worker_connections  65535;
}

http {

    #  媒体类型,include 只是一个在当前文件中包含另一个文件内容的指令。
    include       /etc/nginx/mime.types;

    # 默认媒体类型足够
    default_type  application/octet-stream;
    
    # 开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。
    sendfile    on;

    # 必须在sendfile开启模式才有效,防止网路阻塞,积极的减少网络报文段的数量(将响应头和正文的开始部分一起发送,而不一个接一个的发送
    tcp_nopush  on;

    # 也是防止网络阻塞,不过要包涵在keepalived参数才有效
    tcp_nodelay on;
    
    # 客户端连接保持会话超时时间,超过这个时间,服务器断开这个链接
    keepalive_timeout  0;

    # 客户端请求头部的缓冲区大小
    client_header_buffer_size 4k;
    
    # 打开文件指定缓存,默认是没有启用的,max指定缓存数量,建议和打开文件数一致,inactive 是指经过多长时间文件没被请求后删除缓存
    open_file_cache max=102400 inactive=20s;
    
    # 多长时间检查一次缓存的有效信息
    open_file_cache_valid 30s;
    
    # 指令中的inactive 参数时间内文件的最少使用次数,如果超过这个数字,文件描述符一直是在缓存中打开的,如上例,如果有一个文件在inactive 时间内一次没被使用,它将被移除。
    open_file_cache_min_uses 1;
    
    # 设置请求头的超时时间
    client_header_timeout 15;
    
    # 设置请求体的超时时间。我们也可以把这个设置低些
    client_body_timeout 15;
    
    # 告诉nginx关闭不响应的客户端连接。这将会释放那个客户端所占有的内存空间
    reset_timedout_connection on;
    
    # 响应客户端超时时间,这个超时时间仅限于两个活动之间的时间,如果超过这个时间,客户端没有任何活动,nginx关闭连接
    send_timeout 15;

    # 并不会让nginx执行的速度更快,但它可以关闭在错误页面中的nginx版本数字,这样对于安全性是有好处的
    server_tokens off;

    # 上传文件大小限制。 
    client_max_body_size 10m;

    # 开启gzip
    gzip on;

    # 设置允许压缩的页面最小字节数,页面字节数从header头的Content-Length中获取,默认值是0,不管页面多大都进行压缩,建议设置成大于1K,如果小与1K可能会越压越大
    gzip_min_length 1028;

    # gzip 压缩级别,1-9,数字越大压缩的越好,也越占用CPU时间,后面会有详细说明
    gzip_comp_level 7;

    # 进行压缩的文件类型。javascript有多种形式。其中的值可以在 mime.types 文件中找到。
    gzip_types text/plain application/javascript application/x-javascript text/css application/json application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png application/vnd.ms-fontobject font/ttf font/opentype font/x-woff image/svg+xml;

    # varyheader支持,改选项可以让前端的缓存服务器缓存经过GZIP压缩的页面,例如用Squid缓存经过nginx压缩的数据
    gzip_vary on;

    # 禁用IE 6 gzip
    gzip_disable "MSIE [1-6]\.";

    # 压缩缓冲区大小,表示申请4个单位为32K的内存作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存空间来存储gzip压缩结果
    gzip_buffers 4 32k;

    # 压缩版本,用于设置识别HTTP协议版本,默认是1.1,目前大部分浏览器已经支持GZIP解压,使用默认即可。
    gzip_http_version 1.1;

    # nginx作为反向代理的时候启用,any - 无条件启用压缩
    gzip_proxied any;
}

相关文章

  • Nginx性能优化配置参考

    系统优化 系统内核优化参考 Nginx配置优化 Nginx配置参考 worker_processesnginx运行...

  • 综合架构之服务优化(后篇)

    主要内容: 1.nginx优化2.php优化3.安全优化 nginx服务优化 1.nginx配置文件移动,该如何启...

  • 后端技术栈

    Nginx 工作原理和优化、漏洞(下) Nginx 工作原理和优化、漏洞(下)Mysql查询性能优化的心得 前言:...

  • nginx优化

    nginx优化并发优化长连接压缩静态缓存一、并发优化nginx工作模式:主进程+工作进程 启动工作进程数量work...

  • nginx优化(二)io优化 直接IO与零拷贝

    nginx优化(二)io优化 直接io与零拷贝 nginx io相关基础配置 debug_points abort...

  • nginx的工作流程

    nginx的优化1、nginx可以从哪里优化对于nginx本身,最重要的也就是他的配置文件,在这个配置文件中,可以...

  • Nginx配置文件说明和优化

    1) nginx文件结构和配置文件说明 2) Nginx优化

  • LNMP优化

    nginx优化 nginx.conf #user nobody; worker_processes 4; #err...

  • laravel 部署

    nginx 配置 优化 自动加载器优化 composer install --optimize-autoloade...

  • Nginx文章集

    查看当前 nginx 连接数 Nginx优化配置,轻松搞定十万并发 LVS+KeepAlived+Nginx高可用...

网友评论

      本文标题:nginx优化

      本文链接:https://www.haomeiwen.com/subject/lbdzcktx.html