Контроллер Nginx Ingress на k8s - расположение временных файлов в хранилище?
Где контроллер входящего трафика NGINX хранит временные файлы?
Это сообщение, которое он мне дает, и я почти уверен, что он хранит файл на томе, прикрепленном к одному из моих модулей:
2021/09/27 20:33:23 [warn] 33#33: *26 a client request body is buffered to a temporary file /var/cache/nginx/client_temp/0000000002, client: 10.42.1.0, server: _, request: "POST /api/adm/os/image HTTP/1.1", host: "vzredfish.cic.shidevops.com", referrer: "https://vzredfish.cic.shidevops.com/setting"
Но когда я захожу в папку / var / cache / nginx / client_temp, там ничего нет.
Я тоже проверил модули входящего контроллера, и там тоже есть еще один.
Я хотел бы знать, чтобы устранить возникшую у нас проблему, когда я пытаюсь загрузить файл непосредственно в память модуля, но вместо этого он сначала загружает его во временное место.
Спасибо за помощь
Данило
2 ответа
Я хочу поблагодарить Якуба Семашко за указатель, который частично стал решением.
Наше приложение развернуто в кластере k8s, у нас есть контроллер nginx и экземпляр nginx в одном из подов. Проблема, с которой я столкнулся, была связана с nginx в модуле, а не с контроллером (я менял директивы и ключи в контроллере)
В nginx внутри модуля мне пришлось изменить nginx.conf и добавить следующее как в HTTP, так и в местоположение
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
client_max_body_size 25000M;
proxy_buffering off;
proxy_ignore_client_abort on;
proxy_read_timeout 3600;
proxy_http_version 1.1;
proxy_connect_timeout 3600;
proxy_send_timeout 3600;
fastcgi_send_timeout 3600;
fastcgi_read_timeout 3600;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
sendfile off;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
server {
listen 80 default_server;
server_name _;
root /usr/share/nginx/html;
index index.html;
location /api {
return 302 /api/;
}
location /api/ {
proxy_pass http://backend:3000/;
}
location /downloads {
autoindex on;
}
location / {
try_files $uri $uri/ /index.html;
proxy_read_timeout 3600;
proxy_http_version 1.1;
proxy_connect_timeout 3600;
proxy_send_timeout 3600;
fastcgi_send_timeout 3600;
fastcgi_read_timeout 3600;
}
}
include /etc/nginx/conf.d/*.conf;
}
Это исправило 504 ошибки (я все еще вижу 499, но он может завершить загрузку больших файлов).
Что касается местоположения временного файла, это все еще загадка, но нам больше не нужно это отслеживать.
Отвечая на Ваш вопрос , косвенно, кажется , есть несколько способов , пропускаемых прокси - буферизацию для достижения вашей цели загрузки файла непосредственно в память стручка, я нашел интересную статью здесь , посмотрите на прокси - буферного Отключить раздел.