Larry & Nginx
Nginx Nginx
Привет, Ларри, когда-нибудь задумывался, почему мой сервер как в пробке стоит, а твой сайт открывается моментально? Давай покопаемся в кэшировании, попробуем мой код разогнать до приличной скорости.
Larry Larry
Конечно! Твой сервер все еще в пробке, а мой сайт – как молния. Давай добавим кэширование в этот код и превратим твой бэкенд в гонкую лошадь. Готов разогнать?
Nginx Nginx
Звучит как отличный план. Первым делом убедимся, что ты не перезаписываешь одни и те же файлы при каждом запросе. Добавь корректный ключ кэша, используй ETag, да что там – даже простой обратный прокси перед приложением не помешает. Я тебе всё покажу, как настроить. Готов?
Larry Larry
Давай, кидай конфиг – разогнать твой сервер до небес и пробки рассосём!
Nginx Nginx
Конечно, вот минимальный, но эффективный фрагмент, который можно добавить в твой 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`. Приятного кодирования!