带有 proxy_pass 的 Nginx 位置不起作用

问题描述 投票:0回答:1

我正在执行给定的请求

http://example.com/my/route/bar
,请求正文有5M,所以想使用
client_max_body_size 0M
作为路线
/my/route/*
。但是当我在其中有
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;
}

在第一个场景中我做错了什么?我需要使用

location /my/route
来匹配
proxy_pass

nginx nginx-reverse-proxy nginx-location
1个回答
0
投票

您可以将两个位置合并为一个并将我的根嵌套到

/
中。然后在嵌套位置块中设置具体配置。 这是一个例子(尚未测试):

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;
}
© www.soinside.com 2019 - 2024. All rights reserved.