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
原文地址:https://www.cnblogs.com/idnf/p/4616127.html