# 条件1
if ($http_user_agent ~* "(compatible; MSIE 9.0; Windows NT 6.1)") {
set $black "${black}1";
# 条件2
if ($uri ~* "/tools/sendSms" ) {
set $black "${black}1";
# 条件3 "逻辑与"为变量叠加的形式,既条件为真设置值为1.
if ($request_method = POST) {
set $black "${black}1";
# 条件3 "逻辑或",如任意一个条件为假设置值为0.
if ($request_method != POST) {
set $black "${black}0";
# 叠加后的变量值,"逻辑与"111,"逻辑或"110.
if ($black = "111") {
return 405;
使用
POST
方法,服务器返回
405
状态。
curl -LI -X "POST" -A "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1)" "http://localhost/tools/sendSms?type=mobilephone&mobilephone=1597XXXXX06"
HTTP/1.1 405 Not Allowed
Server: nginx
#...省略
其它方法(GET/HEAD
),服务器返回 200
状态。
curl -LI -A "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1)" "http://localhost/tools/sendSms?type=mobilephone&mobilephone=1597XXXXX06"
HTTP/1.1 200 OK
Server: nginx
#...省略
return
语法: return code
默认值: none
使用字段: server, location, if
这个指令结束执行配置语句并为客户端返回状态代码,可以使用下列的值:
204,400,402-406,408,410, 411, 413, 416与500-504。
此外,非标准代码444将关闭连接并且不发送任何的头部。
语法: set variable value
默认值: none
使用字段: server, location, if
指令设置一个变量并为其赋值,其值可以是文本,变量和它们的组合。
你可以使用set定义一个新的变量,但是不能使用set设置$http_xxx头部变量的值