You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Nginx命名location中的特定路由设置client_max_body_size

Nginx 路由请求体大小限制配置方案

核心思路

  • 先在 server 或 http 级别设置全局请求体大小为无限制(或足够大的值),让大部分路由默认不受限制
  • 为 /api/photo/upload 单独创建精确匹配的 location 块,设置 10MB 的请求体大小限制后转发到命名 location @nodejs
  • 其他 /api/* 路由直接转发到 @nodejs,继承全局的无限制规则

完整配置示例

server {
    listen 80;
    server_name www.mywebsite.com;

    # 全局默认:不限制请求体大小(也可设为 100M 这类大值)
    client_max_body_size 0;

    # 精确匹配图片上传路由,单独应用10MB限制
    location = /api/photo/upload {
        client_max_body_size 10M;
        proxy_pass @nodejs;
        include proxy_params; # 复用统一的代理参数配置(如Host、IP转发头等)
    }

    # 匹配其他/api开头的路由,无请求体大小限制
    location /api/ {
        proxy_pass @nodejs;
        include proxy_params;
    }

    # 命名location:统一处理所有Node.js转发请求
    location @nodejs {
        proxy_pass http://localhost:3000; # 替换为你的Node.js服务地址
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

关键细节说明

  • client_max_body_size 0; 表示完全不限制请求体大小,若担心无限制风险,可设为 100M 这类远大于业务需求的数值
  • 精确匹配 location = /api/photo/upload 优先级最高,会优先拦截上传请求,确保10MB限制仅作用于该路由
  • 所有路由最终统一转发到 @nodejs,保证业务逻辑由Node.js统一处理,避免配置分散

内容的提问来源于stack exchange,提问作者davidesp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 19:10:34