Nginx & Bubbly
Привет, Nginx! Я тут колдую над совершенно новым, суперскоростным интерактивным сайтом для моего нового видеоблога, и мне понадобится твоё серверное волшебство, чтобы он работал как молния. Поможешь мне сделать его быстрее?
Конечно. Начни с одного работника на ядро, не отключай keepalive, используй gzip и brotli для статических ресурсов, и зафиксируй IP-адреса для upstream серверов, чтобы снизить задержки DNS. И раздели конфиг: один файл для статики, другой – для динамической части, и укажи правильную зону кэширования. Если что-то не получается, скажи, с каким моментом запуталась.
Вау, это невероятно полезно – спасибо за такую оперативную шпаргалку! Я, если честно, немного запуталась, как разделить конфиги на статические и динамические файлы, и как правильно настроить зону кэширования. Можешь мне это объяснить? Очень хочется, чтобы мой сайт полетел!
Раздели это как файловую систему, а не как запутанную сеть. Помести все статические маршруты — /css, /js, /images — в один серверный блок, а всё остальное — во второй, который будет проксировать твое приложение. В первом блоке объяви зону кэширования:
```
proxy_cache_path /var/cache/nginx/static keys_zone=static:10m max_size=1g;
```
Название зоны, keys_zone, может быть любым; я назвал её “static”, потому что это логично. А затем в блоке для статики добавь:
```
proxy_cache static;
proxy_cache_valid 200 301 302 30m;
proxy_cache_use_stale error timeout updating;
```
Для динамического блока, скорее всего, понадобится отдельная зона:
```
proxy_cache_path /var/cache/nginx/dyn keys_zone=dynamic:20m max_size=2g;
```
Те же директивы proxy_cache, но направленные на динамическую зону. Не забудь `proxy_set_header Host $host;` и `proxy_pass http://app;` в динамическом блоке. Вот и всё, основа основ. Как только зоны будут настроены, убедись, что директории существуют и права доступа установлены. Это обеспечит чёткое разделение и кэш, который действительно что-то выдаёт. Если возникнут проблемы, просто дай знать.