使用proxy_pass的Nginx位置不工作

jvlzgdj9  于 6个月前  发布在  Nginx
关注(0)|答案(1)|浏览(74)

我正在执行给定的请求http://example.com/my/route/bar,请求体有5M,所以想使用client_max_body_size 0M作为路由/my/route/*。但是当我在nginx中有proxy_pass时,我很难让nginx使用我的自定义位置。
在第一个场景中,我得到了一个'413 Request Entity Too Large'响应,这意味着第一个位置不匹配,并且nginx正在使用默认位置。

location /my/route {
    client_max_body_size 0M;

    proxy_buffer_size          128k;
    proxy_buffers              4 256k;
    proxy_busy_buffers_size    256k;

    proxy_set_header X-Forwarded-Proto https;

    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header Host $host;

    proxy_pass http://fabio:9999;
}

location / {

    proxy_buffer_size           128k;
    proxy_buffers               4 256k;
    proxy_busy_buffers_size     256k;

    proxy_set_header X-Forwarded-Proto https;

    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header Host $host;

    proxy_pass http://fabio:9999;
}

字符串
但是如果使用以下场景(将proxy_pass http://fabio:9999;更改为return 404;),则请求返回404,这是预期的响应。

location /my/route {
    client_max_body_size 0M;

    proxy_buffer_size          128k;
    proxy_buffers              4 256k;
    proxy_busy_buffers_size    256k;

    proxy_set_header X-Forwarded-Proto https;

    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header Host $host;

    return 404;
}

location / {

    proxy_buffer_size           128k;
    proxy_buffers               4 256k;
    proxy_busy_buffers_size     256k;
    proxy_set_header X-Forwarded-Proto https;

    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header Host $host;

    proxy_pass http://fabio:9999;
}


我在第一个场景中做错了什么?我需要使用proxy_pass匹配location /my/route

xyhw6mcr

xyhw6mcr1#

您可以将第一个位置嵌套到/中。然后在嵌套的位置块中设置特定的配置。这里有一个示例(尚未测试):

location / {
    location /my/route {
        client_max_body_size 0M;
    }

    proxy_buffer_size           128k;
    proxy_buffers               4 256k;
    proxy_busy_buffers_size     256k;
    proxy_set_header X-Forwarded-Proto https;

    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header Host $host;

    proxy_pass http://fabio:9999;
}

字符串

相关问题