我正在执行给定的请求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
。
1条答案
按热度按时间xyhw6mcr1#
您可以将第一个位置嵌套到
/
中。然后在嵌套的位置块中设置特定的配置。这里有一个示例(尚未测试):字符串