nginx.conf详解

  • 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”问题了。

  •  
  • Events模块

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

       
       
    1. events { 
    2. worker_connections 2048; 
    3. multi_accept on; 
    4. use epoll; 

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

    记住,最大客户数也由系统的可用socket连接数限制(~ 64K),所以设置不切实际的高没什么好处。

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

    use 设置用于复用客户端线程的轮询方法。如果你使用Linux 2.6+,你应该使用epoll。如果你使用*BSD,你应该使用kqueue。

    (值得注意的是如果你不知道Nginx该使用哪种轮询方法的话,它会选择一个最适合你操作系统的)

    HTTP 模块

    HTTP模块控制着nginx http处理的所有核心特性。因为这里只有很少的配置,所以我们只节选配置的一小部分。所有这些设置都应该在http模块中,甚至你不会特别的注意到这段设置。

       
       
    1. http { 
    2. server_tokens off; 
    3. sendfile on; 
    4. tcp_nopush on; 
    5. tcp_nodelay on; 
    6. ... 
    7. }

    tcp_nopush 告诉nginx在一个数据包里发送所有头文件,而不一个接一个的发送。

    tcp_nodelay 告诉nginx不要缓存数据,而是一段一段的发送--当需要及时发送数据时,就应该给应用设置这个属性,这样发送一小块数据信息时就不能立即得到返回值。

       
       
    1. access_log off; 
    2. error_log /var/log/nginx/error.log crit; 

    access_log 设置nginx是否将存储访问日志。关闭这个选项可以让读取磁盘IO操作更快(aka,YOLO)

    error_log 告诉nginx只能记录严重的错误:

       
       
    1. keepalive_timeout 10; 
    2. client_header_timeout 10; 
    3. client_body_timeout 10; 
    4. reset_timedout_connection on; 
    5. send_timeout 10; 

    keepalive_timeout  给客户端分配keep-alive链接超时时间。服务器将在这个超时时间过后关闭链接。我们将它设置低些可以让ngnix持续工作的时间更长。

    gzip on; 
    
    gzip 是告诉nginx采用gzip压缩的形式发送数据。这将会减少我们发送的数据量。
    • gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
    gzip_type 设置需要压缩的数据格式。上面例子中已经有一些了,你也可以再添加更多的格式。
    • open_file_cache max=100000 inactive=20s;
    open_file_cache 打开缓存的同时也指定了缓存最大数目,以及缓存的时间。我们可以设置一个相对高的最大时间,这样我们可以在它们不活动超过20秒后清除掉。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值