zoukankan      html  css  js  c++  java
  • nginx_http核心模块(二)

    对一些常用的配置项做一些解释:详细请看官方文档:http://nginx.org/en/docs/http/ngx_http_core_module.html

    1. alias    

    Syntax:    alias path;
    Default:     —
    Context:    location

      上边的意思:第一行语法,用法,第二行是默认值 缺省的,第三行是活动的范围是在location中的.

      alias:别名,用来对位置做替换的.

    location /i/ {
        alias /data/w3/images/;
    }

      当请求"/i/top.gif',这个文件的时候 "/data/w3/images/top.gif"将被返回
      path 变量可以包含变量. 除了$document_root 和 $realpath_root两个变量
      如果alias应用在正则表达式定义的location,那么正则表达式必须包含捕获并且alias必须应用这些捕获的结果.

    location ~ ^/users/(.+.(?:gif|jpe?g|png))$ {
        alias /data/w3/images/$1;
    }

      当location匹配directive的值:

    location /images/ {
        alias /data/w3/images/;
    }

      最好使用下边的方法:

    location /images/ {
        root /data/w3;
    }

     2.error_page

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

     当碰到指定的错误,指定不同的URL,当前级别没有指定error_page指令将从上一级别继承.uri允许包含变量.
    例如

    error_page 404             /404.html;
    error_page 500 502 503 504 /50x.html;

     而且,可以改变响应代码为其他,使用"=response"语法,例如:

    error_page 404 =200 /empty.gif;

    如果一个错误应答从代理服务器或者FastCGI/uwsgi/SCGI这些服务,并且这些服务会返回一些不同的相应代码(例如:200,302,401 or 404),可以应答它们返回的代码.:

    error_page 404 = /404.php;

    也可以使用重定向:

    error_page 403      http://example.com/forbidden.html;
    error_page 404 =301 http://example.com/notfound.html;

    在这种情况下,默认,响应代码302返回给客户端,他只能改变一个重定向代码状态(301,302,303和307)
    如果不需要改变URL,也可以使用内部重定向,通过location命名的错误处理:

    location / {
        error_page 404 = @fallback;
    }
    
    location @fallback {
        proxy_pass http://backend;
    }

    如果uri处理会导致一个错误,最后发生错误的状态码返回给客户端。

    3. keepalive_requests 

    Syntax:    keepalive_requests number;
    Default:    
    keepalive_requests 100;
    Context:    http, server, location
    This directive appeared in version 0.8.0.

    设置最大的长连接服务数,大于这个数的请求将被关闭

    3.keepalive_timeout

    Syntax:    keepalive_timeout timeout [header_timeout];
    Default:    
    keepalive_timeout 75s;
    Context:    http, server, location

    第一个参数设置了一个长连接可以在服务端停留的时间. 0 代表禁止长连接连接.第二个可选参数设置了一个值在"keep-alive:timeout=time" 响应头字段.
    这个“Keep-Alive: timeout=time” 头字段被 Mozilla 和 Konqueror 认可,60秒后客户端自己断开长连接.

    4. listen

    Syntax:    listen address[:port] [default_server] [ssl] [spdy] [proxy_protocol] [setfib=number] [fastopen=number] [backlog=number] [rcvbuf=size] [sndbuf=size] [accept_filter=filter] [deferred] [bind] [ipv6only=on|off] [reuseport] [so_keepalive=on|off|[keepidle]:[keepintvl]:[keepcnt]];
    listen port [default_server] [ssl] [spdy] [proxy_protocol] [setfib=number] [fastopen=number] [backlog=number] [rcvbuf=size] [sndbuf=size] [accept_filter=filter] [deferred] [bind] [ipv6only=on|off] [reuseport] [so_keepalive=on|off|[keepidle]:[keepintvl]:[keepcnt]];
    listen unix:path [default_server] [ssl] [spdy] [proxy_protocol] [backlog=number] [rcvbuf=size] [sndbuf=size] [accept_filter=filter] [deferred] [bind] [so_keepalive=on|off|[keepidle]:[keepintvl]:[keepcnt]];
    Default:    
    listen *:80 | *:8000;
    Context:    server

    这个语法有点多...
    监听ip地址和端口.

    样例:

    listen 127.0.0.1:8000;
    listen 127.0.0.1;
    listen 8000;
    listen *:8000;
    listen localhost:8000;
    
    # IPv6
    listen [::]:8000;
    listen [::1];
    
    # sockets
    listen unix:/var/run/nginx.sock;

     默认使用80端口.
    5.location

    Syntax:    location [ = | ~ | ~* | ^~ ] uri { ... }
    location @name { ... }
    Default:     —
    Context:    server, location
  • 相关阅读:
    Linux使用手册
    Oracle&SQL使用记录
    docker的使用
    springboot与mybatis
    JavaScript与TypeScript总结
    React总结
    React与jsplumb
    DB2入门
    吾尝终日而思矣——2019.02.17
    吾尝终日而思矣——2019.02.12
  • 原文地址:https://www.cnblogs.com/idnf/p/4616127.html
Copyright © 2011-2022 走看看