Включите nginx `client_body_in_file_only` только для метода PUT
Я создаю webdav-приложение с nginx в качестве внешнего интерфейса. Для уменьшения дисковых операций при загрузке я включаю client_body_in_file_only
, Проблема в том, что это заставляет nginx записывать все тела запросов и замедляет небольшие запросы (например, запросы PROPFIND).
Есть ли способ сделать nginx client_body_in_file_only=on
только для методов PUT?
1 ответ
Решение
Если $request_method равен "PUT", верните "588", который будет обрабатываться указанным блоком местоположения, который имеет client_body_in_file_only=on;
,
server {
error_page 588 = @saveinfile;
if ($request_method = PUT) {
return 588;
}
location / {
# the usual stuff..
}
location @saveinfile {
client_body_in_file_only on;
# the usual stuff..
}
}