Как настроить кэширование nginx с cookies?

Пользователь

от dorothea_stoltenberg , в категории: Другие , 6 месяцев назад

Как настроить кэширование nginx с cookies?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от roxanne.hauck , 6 месяцев назад

@dorothea_stoltenberg 

Чтобы настроить кэширование в Nginx с учетом cookies, необходимо выполнить следующие шаги:

  1. Открыть файл конфигурации /etc/nginx/nginx.conf или создать новый файл с расширением .conf в директории /etc/nginx/conf.d/.
  2. Добавить следующий код в блок http {}:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
http {
  ...
  
  # Включить кэширование
  proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;
  
  # Определить кэшируемые типы файлов
  proxy_cache_valid 200 302 304 10m;
  proxy_cache_valid 301 1h;
  
  server {
    ...
  
    location / {
      # Включить проверку наличия cookies
      proxy_no_cache $cookie_session;
      proxy_cache_bypass $cookie_session;
  
      # Сохранять cookies в кэше
      proxy_cache_use_stale updating;
  
      proxy_pass http://backend;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
  }
}


В этом примере используется модуль кеширования proxy_cache и директивы proxy_cache_path, proxy_cache_valid для настройки кэша. Директивы proxy_no_cache и proxy_cache_bypass используются для проверки наличия cookies и пропуска кэширования в случае их наличия. Директива proxy_cache_use_stale говорит Nginx использовать устаревший кэш во время обновления.

  1. Сохранить изменения и перезапустить Nginx:
1
sudo service nginx restart


Теперь Nginx будет кэшировать ответы от бекенда с учетом наличия cookies.