zoukankan      html  css  js  c++  java
  • 一些常用的ngx_http_core_module介绍

    alias path

    alias path: 路径别名,,文档映射的另一种机制;仅能用于location上下文

    Syntax:    alias path;
    Default:    —
    Context: location

    案例:

    http://www.magedu.com/bbs/index.html
    
    location /bbs { 注意: /bbs 后建议不要加 /
    alias /web/forum/;
    } 
    访问时得到 /web/forum/index.html页面的信息
    
    
    location /bbs/ {
    root /web/forum/;
    }
    访问时得到 /web/forum/bbs/index.html
    
    
    注意:location中使用root指令和alias指令的意义不同
    (a) root,给定的路径对应于location中的/uri 左侧的/
    (b) alias,给定的路径对应于location中的/uri 的完整路径
    总结
    root 是全路径。拼接 root 和 location 设置的路径
    alias 相当于重置路径,重置为 alias 设置的路径;去掉了location后的路径,只要alias的路径

    index file...

    指定默认网页文件;定义错误页,以指定的响应状态码进行响应

    Syntax:    error_page code ... [=[response]] uri;
    Default:    —
    Context:    http, server, location, if in location

    案例

    error_page 404 /404.html;
          location = /40x.html {
     }
     
    #error_page 404 =200 /404.html;
    
    error_page 500 502 503 504 /50x.html;
           location = /50x.html {
     }

    生产案例:

    listen 80;
    server_name www.magedu.net;
    error_page 500 502 503 504 404 /error.html;
    location = /error.html {
    root /data/nginx/html;
    }

    try_files file ... uri;

    try_files file ... =code; 按顺序检查文件是否存在,返回第一个找到的文件或文件夹(结尾加斜线表示为文件夹),如果所有文件或文件夹都找不到,会进行一个内部重定向到最后一个参数。只有最后一个参数可以引起一个内部重定向,之前的参数只设置内部URI的指向

    Syntax:    try_files file ... uri;
    try_files file ... =code;
    Default:    —
    Context:    server, location

    案例

    location /images/ {
    try_files $uri /images/default.jpg;
    } 说明:/images/default.jpg 为 URI
    
    location / {
    try_files $uri $uri/index.html $uri.html =404;
    }
    location / {
                try_files $uri $uri/ /index.php?$query_string;
    
    }
    
    #当用户请求 http://localhost/example 时,这里的 $uri 就是 /example。 
    #try_files 会到硬盘里尝试找这个文件。如果存在名为 /$root/example(其中 $root 是项目代码安装目录)的文件,就直接把这个文件的内容发送给用户。 
    #显然,目录中没有叫 example 的文件。然后就看 $uri/,增加了一个 /,也就是看有没有名为 /$root/example/ 的目录。 
    #又找不到,就会 fall back 到 try_files 的最后一个选项 /index.php,发起一个内部 “子请求”,也就是相当于 nginx 发起一个 HTTP 请求到 http://localhost/index.php。 
    loaction / {
    
    try_files $uri @apache
    
    }
    
    loaction @apache{
    
    proxy_pass http://127.0.0.1:88
    
    include aproxy.conf
    
    }
    
    #try_files方法让Ngxin尝试访问后面得$uri链接,并进根据@apache配置进行内部重定向。
    
    #当然try_files也可以以错误代码赋值,如try_files /index.php = 404 @apache,则表示当尝试访问得文件返回404时,根据@apache配置项进行重定向。

    定义客户端请求的相关配置

    keepalive_timeout timeout [header_timeout];

    设定保持连接超时时长,0表示禁止长连接,默认为75

    Syntax:    keepalive_timeout timeout [header_timeout];
    Default:    
    keepalive_timeout 75s;
    Context:    http, server, location
    设定保持连接超时时长,0表示禁止长连接,默认为75s
    示例:在响应头显示此首部字段
    keepalive_timeout 60 60;

    keepalive_requests number;

    在一次长连接上所允许请求的资源的最大数量,默认为100

    Syntax:    keepalive_requests number;
    Default:    
    keepalive_requests 100;
    Context:    http, server, location
    在一次长连接上所允许请求的资源的最大数量,默认为100
    keepalive_requests number 1000

    keepalive_disable none | browser ...;

    对哪种浏览器禁用长连接

    Syntax:    keepalive_disable none | browser ...;
    Default:   keepalive_disable msie6;
    Context:    http, server, location
    对哪种浏览器禁用长连接
    keepalive_disable google; #禁止google浏览器长连接

    send_timeout time;

    向客户端发送响应报文的超时时长,此处是指两次写操作之间的间隔时长,而非整个响应过程的传输时长

    Syntax:    send_timeout time;
    Default:    send_timeout 60s;
    Context:    http, server, location

    client_max_body_size size;

    求报文中实体的最大值,设为0,则不限制,默认1m,超过报413错误

    Syntax:    client_max_body_size size;
    Default:    client_max_body_size 1m;
    Context:    http, server, location

    client_body_buffer_size size;

    用于接收每个客户端请求报文的body部分的缓冲区大小;默认为16k;超出此大小时,其将被暂存到磁盘上的由下面client_body_temp_path指令所定义的位置

    Syntax:    client_body_buffer_size size;
    Default:    client_body_buffer_size 8k|16k;
    Context:    http, server, location

    client_body_temp_path path [level1 [level2 [level3]]];

    设定存储客户端请求报文的body部分的临时存储路径及子目录结构和数量 目录名为16进制的数字;用hash之后的值从后往前截取第1、2、3级作为文件名

    client_body_temp_path /var/tmp/client_body 1 2 2

    1 1级目录占1位16进制,即2^4=16个目录 0-f

    2 2级目录占2位16进制,即2^8=256个目录 00-ff

    2 3级目录占2位16进制,即2^8=256个目录 00-ff

    Syntax:    client_body_temp_path path [level1 [level2 [level3]]];
    Default:    client_body_temp_path client_body_temp;
    Context:    http, server, location

    案例

    上传服务器配置生产案例:
    location /upload {
      keepalive_timeout 60 60;
      keepalive_requests number 1000;
      keepalive_disable google;
      send_timeout 120s;
      client_max_body_size 100m;
      client_body_buffer_size 2048k;
      client_body_temp_path /apps/nginx/temp 1 2 2;
    }

    对客户端的相关设置

    limit_rate rate;

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

    默认值0表示无限制

    限制向客户端传输响应的速率。在rate被以每秒字节数指定。零值禁用速率限制。该限制是根据请求设置的,因此,如果客户端同时打开两个连接,则总速率将是指定限制的两倍。

    Syntax:    limit_rate rate;
    Default:    limit_rate 0;
    Context:    http, server, location, if in location

    limit_except method;

    限制客户端使用除了指定的请求方法之外的其它方法,仅在location下使用

    method:GET, HEAD, POST, PUT, DELETE,MKCOL, COPY, MOVE, OPTIONS, PROPFIND, PROPPATCH, LOCK, UNLOCK, PATCH

    句法:    limit_except method ... { ... }
    默认:    -
    内容:    location

    案例

     
    limit_except GET {
        allow 192.168.1.0/24;
        deny any;
    }
    #除了GET和HEAD 之外其它方法仅允许192.168.1.0/24网段主机使用
    #method:GET, HEAD, POST, PUT, DELETE,MKCOL, COPY, MOVE, OPTIONS, PROPFIND, PROPPATCH, LOCK, UNLOCK, PATCH

    文件操作优化的配置

    aio

    aio on | off | threads[=pool]; 是否启用aio功能,默认off

    在FreeBSD和Linux上启用或禁用异步文件I/O (AIO):

     
    Syntax:    aio on | off | threads[=pool];
    Default:    aio off;
    Context:    http, server, location
    This directive appeared in version 0.8.11.

    directio

    当文件大于等于给定大小时,同步(直接)写磁盘,而非写缓存,默认off

    Syntax:    directio size | off;
    Default:    directio off;
    Context:    http, server, location
    This directive appeared in version 0.7.7.

    sendfile

    #sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,对于普通应用必须设为 on
    #如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,以平衡磁盘与网络I/O处理速度,降低系统的uptime。
    #是否启用sendfile功能,在内核中封装报文直接发送,默认Off
    
    Syntax:    sendfile on | off;
    Default:    sendfile off;
    Context:    http, server, location, if in location

    案例

    location /video/ {
      sendfile on;
      aio on;
      directio 8m;
    }

    open_file_cache

    句法:    open_file_cache off;
             open_file_cache max=N [inactive=time];
    默认:    open_file_cache关闭;
    内容:    http,server,location

    nginx可以缓存以下三种信息: (1) 文件元数据:文件的描述符、文件大小和最近一次的修改时间 (2) 打开的目录结构 (3) 没有找到的或者没有权限访问的文件的相关信息

    max=N:可缓存的缓存项上限;达到上限后会使用LRU算法实现管理 inactive=time:缓存项的非活动时长,在此处指定的时长内未被命中的或命中的次数少于open_file_cache_min_uses指令所指定的次数的缓存项即为非活动项,将被删除

    open_file_cache_errors

    是否缓存查找时发生错误的文件一类的信息,默认值为off

    句法:    open_file_cache_errors on | off;
    默认:    open_file_cache_errors关闭;
    内容:    http,server,location

    open_file_cache_min_uses number;

    句法:    open_file_cache_min_uses number;
    默认:    open_file_cache_min_uses 1;
    内容:    http,server,location

    open_file_cache指令的inactive参数指定的时长内,至少被命中此处指定的次数方可被归类为活动项,默认值为1

    设置*number*open_file_cache伪指令的inactive参数配置的时间段内文件访问的最少时间,这是文件描述符在高速缓存中保持打开状态所必需的。

    open_file_cache_valid time;

    句法:    open_file_cache_valid time;
    默认:    open_file_cache_valid 60s;
    内容:    http,server,location

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

     

    I have a dream so I study hard!!!
  • 相关阅读:
    列表
    Lambda表达式
    委托
    泛型(二)
    泛型(一)
    继承
    object类
    linux 命令补全包
    记一次 mysql 安装完成后启动报错 且 日志为空
    nginx 下配置https 访问提示下载文件 解决方法
  • 原文地址:https://www.cnblogs.com/yaokaka/p/13639657.html
Copyright © 2011-2022 走看看