nginx优化

文章来源参考:《nginx从入门到精通》

修改nginx主配置文件nginx.conf

高层配置:

在nginx.conf文件中,少数几个高级配置在模块部分之上

以下是配置文件中选项:

user nginx;

pid /var/run/nginx.pid;

worker_processes  auto;

worker_rlimit_nofile    100000;

 

worker_processes    定义了nginx对外提供web服务时的worker进程数,最优值取决于许多因素,包括(不限于)CPU核数量,存储数据的硬盘数量及负载模式,不确定时,将其设置为可用的CPU内核数,(设置为“auto”将尝试自动检测)。

worker_rlimit_nofile 更改worker进程的最大打开文件数限制,若无设置,此值为操作系统的限制,设置后操作系统和nginx可以处理比ulimit -a更多的文件,此值设置高点,nginx不会出现“too many  open files”问题。(系统默认打开文件数为1024,使用ulimit  -n命令查看的结果数值)。

events模块:

events模块中包含nginx中所有处理连接的设置:

events  {

worker_connection  2048;

multi_accept   on;

}

worker_connections  设置可由一个worker进程同时打开的最大连接数,如果设置了上面提到的work_rlimit_nofile,可以将此值设置很高。

最大客户数也由系统的可用socket连接数限制,所以设置超出实际的高没有好处。

multi_accept   让nginx收到一个新连接通知后接受尽可能多的连接。

 

http模块:

http模块控制nginx http处理的所有核心特性。

http  {

       server_tokens   off;      #关闭在错误页面中的nginx版本数字信息,提高安全性。

       sendfile    on;            #sendfile让sendfil()发挥作用,sendfile()可以在磁盘和TCP socket之间相互拷贝数据。

        tcp_nopush     on;     #让nginx在一个数据包里发送所有头文件,而不是一个一个的发送

        tcp_nodelay    on;     #让nginx不要缓存数据,而是一段一段的发送,当需要及时发送数据时,设置此值,发送一小块数据信息就不能立刻得到返回值。

        access_log      off;         #设置nginx是否将存储访问日志,关闭此选项让读取磁盘io操作更快

        error_log      /var/log/nginx/error.log   crit;     #nginx只记录严重的错误

        keepalive_timeout    10;              #给客户端分配keepalive链接超时时间,服务器将在此超时时间过后关闭链接,可以设置低些,让nginx持续工作时间更长。

        client_header_timeout    10;     #设置请求头的超时时间

        client_body_timeout    10;       #设置请求体的超时时间

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

        send_timeout    10;        #指定客户端的相应超时时间,此设置不会用于整个转发器,而是在两次客户端读取操作之间,如果在此时间段内,客户端没有读取任何数据,nginx就会关闭链接。

        limit_conn_zone  $binary_remote_addr   zone=addr:5m;   #用于保护各种key(如当前连接数)的共享内存的参数,5M就是5字节,这个值应该被设置的足够大以存储(32K*5)32byte状态或者(16K*5)64byte状态。

        limit_conn  addr  100;       #为给定的key设置最大连接数,此处key是addr,设置为100,即每个ip地址最多同时打开100个连接。

        include    /etc/nginx/mime.types;  #include只是一个在当前文件中包含另一个文件内容的指令,这里使用它来加载稍后会被用到的一系列的mime类型,

        default_type    text/html;    #default_type设置文件使用默认的mime-type

         charset    UTF-8;    #设置头文件中的默认的字符集

         gzip on;              #采用gzip压缩的形式发送数据,将会减少发送的数据量

         #gzip_static  on;   #在nginx压缩资源之前,先查找是否有预先gzip处理过的资源,要求预先压缩你的文件,从而允许使用最高压缩比,这样nginx不用再压缩这些文件。

        gzip_proxied  any;  #允许或禁止压缩基于请求和相应的相应流,设置为any,意味着将会压缩所有请求。

        gzip_min_length   1000; #设置对数据启用压缩的最少字节数。若一个请求小于1000字节,最好不要压缩,因为压缩这些小的数据会降低处理此请求的所有进程的速度。

        gzip_comp_level   4;     #设置数据压缩等级,可以是1-9之间任意数字,9是最慢但压缩比最大。

        gzip_type   text/plain   text/css   application/json   application/x-javascript  text/xml   application/xml  application/xml+rss  text/javascript; #设置需要压缩的数据格式。

  #cache information  about file  descriptors,frequently accessed files

#can  boost  performance ,but  you  need  to test  those   values

open_file_cache  max=100000   inactive=20s;  #活动超过20秒open_file_cache打开缓存的同时指定缓存最大数目,以及缓存的时间,可以设置一个相对高的最大时间,可以在不后清除掉。

open_file_cache_valid   30s;      #指定检测正确信息的间隔时间

 open_file_cache_min_uses  2;  #定义了open_file_cache中指令参数不活动时间期间里最小的文件数

 open_file_cache_errors   on;

include   /etc/nginx/conf.d/*.conf;

include  /etc/nginx/sites-enabled/*;

}

 

 

 

 

转载于:https://my.oschina.net/u/3703522/blog/1605964

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值