• nginx基础配置调整


    (1)nginx运行工作进程个数,一般设置cpu的核心数

    如果不了解cpu的核数,可以top命令之后按1看出来,也可以查看/proc/cpuinfo文件 grep ^processor /proc/cpuinfo | wc -l 

    比如4核配置

    worker_processes  4;

    worker_cpu_affinity 0001 0010 0100 1000

    比如8核配置

    worker_processes 8;

    worker_cpu_affinity 00000001 00000010 00000100 0000100000010000 00100000 01000000 10000000;

    worker_processes最多开启8个,8个以上性能提升不会再提升了,而且稳定性变得更低,所以8个进程够用了。

    Nginx最多可以打开文件数

    worker_rlimit_nofile 65535;

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

    注:

    文件资源限制的配置可以在/etc/security/limits.conf设置,针对root/user等各个用户或者*代表所有用户来设置。

    * soft nofile 65535

    * hard nofile 65535

    用户重新登录生效(ulimit -n)

    (2)Nginx事件处理模型

    events {

    use epoll;

    worker_connections 65535;

    }

    work_connections是单个worker进程允许客户端最大连接数,这个数值一般根据服务器性能和内存来制定,实际最大值就是worker进程数乘以work_connections

    实际我们填入一个65535,足够了,这些都算并发值,一个网站的并发达到这么大的数量,也算一个大站了!

    (3)开启高效传输模式

    http {

    ……

    sendfile on;

    tcp_nopush on;

    ……

    sendfile on;//开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。

    注意:如果图片显示不正常把这个改成off。

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

    (4)客户端连接设置

    主要目的是保护服务器资源,CPU,内存,控制连接数,因为建立连接也是需要消耗资源的。

    keepalived_timeout 60; 客户端连接保持会话超时时间,超过这个时间,服务器断开这个链接

    tcp_nodelay on; 防止网络阻塞,不过要包涵在keepalived参数才有效

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

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

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

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

    client_header_timeout 5; 设置请求头的超时时间。我们也可以把这个设置低些,如果超过这个时间没有发送任何数据,nginx将返回request time out的错误

    client_body_timeout 5; 设置请求体的超时时间。我们也可以把这个设置低些,超过这个时间没有发送任何数据,和上面一样的错误提示

    reset_timeout_connection on; 告诉nginx关闭不响应的客户端连接。这将会释放那个客户端所占有的内存空间。

    send_timeout 5; 响应客户端超时时间,这个超时时间仅限于两个活动之间的时间,如果超过这个时间,客户端没有任何活动,nginx关闭连接

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

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

  • 相关阅读:
    [Json.net]忽略不需要的字段
    [c#]exchange回复,全部回复,转发所遇到的问题
    [c#]获取exchange中的图片
    [c#基础]AutoResetEvent
    [C#基础]c#中的BeginInvoke和EndEndInvoke
    [CentOs7]安装mysql
    [CentOS7]安装mysql遇到的问题
    [CentOs7]图形界面
    [CentOS]添加删除用户
    在虚机中安装CentOS
  • 原文地址:https://www.cnblogs.com/yuyifeiyang/p/9890970.html
Copyright © 2020-2023  润新知