Nginx内置变量

$host:请求中的主机头(Host)字段,如果请求中的主机头不可用或者空,则为处理请求的server名称
$http_HEADER : HTTP请求头中的内容,HEADER为HTTP请求中的内容转为小写,
-变为_(破折号变为下划线),例如:$http_user_agent(Uaer-Agent的值)
$remote_addr 客户端的IP地址。
$remote_port 客户端的端口。
$request_method 这个变量是客户端请求的动作,通常为GET或POST。
$request_uri 这个变量等于包含一些客户端请求参数的原始URI
$scheme 所用的协议,比如http或者是https
$server_name 服务器名称。
$server_port 请求到达服务器的端口号。
$server_protocol 请求使用的协议,通常是HTTP/1.0或HTTP/1.1。
$uri 请求中的当前URI(不带请求参数,参数位于$args)

if语句,常用正则

= ,!= 比较的一个变量和字符串。
~, ~* 与正则表达式匹配的变量,如果这个正则表达式中包含
-f,!-f 检查一个文件是否存在。
-d, !-d 检查一个目录是否存在。
-e,!-e 检查一个文件、目录、符号链接是否存在。
-x, !-x 检查一个文件是否可执行。

静态资源: location ~ /rex/.*.(htm|js|css)$

域名校验:if ( $http_origin ~ http://(.*).enjoy.com)/)

浏览器校验:if ($http_user_agent ~ Firefox)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
server {

listen 80;
server_name test.enjoy.com;

#set $flag 0;
##if ($flag = 0) {
# return 501;
#}

#客户端请求的完整请求路径
#if ( $request_uri ~* /(.*)\.php ) {
# return 502;
#}

if (!-f $request_filename) {
return 414;
}

#禁止chrome访问
#if ($http_user_agent ~ Chrome) {
# return 503;
#}

location /loct {
return 401;
}
location / {
#if
root html;
index index.html;
}

}