Настройка кеширование в nginx

Настройка кеширования

Для оптимизации скорости работы платформы Luxms BI можно настроить кеширование ответов с помощью nginx.

В самом начале`файла /opt/luxmsbi/conf/nginx/nginx.conf необходимо
добавить:

worker_processes        4;
worker_rlimit_nofile    100000;

events {
   worker_connections  10240;
   use                 epoll;
}

Для этого в секцию в http в файле /opt/luxmsbi/conf/nginx/nginx.conf необходимо добавить:

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=tag:10m inactive=60m max_size=1g;

map $http_cookie $bi_session {
   default "";
   "~*LuxmsBI\-User\-Session=(?<cookie_value>[^;]+)" $cookie_value;
}

также требуется создать папку /var/cache/nginx с правами на запись

mkdir -p /var/cache/nginx

chown bi:bi /var/cache/nginx

В /opt/luxmsbi/conf/nginx/conf.d/entrypoint.conf добавить настройки (данный location должен быть расположен выше, определенного location-a ^/(api|srv) ):`

location ~ ^(?!(?:/api/auth/.*|/srv/reports/.*)$)(?:/api/|/srv/).*$ {
   # Add caching:
   proxy_buffering      on;
   proxy_cache          tag;
   proxy_cache_valid    60m;
   proxy_cache_methods  GET POST;
   proxy_cache_key      "$request_uri$bi_session$request_body$args";
   add_header           X-Cached $upstream_cache_status;
   proxy_pass            http://lua-webapi;
   proxy_redirect        off;
   proxy_buffers         10 128k;
   proxy_buffer_size     128k;
   proxy_max_temp_file_size 0;
   proxy_set_header      X-Real-IP $remote_addr;
   proxy_set_header      Host $host;
   proxy_set_header      X-Forwarded-For $proxy_add_x_forwarded_for;
}