nginx的if指令介绍

~  模糊匹配,区分大小写
~* 不区分大小写
!~ 不匹配
=  精确匹配
# 如果用户浏览器是 Internet Explorer(User-Agent 包含 MSIE),则将请求重写到 /msie/ 目录下。
if ($http_user_agent ~ MSIE) {
    rewrite ^(.*)$ /msie/$1 break;
}

# 从 Cookie 中匹配 id=xxx 的值,并存入变量 $id。
if ($http_cookie ~* "id=([^;]+)(?:;|$)") {
    set $id $1;
}

# 如果请求方法是 POST,直接返回 HTTP 405(Method Not Allowed)。
if ($request_method = POST) {
    return 405;
}

# 如果 $slow 变量为真(需在其他地方定义),限制响应速率为 10KB/s。
if ($slow) {
    limit_rate 10k;
}

# 如果 $invalid_referer 为真(请求来源不在白名单内),返回 HTTP 403(Forbidden)。
if ($invalid_referer) {
    return 403;
}
posted @ 2025-08-14 23:32  阿峰博客站  阅读(24)  评论(0)    收藏  举报