Linux学习107 nginx实现web服务配置

一、nginx续

  1、main相关的配置

    f、http协议相关的配置

      (4)、定义客户端请求的相关配置

        1)、keepalive_timeout timeout [header_timeout];

          设定保持连接的超时时长,0表示禁止长连接;默认为75s。这个75秒有点长了

        2)、keepalive_requests number

          在一次长连接上所允许请求的资源的最大数量,默认为100,这个值比较合理

        3)、keepalive_disable none | browser ...;

          对哪种浏览器禁用长连接。这种用的比较少一点。

        4)、send_timeout time;

          向客户端发送响应报文的超时时长,此处,是指两次写操作之间的间隔时长

        5)、client_body_buffer_size size;

          用于接收客户端请求报文的body部分的缓冲区大小;默认为16k;超出此大小时,其将被暂存到磁盘上的由client_body_temp_path指令所定义的位置。客户端使用上传,即post或put才会使用到client_body_buffer_size。

        6)、client_body_temp_path path[level1  [level2 [level3]]]

          设定用于存储客户端请求报文的body部分的临时存储路径及子目录结构和数量。因为加入我们nginx有上万并发的话我们的文件量就大的多了,为了能够便于文件查找我们都将其放在一个平面目录上,进行分级存放,比如我们在一个目录下创建16个一级子目录,因此我们文件应该会分散在这16个一级子目录下,因此我们只需要能路由到一级子目录中去就行,然后整个查找范围就缩小了16倍,如果我们在一级子目录下再创建256个子目录,意味着又缩小了256倍,即总体查找速度又缩小到1/16 * 1/256了,如果三级子目录又来16个,那就又缩小了16倍,因此假如有500万个文件我们查找速度就非常快了。那么我们怎么能够把其放在子目录下下次还知道去哪儿找呢?即我们怎么做路径路由呢?很简单,即把一个文件对应的url,大家知道我们用户请求时无论是上传下载都要请求路径的url,即http://host:port/path做一次hash计算

          16进制的数字

          client_body_temp_path path /var/tmp/client_body 2 1 1

            1:表示用一位16进制数字表示一级子目录:0-f

            2:表示用2位16进制数字表示二级子目录:00-ff

            2:表示用2位16进制数字表示三级子目录:00-ff

      (5)、对客户端进行限制的相关配置

        1)、limit_rate rate;

          限制响应给客户端的传输速率,单位是bytes/second,0表示无限制

        2)、limit_except method ... {...}

          限制对指定的请求方法之外的其它方法的使用客户端

          limit_except GET { #get方法以外的方法只允许192.168.10.0/24这个网段的主机中使用,其它网段的都不允许

                allow 192.168.10.0/24;

                deny all;

                  }

      (6)、文件操作优化的配置

        1)、alo on | off | threads[=pool];

          是否启用aio功能

        2)、directio size | off

          在Linux主机启用O_DIRECT标记,此处意味文件大于等于给定的大小时使用,例如directio 4m

        3)、open_file_cache off;

          open_file_cache max=N [inactive=time];

          nginx可以缓存以下三种信息:

            i、文件的描述符,文件大小和最近一次的修改时间

            ii、打开的目录结构

            iii、没有找到的或者没有权限访问的文件的相关信息

          max=N:可缓存的缓存项上限;达到上限后会使用LRU(最近最少使用)算法实现缓存管理;

          inactive=time:缓存项的非活动时长,在此处指定的时长内未被命中的或命中的次数少于open_file_cache_min_user指令所指定的次数的缓存项即为非活动项

        4)、open_file_cache_valid time

          缓存项有效性的检查频率;默认为60s

        5)、open_file_cache_min_users number

          在 open_file_cache指令的inactive参数指定的时长内,至少应该被命中多少次方可被归类为活动项

        6)、open_file_cache_errors on | off

          是否缓存查找发生错误的文件一类的信息

  2、ngx_http_access_module模块,即基于IP地址的访问控制功能

    a、allow address | CIDR | unix: | all;

    b、deny address | CIDR | unix: | all;

      http,server,location,limit_except

  3、ngx_http_auth_basic_module模块

    a、实现基于用户的访问控制,使用basic机制进行用户认证

    b、auth_basic string | off;

    c、auth_basic_user_file file;

      location /admin/ {

        alias /webapps/app1/data/;

        auth_basic "Admin Area";

        auth_basic_user_file /etc/nginx/.ngxpasswd;

              }

    d、注意:htpasswd命令由httpd-tools所提供

26:43

 

Linux学习107 nginx实现web服务配置

上一篇:如何快速把json数据转到excel表格,方便个人查看


下一篇:初步学习next.js-1