nginx的常用运维知识点

:-}

if语句中的判断条件(nginx)

1、正则表达式匹配:

==:等值比较;
~:与指定正则表达式模式匹配时返回“真”,判断匹配与否时区分字符大小写;
~*:与指定正则表达式模式匹配时返回“真”,判断匹配与否时不区分字符大小写;
!~:与指定正则表达式模式不匹配时返回“真”,判断匹配与否时区分字符大小写;
!~*:与指定正则表达式模式不匹配时返回“真”,判断匹配与否时不区分字符大小写;

2、文件及目录匹配判断:

-f, !-f:判断指定的路径是否为存在且为文件;
-d, !-d:判断指定的路径是否为存在且为目录;
-e, !-e:判断指定的路径是否存在,文件或目录均可;
-x, !-x:判断指定路径的文件是否存在且可执行;

内置变量

从请求行中解析到的变量

变量    含义    示例
$request    整个请求行    GET /nginx-var/request-line?a=1&b=2 HTTP/1.1
$request_method    请求方法(如GET、POST)    GET
$request_uri    完整的请求URI    /nginx-var/request-line?a=1&b=2
$uri    URI,除去查询字符串    /nginx-var/request-line
$document_uri    同$uri    /nginx-var/request-line
$args    查询字符串    a=1&b=2
$query_string    同$args    a=1&b=2
$server_protocol    请求协议(如HTTP/1.0 HTTP/1.1)    HTTP/1.1
$arg_name    请求行中name参数的值    $arg_a = 1 , $arg_b = 2

从请求头中解析到的变量

变量    含义    示例
$host    该变量按如下优先级获得:请求行中解析到的host、请求头“Host”中的host、配置文件中匹配到的server_name    invo.com
$remote_addr    客户端ip地址    127.0.0.1
$remote_port    客户端端口    4204
$http_user_agent    用户代理(“User-Agent”请求头的值)    Mozilla/5.0 (Windows NT 6.1; rv:50.0) Gecko/20100101 Firefox/50.0
$http_cookie    “Cookie”请求头的值    CA=abc;CB=123
$cookie_name    Cookie中名为name的值    $cookie_CA=abc, $cookie_CB=123
$http_referer    “Http-Referer”请求头的值    http://invo.com

其它内置变量

变量    含义    
$body_bytes_sent    发给客户端的数据大小,以字节计,不包括http报头    
$bytes_sent    发给客户端的数据大小,以字节计    
$status    http响应状态码    
$request_time    请求处理时间    
$upstream_response_time    从与upstream建立连接到收到最后一个字节所经历的时间(nginx做反向代理服务器时可用)    
$upstream_connect_time    与upstream建立连接所消耗的时间(nginx做反向代理服务器时可用)