Larry & Nginx
Привет, Ларри, когда-нибудь задумывался, почему мой сервер как в пробке стоит, а твой сайт открывается моментально? Давай покопаемся в кэшировании, попробуем мой код разогнать до приличной скорости.
Конечно! Твой сервер все еще в пробке, а мой сайт – как молния. Давай добавим кэширование в этот код и превратим твой бэкенд в гонкую лошадь. Готов разогнать?
Звучит как отличный план. Первым делом убедимся, что ты не перезаписываешь одни и те же файлы при каждом запросе. Добавь корректный ключ кэша, используй ETag, да что там – даже простой обратный прокси перед приложением не помешает. Я тебе всё покажу, как настроить. Готов?
Давай, кидай конфиг – разогнать твой сервер до небес и пробки рассосём!
Конечно, вот минимальный, но эффективный фрагмент, который можно добавить в твой nginx.conf:
```http {
# Кэшируем статические ресурсы на неделю
map $uri $static_cache {
~*\. (css|js|png|jpg|jpeg|gif|svg)$ 1;
default 0;
}
server {
listen 80;
server_name yourdomain.com;
# Статические файлы
location ~* \.(css|js|png|jpg|jpeg|gif|svg)$ {
expires 7d;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
try_files $uri $uri/ =404;
}
# API или динамический контент
location / {
proxy_pass http://127.0.0.1:3000; # твой бэкенд
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_set_header X-Forwarded-Proto $scheme;
# Короткая кэш-память на 5 секунд, чтобы сгладить пики нагрузки
add_header Cache-Control "private, max-age=5";
}
# Логирование – делай это кратко
access_log /var/log/nginx/access.log combined buffer=32k flush=1m;
error_log /var/log/nginx/error.log warn;
}
}
```
Попробуй это, а потом скажи, как ты оцениваешь трафик. Если будут какие-то сбои, можем подкрутить таймауты или настройки `proxy_cache`. Приятного кодирования!