Я объясню свой вопрос...
У меня нормально работает веб-приложение Node.js. У меня есть балансировщик нагрузки в AWS (эластичная балансировка нагрузки, классический режим) с группой автоматического масштабирования с несколькими экземплярами EC2.
В каждом экземпляре EC2 установлен обратный прокси-сервер Nginx, который отлично работает с PM2 и Node.js (Express). Я использую Nginx для кэширования статических файлов, кэширования запросов, https и прочего.
Мне нужно знать, как я могу разделить кеш между всеми экземплярами с помощью Nginx, а не использовать каждый кеш памяти на каждой машине. Я хотел бы использовать Memcache или Redis, но мне нужно выбрать один, я предпочитаю Redis.
Это пример того, как я работаю в данный момент (просто важный код):
proxy_cache_path /cache/nginx levels=1:2 keys_zone=cache_zone_name:10m;
location / {
#root html;
#index index.html index.htm;
#Config proxy inverse cache
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
# Add cache debugging header
add_header X-Cache-Status $upstream_cache_status;
# Configure cache
proxy_cache cache_zone_name;
proxy_cache_valid any 1m;
proxy_cache_key $scheme$host$request_uri;
}
Я нашел этот вопрос в ServerFault без ответа.
Спасибо!
Редактировать: Важное примечание, мне нужно решение, которое не влияет на производительность :)