Nginx的return关键字属于HttpRewriteModule模块:

语法:return http状态码
默认值:无
上下文:server,location,if

该指令将结束执行直接返回http状态码到客户端.

支持的http状态码:200, 204, 400, 402-406, 408, 410, 411, 413, 416 , 500-504,还有非标准的444状态码.

使用方法:

#不符合规则的返回403禁止访问

location /download/ {
    rewrite  ^(/download/.*)/media/(.*)\..*$  $1/mp3/$2.mp3  break;
    return   403;
}

小技巧

这些小技巧都是wiki里没有介绍的,而系统却是支持的。

如下配置文件:

server {
    server_name  test.54php.cn;
    listen  80;
    location / {
        add_header Content-Type "text/plain;charset=utf-8";
        return 200 "Your IP Address:$remote_addr";
    }
}

执行请求:

$ curl -i http://test.54php.cn

返回内容如下:

HTTP/1.1 200 OK
Server: nginx/1.0.13
Date: Thu, 10 May 2012 10:01:15 GMT
Content-Type: application/octet-stream
Content-Length: 30
Connection: keep-alive
Content-Type: text/plain;charset=utf-8

Your IP Address:123.128.217.19