Я заметил, что когда кто-то отправляет большой файл на веб-сайт Apache через прокси-сервер Nginx, использование диска на машине Nginx увеличивается. Это особенно заметно, когда кто-то загружает файл, размер которого превышает размер диска машины Nginx. Возникает очевидный вопрос: что, если кто-то загрузил, допустим, файл размером 500 ГБ, в то время как виртуальная машина Nginx имеет только 10 ГБ диска. Это не такой уж абстрактный сценарий, учитывая, что это наше частное облако, которое мы используем для отправки образов виртуальных машин (файлов .vmdk или .ova), которые обычно имеют размер 10+ гигабайт.
Я уже использую:
proxy_buffering off;
proxy_no_cache 1;
в области http. Но, похоже, это не влияет на загруженные файлы (только на загруженные). Можно ли отключить кеширование POST?
По умолчанию nginx ничего не кеширует в своем прокси-кеше. Он даже не настроен. Итак, если вы настроили его и если вы настроили кеширование, вы должны знать, как его отключить, и это не сарказм: раз вы просите способ сделать это - использование вашего диска, вероятно, растет по другим причинам, кроме заявлено; не из-за кеширования. Nginx может буферизовать избыточные данные POST на диске, но они удаляются, как только передача заканчивается.
Другой возможный сценарий - у вас есть настроенный кем-то веб-сервер. Тогда вы должны проверить proxy_cache <zonename>
директивы. Но я сомневаюсь, что последнее действительно.
Вы можете легко определить, что потребляет диск, выполнив серию du -h -d 1 /
команды, заменяющие /
на каждой итерации с более конкретным интересующим путем.