client_max_body_size inside if

Михаил Монашёв postmaster на softsearch.ru
Пн Ноя 11 14:23:55 UTC 2019


Здравствуйте.

Оказалось, что client_max_body_size не работает внутри if-а .

Хотел  ограничивать размер GET- и POST-запросов, не ограничивая размер
PUT-запросов,   поступающих   с  доверенных  ip.  Конфиг  планировался
примерно такой:

server {
        listen 80;
        server_name xxxxx;

        expires 1y;

        location / {
                root /xxxx/yyyyy;

                if ($request_method == PUT ) {
                        client_max_body_size 0; # disable request size checks
                }

                client_body_temp_path /xxxx/webdav-tmp;

                dav_methods PUT DELETE MKCOL COPY MOVE;
                create_full_put_path on;
                dav_access user:rw group:rw all:r;

                limit_except GET {
                        allow 127.0.0.0/8;
                        allow 10.0.0.0/8;

                        deny all;
                }
        }
}

Добавить  NGX_HTTP_LIF_CONF  в  ngx_http_core_module.c не проблема. Но
если есть возможность менять client_max_body_size внутри if-ов в самом
nginx-е,  было  бы здорово. Если против этого, конечно же, нет никаких
возражений.
-- 
С уважением,
 Михаил                          mailto:postmaster at softsearch.ru



Подробная информация о списке рассылки nginx-ru