精华内容
下载资源
问答
  • Nginx配置优化详解

    2020-09-30 17:46:21
    如果你已经安装过Nginx并在生产环境中使用,那么Nginx配置优化你一定也要做,这样才能看到Nginx性能,本文就从基本配置优化开始到高层配置教你如何优化Nginx
  • nginx配置优化

    2016-05-04 09:52:59
    将多个文件统一分布管理
  • nginx配置优化+负载均衡+动静分离详解 每个请求按照ip的hash结果分配,同一个ip的访客固定访问一个后端服务器,可解决动态网页session共享问题
  • nginx指令中的优化配置文件) 代码如下:worker_processes 8;  nginx进程数,建议按照cpu数目来指定,一般为它的倍数。 代码如下:worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 ...
  • nginx配置优化+负载均衡+动静分离详解
  • 具体配置可参考官方文档 http://nginx.org/en/docs/http/ngx_http_headers_module.html#expires [root@cairui conf]# cat nginx.conf | egrep -v #|^$ user nginx; worker_processes 1; events { worker_...
  • Nginx优化化配配置置和和内内核核优优化化 实实现现突突破破十十万万并并发发 Nginx是一个高性能的 HTTP 和 反向代理 服务器也是一个 IMAP/POP3/SMTP 代理服务器本文介绍一些Nginx 优化代码参数等 nginx指令中的...
  • 针对 CPU 的Nginx 配置优化

    千次阅读 2018-08-02 21:18:21
    处理器正处于多核时代。多内核是指在一枚处理器中集成两个或多个完整的计算引擎,多核处理器是单芯片。一枚多核处理器上可以承载多个内核,但只需要单一的处理器插槽即... 在Nginx 配置文件中,有这样两个指令:work...

    处理器正处于多核时代。多内核是指在一枚处理器中集成两个或多个完整的计算引擎,多核处理器是单芯片。一枚多核处理器上可以承载多个内核,但只需要单一的处理器插槽即可以工作,同时,目前流行的操作系统已经可以利用这样的资源,将每个执行内核作为分离的逻辑处理器,通过在多个执行内核之间划分任务,在特定的始终周期内执行更多任务,提高并行处理任务的能力。

        在Nginx 配置文件中,有这样两个指令:worker_processes 和 worker_cpu_affinity 它们可以针对多核CPU 进行配置优化。

    1.worker_processes 指令

    指令详解:worker_processes 指令用来设置Nginx 服务的进程数。官方文档 建议此指令一般设置为1即可,赋值过多会影响系统IO效率,降低Nginx 服务器的性能。根据前辈们的经验,为了让多核CPU 能够很好的并行处理任务,我们可以将该指令的赋值适当的增大一些,最好赋值为机器CPU 的倍数,当然,这个值并不是越大越好,Nginx 进程太多可能增加主进程调度负担,也可能影响系统的IP 效率。比如我们的机器CPU 为4核 设置为

    worker_processes 4;

        设置好worker_processes 指令后,就很有必要设置worker_cpu_affinity 指令。

     

    2.worker_cpu_affinity 指令

    指令详解:worker_cpu_affinity 指令用来为每个进程分配CPU的工作内核。这个指令的设置方法有些麻烦。我们先来看一张图  如图所示,worker_cpu_affinity 指令的值是由几组二进制表示的。其中每一组代表一个进程,每组中的每一位表示该进程使用CPU的情况,1代表使用,0 代表不适用,注意,二进制位排列顺序和CPU 的顺序是相反的,建议不同的进程平均分配到不同的CPU 运行内核上。

    以上面设置 的进程数4 为例  CPU 是四核 因此就会有四组值,并且每组有四位,所以,此指令的设置为

    worker_cpu_affinity 0001 0100 1000 0010;

    四个二进制数分别对应4个进程,第一个进程对应0001,表示使用第一个CPU 内核,第二个进程对应0010,表示使用第二个CPU 内核,以此类推。

    如果 我们将 worker_processes 指令的值复制为8, 即复制为CPU 内核个数的两倍 则woker_cpu_affinity 指令的设置可以是

    worker_cpu_affinity  00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;

     

    展开全文
  • Kong安装以及Nginx配置优化调整

    千次阅读 2019-06-25 16:19:55
    kong是一款微服务API网关平台,内部集成了nginx但是其默认配置不够好,在做负载均衡的时候不能发挥最大性能,kong支持自定义的nginx配置,最近在了解kong的启动优化和相关配置文件的加载过程,在此做个记录。...

    时间记录:2019-6-25
    kong是一款微服务API网关平台,内部集成了nginx但是其默认配置不够好,在做负载均衡的时候不能发挥最大性能,kong支持自定义的nginx的配置,最近在了解kong的启动优化和相关配置文件的加载过程,在此做个记录。
    此文做一下几点概述:kong的安装kong的启动
    1:kong的安装
    kong官方安装教程链接
    这里我选择centos安装,kong的启动可以使用数据库也可以不使用数据库,这里我选择了数据postsql(postgres)
    首先安装kong

    sudo yum update -y
    sudo yum install -y wget
    wget https://bintray.com/kong/kong-rpm/rpm -O bintray-kong-kong-rpm.repo
    export major_version=`grep -oE '[0-9]+\.[0-9]+' /etc/redhat-release | cut -d "." -f1`
    sed -i -e 's/baseurl.*/&\/centos\/'$major_version''/ bintray-kong-kong-rpm.repo
    sudo mv bintray-kong-kong-rpm.repo /etc/yum.repos.d/
    sudo yum update -y
    sudo yum install -y kong
    

    注意:上述步骤主要是配置yum的repo源,会生成bintray-kong-kong-rpm.repo文件,然后install的时候会去寻找对应的文件

    /etc/yum.repos.d/bintray-kong-kong-rpm.repo
    

    yum使用中遇到的问题:我使用的是vmware的centos7的虚拟机,然后yum提示证书过期,是由于虚拟机的系统时间异常导致的,将系统的时间通过date -s XXX调整就可以了。这里可以研究下https的证书验证流程
    再安装postgres
    postgres官方安装教程链接

    yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    yum install postgresql95
    /*官网上这里给的是自行选择,这里不安装postgresql95-setup会找不到,不能初始化*/
    yum install postgresql95-server
    /*初始化数据库,这里的路径可能不一样需要自己修改,初始化如果提示文件已存在,需要将/var/lib/pgsql/9.5/data/下删除*/
    /usr/pgsql-9.5/bin/postgresql95-setup initdb 
    systemctl enable postgresql-9.5 
    systemctl start postgresql-9.5
    

    创建kong用户和kong数据库

    su postgres
    psql
    create role kong login;
    create database kong owner kong;
    

    查看自己创建的数据库和用户

    \du
     Role name |                         Attributes                         | Member of 
    -----------+------------------------------------------------------------+-----------
     kong      |                                                            | {}
     postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
    
    
    \l
                                      List of databases
       Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
    -----------+----------+----------+-------------+-------------+-----------------------
     kong      | kong     | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | 
     postgres  | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | 
     template0 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +
               |          |          |             |             | postgres=CTc/postgres
     template1 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +
               |          |          |             |             | postgres=CTc/postgres
    (4 rows)
    
    

    退出 \q exit
    注意:这里的用户名和数据库必须为kong,且有登录权限
    启动kong

     kong migrations bootstrap
     kong start
    

    2:kong的启动配置
    kong的配置主要分为GENERALNGINXDATASTOREDATASTORE CACHEDNS RESOLVERTUNING & BEHAVIORDEVELOPMENT & MISCELLANEOUS 方面

    kong.conf.default
    kong的启动配置文件在 /etc/kong/kong.conf.default 下,这个配置文件是由konglua脚本生成的(lua位置 /usr/local/share/lua/5.1/kong/ ) 下,手动修改conf文件是没有用的,重启后会直接被覆盖。

    nginx.conf
    由配置的kong.conf.default文件会生成对应的nginx.conf文件,所以这个文件手动修改也是会被覆盖的

    kong的启动提供了 –nginx-conf -c两个参数可以指定配置文件

    自定义kong.conf.default文件
    在相同文件夹下,复制源文件,打开后找到需要修改的内容删除#后修改内容即可,具体的值修改参考官方的文档(配置参数链接)

    cp /etc/kong/kong.conf.default /etc/kong/kong.conf
    ------------------------------------------------------------------------------------------------------------------------------
    nginx_worker_processes = 1   # Determines the number of worker processes
                                     # spawned by Nginx.
                                     #
                                     # See http://nginx.org/en/docs/ngx_core_module.html#worker_processes
                                     # for detailed usage of the equivalent Nginx
                                     # directive and a description of accepted
                                     # values.
    类似于这样的修改
    

    自定义nginx.conf文件
    新建文件custom_nginx.template在你的kong目录下即nginx.conf位置

    /usr/local/kong/custom_nginx.template
    复制nginx.conf的内容到custom_nginx.template,然后即可自定义内容,参考nginx的配置
    ------------------------------------------------------------------------------------------------------------------------------
    # ---------------------
    # custom_nginx.template
    # ---------------------
    
    worker_processes 1; # can be set by kong.conf
    daemon on;                     # can be set by kong.conf
    
    pid pids/nginx.pid;                      # this setting is 强制的
    error_log logs/error.log notice; # can be set by kong.conf
    
    events {
        use epoll; # custom setting
        multi_accept on;
    }
    
    http {
        # include default Kong Nginx config
        include 'nginx-kong.conf';
    
        
    }
    类似于这个样子
    

    其余的配置不做说明了,这里我主要的是nginx的配置,具体的配置参数如下
    nginx官方核心参数配置解释

    /---main-----/
    worker_processes 2; // 工作进程数一般为核数性能最佳
    worker_cpu_affinity 01 10; // 核数为位数从右到左为第几个核,0不启用,1启用,进程对应核
    thread_pool name threads=number [max_queue=number]; //用于多线程读取和发送文件而不阻塞 工作进程的命名线程池,默认32个线程队列数65536个
    timer_resolution interval; //减少工作进程中的计时器间隔,从而减少gettimeofday()系统调用的次数。默认情况下,gettimeofday()每次收到内核事件时都会调用。间隔降低,gettimeofday()每次指定只调用一次interval。
    worker_rlimit_core size; // 每个worker最大能打开的核心文件数
    worker_rlimit_nofile number; // 进程的最大打开文件数限制
    daemon on | off; // 确定nginx是否应该成为守护进程,即脱离终端后台运行
    
    /---events-----/
    use epoll; 
    multi_accept on/off; // 关闭则工作进程将一次接受一个新连接。开启则工作进程将尽可能多的接受连接
    accept_mutex on/off; // 开启则工作进程将依次接受新连接,关闭则会通知所有的工作进程,进行抢夺,造成不必要的资源浪费
    worker_connections  102400;// 每个工作进程的最大连接数
    accept_mutex_delay 500; // accept_mutex开启,指定当另一个工作进程当前正在接受新连接时,工作进程将尝试重新启动接受新连接的最长时间,默认500毫秒(获取文件锁的等待时间)
    worker_aio_requests number;
    

    基本上的安装和配置如上,其余的内容还需要深入了解代码。
    时间记录:2019-6-25

    展开全文
  •  高并发下的Nginx性能优化实战、解读Nginx的核心知识、掌握nginx核心原理?通过本期课程将解答我们的疑惑。

    立即学习:https://edu.csdn.net/course/play/27216/358416?utm_source=blogtoedu

    客户端到Nginx的长连接:

    Nginx到Tomcat服务器的长连接:

     

    events模块中:

    keepalive_timeout 60;

     

    http模块中

    keepalive_timeout 120;

     

     

    展开全文
  • 史上最全Nginx配置优化

    千次阅读 2020-01-04 11:17:03
    一、一般来说nginx 配置文件中对优化比较有作用的为以下几项: 1. worker_processes 8; nginx 进程数,建议按照cpu 数目来指定,一般为它的倍数 (如,2个四核的cpu计为8)。 2. workercpuaffinity 00000001 00000010 ...

    一、一般来说nginx 配置文件中对优化比较有作用的为以下几项:

    1. worker_processes 8;

    nginx 进程数,建议按照cpu 数目来指定,一般为它的倍数 (如,2个四核的cpu计为8)。

    2. workercpuaffinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;

    为每个进程分配cpu,上例中将8 个进程分配到8 个cpu,当然可以写多个,或者将一个进程分配到多个cpu。

    3.workerrlimitnofile 65535;

    这个指令是指当一个nginx 进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx 进程数相除,但是nginx 分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致。

    现在在linux 2.6内核下开启文件打开数为65535,workerrlimitnofile就相应应该填写65535。

    这是因为nginx调度时分配请求到进程并不是那么的均衡,所以假如填写10240,总并发量达到3-4万时就有进程可能超过10240了,这时会返回502错误。

    查看linux系统文件描述符的方法:

    [root@web001 ~]# sysctl -a | grep fs.file

    fs.file-max = 789972

    fs.file-nr = 510 0 789972

    4.use epoll;

    使用epoll 的I/O 模型

    (

    补充说明:

    与apache相类,nginx针对不同的操作系统,有不同的事件模型

    A)标准事件模型Select、poll属于标准事件模型,如果当前系统不存在更有效的方法,nginx会选择select或pollB)高效事件模型 Kqueue:使用于 FreeBSD 4.1 , OpenBSD 2.9 , NetBSD 2.0 和 MacOS X. 使用双处理器的MacOS X系统使用kqueue可能会造成内核崩溃。Epoll: 使用于Linux内核2.6版本及以后的系统。

    /dev/poll:使用于 Solaris 7 11/99 , HP/UX 11.22 (eventport), IRIX 6.5.15 和 Tru64 UNIX 5.1A 。

    Eventport:使用于 Solaris 10. 为了防止出现内核崩溃的问题, 有必要安装安全补丁。

    )

    5.worker_connections 65535;

    每个进程允许的最多连接数, 理论上每台nginx 服务器的最大连接数为workerprocesses*workerconnections。

    6.keepalive_timeout 60;

    keepalive 超时时间。

    7.clientheaderbuffer_size 4k;

    客户端请求头部的缓冲区大小,这个可以根据你的系统分页大小来设置,一般一个请求头的大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。

    分页大小可以用命令getconf PAGESIZE 取得。

    [root@web001 ~]# getconf PAGESIZE

    4096

    但也有clientheaderbuffersize超过4k的情况,但是clientheaderbuffersize该值必须设置为“系统分页大小”的整倍数。

    8.openfilecache max=65535 inactive=60s;

    这个将为打开文件指定缓存,默认是没有启用的,max 指定缓存数量,建议和打开文件数一致,inactive 是指经过多长时间文件没被请求后删除缓存。

    9.openfilecache_valid 80s;

    这个是指多长时间检查一次缓存的有效信息。

    10.openfilecacheminuses 1;

    openfilecache 指令中的inactive 参数时间内文件的最少使用次数,如果超过这个数字,文件描述符一直是在缓存中打开的,如上例,如果有一个文件在inactive 时间内一次没被使用,它将被移除。

    二、关于内核参数的优化:

    net.ipv4.tcpmaxtw_buckets = 6000

    timewait 的数量,默认是180000。

    net.ipv4.iplocalport_range = 1024 65000

    允许系统打开的端口范围。

    net.ipv4.tcptwrecycle = 1

    启用timewait 快速回收。

    net.ipv4.tcptwreuse = 1

    开启重用。允许将TIME-WAIT sockets 重新用于新的TCP 连接。

    net.ipv4.tcp_syncookies = 1

    开启SYN Cookies,当出现SYN 等待队列溢出时,启用cookies 来处理。

    net.core.somaxconn = 262144

    web 应用中listen 函数的backlog 默认会给我们内核参数的net.core.somaxconn 限制到128,而nginx 定义的NGXLISTENBACKLOG 默认为511,所以有必要调整这个值。

    net.core.netdevmaxbacklog = 262144

    每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。

    net.ipv4.tcpmaxorphans = 262144

    系统中最多有多少个TCP 套接字不被关联到任何一个用户文件句柄上。如果超过这个数字,孤儿连接将即刻被复位并打印出警告信息。这个限制仅仅是为了防止简单的DoS 攻击,不能过分依靠它或者人为地减小这个值,更应该增加这个值(如果增加了内存之后)。

    net.ipv4.tcpmaxsyn_backlog = 262144

    记录的那些尚未收到客户端确认信息的连接请求的最大值。对于有128M 内存的系统而言,缺省值是1024,小内存的系统则是128。

    net.ipv4.tcp_timestamps = 0

    时间戳可以避免序列号的卷绕。一个1Gbps 的链路肯定会遇到以前用过的序列号。时间戳能够让内核接受这种“异常”的数据包。这里需要将其关掉。

    net.ipv4.tcpsynackretries = 1

    为了打开对端的连接,内核需要发送一个SYN 并附带一个回应前面一个SYN 的ACK。也就是所谓三次握手中的第二次握手。这个设置决定了内核放弃连接之前发送SYN ACK 包的数量。

    net.ipv4.tcpsynretries = 1

    在内核放弃建立连接之前发送SYN 包的数量。

    net.ipv4.tcpfintimeout = 1

    如 果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2 状态的时间。对端可以出错并永远不关闭连接,甚至意外当机。缺省值是60 秒。2.2 内核的通常值是180 秒,3你可以按这个设置,但要记住的是,即使你的机器是一个轻载的WEB 服务器,也有因为大量的死套接字而内存溢出的风险,FIN- WAIT-2 的危险性比FIN-WAIT-1 要小,因为它最多只能吃掉1.5K 内存,但是它们的生存期长些。

    net.ipv4.tcpkeepalivetime = 30

    当keepalive 起用的时候,TCP 发送keepalive 消息的频度。缺省是2 小时。

    三、下面贴一个完整的内核优化设置:

    vi /etc/sysctl.conf CentOS5.5中可以将所有内容清空直接替换为如下内容:

    net.ipv4.ip_forward = 0net.ipv4.conf.default.rp_filter = 1net.ipv4.conf.default.acceptsourceroute = 0kernel.sysrq = 0kernel.coreusespid = 1net.ipv4.tcp_syncookies = 1kernel.msgmnb = 65536kernel.msgmax = 65536kernel.shmmax = 68719476736kernel.shmall = 4294967296net.ipv4.tcpmaxtw_buckets = 6000net.ipv4.tcp_sack = 1net.ipv4.tcpwindowscaling = 1net.ipv4.tcp_rmem = 4096 87380 4194304net.ipv4.tcp_wmem = 4096 16384 4194304net.core.wmem_default = 8388608net.core.rmem_default = 8388608net.core.rmem_max = 16777216net.core.wmem_max = 16777216net.core.netdevmaxbacklog = 262144net.core.somaxconn = 262144net.ipv4.tcpmaxorphans = 3276800net.ipv4.tcpmaxsyn_backlog = 262144net.ipv4.tcp_timestamps = 0net.ipv4.tcpsynackretries = 1net.ipv4.tcpsynretries = 1net.ipv4.tcptwrecycle = 1net.ipv4.tcptwreuse = 1net.ipv4.tcp_mem = 94500000 915000000 927000000net.ipv4.tcpfintimeout = 1net.ipv4.tcpkeepalivetime = 30net.ipv4.iplocalport_range = 1024 65000

    使配置立即生效可使用如下命令:/sbin/sysctl -p

    四、下面是关于系统连接数的优化

    linux 默认值 open files 和 max user processes 为 1024

    ulimit -n

    1024

    ulimit Cu

    1024

    问题描述: 说明 server 只允许同时打开 1024 个文件,处理 1024 个用户进程

    使用ulimit -a 可以查看当前系统的所有限制值,使用ulimit -n 可以查看当前的最大打开文件数。

    新装的linux 默认只有1024 ,当作负载较大的服务器时,很容易遇到error: too many open files 。因此,需要将其改大。

    解决方法:

    使用 ulimit Cn 65535 可即时修改,但重启后就无效了。(注ulimit -SHn 65535 等效 ulimit -n 65535 ,-S 指soft ,-H 指hard)

    有如下三种修改方式:

    1. 在/etc/rc.local 中增加一行 ulimit -SHn 655352. 在/etc/profile 中增加一行 ulimit -SHn 655353. 在/etc/security/limits.conf 最后增加:

    *** soft nofile 65535

    • hard nofile 65535
    • soft nproc 65535
    • hard nproc 65535**

    具体使用哪种,在 CentOS 中使用第1 种方式无效果,使用第3 种方式有效果,而在Debian 中使用第2 种有效果

    ulimit -n

    65535

    ulimit -u

    65535

    备注:ulimit 命令本身就有分软硬设置,加-H 就是硬,加-S 就是软默认显示的是软限制

    soft 限制指的是当前系统生效的设置值。 hard 限制值可以被普通用户降低。但是不能增加。 soft 限制不能设置的比 hard 限制更高。 只有 root 用户才能够增加 hard 限制值。

    五、下面是一个简单的nginx 配置文件:

    user www www;worker_processes 8;workercpuaffinity 00000001 00000010 00000100 00001000 00010000 0010000001000000;errorlog /www/log/nginxerror.log crit;pid /usr/local/nginx/nginx.pid;workerrlimitnofile 204800;events{use epoll;worker_connections 204800;}http{include mime.types;default_type application/octet-stream;charset utf-8;servernameshashbucketsize 128;clientheaderbuffer_size 2k;largeclientheader_buffers 4 4k;clientmaxbody_size 8m;sendfile on;tcp_nopush on;keepalive_timeout 60;fastcgicachepath /usr/local/nginx/fastcgi_cache levels=1:2keys_zone=TEST:10minactive=5m;fastcgiconnecttimeout 300;fastcgisendtimeout 300;fastcgireadtimeout 300;fastcgibuffersize 4k;fastcgi_buffers 8 4k;fastcgibusybuffers_size 8k;fastcgitempfilewritesize 8k;fastcgi_cache TEST;fastcgicachevalid 200 302 1h;fastcgicachevalid 301 1d;fastcgicachevalid any 1m;fastcgicachemin_uses 1;fastcgicacheusestale error timeout invalidheader http_500;openfilecache max=204800 inactive=20s;openfilecacheminuses 1;openfilecache_valid 30s;tcp_nodelay on;gzip on;gzipminlength 1k;gzip_buffers 4 16k;gziphttpversion 1.0;gzipcomplevel 2;gzip_types text/plain application/x-javascript text/css application/xml;gzip_vary on;server{listen 8080;server_name backup.aiju.com;index index.php index.htm;root /www/html/;location /status{stub_status on;}location ~ .*/.(php|php5)?${fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;include fcgi.conf;}location ~ .*/.(gif|jpg|jpeg|png|bmp|swf|js|css)${expires 30d;}logformat access ‘$remoteaddr — $remoteuser [$timelocal] “$request” ‘‘$status $bodybytessent “$http_referer” ‘‘”$httpuseragent” $httpxforwarded_for’;access_log /www/log/access.log access;}}

    六、关于FastCGI 的几个指令:

    fastcgicachepath /usr/local/nginx/fastcgicache levels=1:2 keyszone=TEST:10minactive=5m;

    这个指令为FastCGI 缓存指定一个路径,目录结构等级,关键字区域存储时间和非活动删除时间。

    fastcgiconnecttimeout 300;

    指定连接到后端FastCGI 的超时时间。

    fastcgisendtimeout 300;

    向FastCGI 传送请求的超时时间,这个值是指已经完成两次握手后向FastCGI 传送请求的超时时间。

    fastcgireadtimeout 300;

    接收FastCGI 应答的超时时间,这个值是指已经完成两次握手后接收FastCGI 应答的超时时间。

    fastcgibuffersize 4k;

    指定读取FastCGI 应答第一部分需要用多大的缓冲区,一般第一部分应答不会超过1k,由于页面大小为4k,所以这里设置为4k。

    fastcgi_buffers 8 4k;

    指定本地需要用多少和多大的缓冲区来缓冲FastCGI 的应答。

    fastcgibusybuffers_size 8k;

    这个指令我也不知道是做什么用,只知道默认值是fastcgi_buffers 的两倍。

    fastcgitempfilewritesize 8k;

    在写入fastcgitemppath 时将用多大的数据块,默认值是fastcgi_buffers 的两倍。

    fastcgi_cache TEST

    开启FastCGI 缓存并且为其制定一个名称。个人感觉开启缓存非常有用,可以有效降低CPU 负载,并且防止502 错误。

    **fastcgi_cache_valid 200 302 1h;fastcgicachevalid 301 1d;fastcgicachevalid any 1m;**

    为指定的应答代码指定缓存时间,如上例中将200,302 应答缓存一小时,301 应答缓存1 天,其他为1 分钟。

    fastcgicachemin_uses 1;

    缓存在fastcgicachepath 指令inactive 参数值时间内的最少使用次数,如上例,如果在5 分钟内某文件1 次也没有被使用,那么这个文件将被移除。

    fastcgicacheusestale error timeout invalidheader http_500;

    不知道这个参数的作用,猜想应该是让nginx 知道哪些类型的缓存是没用的。以上为nginx 中FastCGI 相关参数,另外,FastCGI 自身也有一些配置需要进行优化,如果你使用php-fpm 来管理FastCGI,可以修改配置文件中的以下值:

    60

    同时处理的并发请求数,即它将开启最多60 个子线程来处理并发连接。

    102400

    最多打开文件数。

    204800

    每个进程在重置之前能够执行的最多请求数。

    出处http://9388751.blog.51cto.com/9378751/1676821

    展开全文
  • 针对CPU的nginx配置优化 处理器已经进入了多核时代,多核的意思是一个处理器集成两个或者多个计算引擎。一枚多核处理器可以承载多枚内核。将每个内核作为分立的逻辑处理器,通过多喝个内核之间的划分,在特定的周期...
  • nginx 配置优化

    2017-11-10 11:19:28
    nginx配置优化 每个参数都有详细的解释,包含多线程,负载均衡 ,无效联系我:351137017
  • Nginx 配置性能优化

    千次阅读 2019-03-07 14:11:40
    http://www.z-dig.com/nginx-optimization-25.html http://www.oschina.net/translate/nginx-setup?print https://segmentfault.com/a/1190000011405320 http://www.jiagoumi.com/app-ervic...
  • Nginx配置优化,主要是配置nginx.conf文件nginx进程数,建议按照cpu数目来指定,一般为它的倍数(1最多2)。worker_processes auto; //即1倍,即cpu个数下面这个指令是指当一个nginx进程打开的最多文件描述符数目,...
  • nginx 配置优化 开启高效传输模式 fastcgi 调优 gzip 调优 expires 缓存调优 内核参数优化 系统连接数的优化 准备nginx测试环境 nginx安装略 准备测试文件 vim /usr/local/nginx/conf/nginx.conf echo '...
  • 主要为大家详细介绍了Nginx服务器配置性能优化方案,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • nginx 配置优化的几个参数

    千次阅读 2019-08-20 15:01:28
    最近在服务器上搞了一些nginx 研究了一下 总结总结nginx配置文件里面需要注意的一些参数 worker_processes 8 nginx要开启的进程数一般等于cpu的总核数 其实一般情况下开4个或8个就可 我开2个 以了 多了没有太多...
  • Nginx优化配置和内核优化 实现突破十万并发_nginx https://m.aliyun.com/yunqi/ziliao/105606 nginx指令中的优化配置文件) 复制代码 代码如下: worker_processes 8;  nginx进程数,建议按照cpu数目来指定...
  • Nginx配置性能优化

    万次阅读 多人点赞 2014-04-03 22:23:18
    大多数的Nginx安装指南告诉你如下基础知识——通过apt-get安装,修改这里或那里的几行配置,好了,你已经有了一个Web服务器了。而且,在大多数情况下,一个常规安装的nginx对你的网站来说已经能很好地工作了。然而,...
  • 配合博文https://blog.csdn.net/roadyuan/article/details/89018642的资源,
  • 主要介绍了Nginx 静态文件服务配置优化,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 一 ab压力测试 和 nginx 配置优化 压力测试工具 ApacheBench 简称ab,是Apache 中自带的基准性能测试的工具。通过ab命令可以创建并发线程模拟多用户访问或调用某一URL地址。 为了测试服务器的并发能力,可以利用...
  •  高并发下的Nginx性能优化实战、解读Nginx的核心知识、掌握nginx核心原理?通过本期课程将解答我们的疑惑。
  • 整理的nginx的初始化配置文件,做了部分优化,安装nginx后可以直接替换使用。有问题可以直接留言
  • nginx优化1. gzip压缩优化 2. expires缓存有还 3. 网络IO事件模型优化 4. 隐藏软件名称和版本号 5. 防盗链优化 6. 禁止恶意域名解析 7. 禁止通过IP地址访问网站 8. HTTP请求方法优化 9. 防DOS攻击单IP...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 76,812
精华内容 30,724
关键字:

nginx配置优化