Минимальный стек для статики на nginx
Для личного сайта с десятком страниц не нужен ни сборщик, ни CMS, ни база данных. Нужны статические файлы и nginx, настроенный так, чтобы отдавать их максимально быстро.
Базовый server block
Минимальная конфигурация выглядит примерно так:
server {
listen 80;
listen [::]:80;
server_name example.com;
root /var/www/blog;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
Сжатие и кеш
Дальше — два пункта, которые дают основной прирост скорости: gzip для текстовых файлов и заголовки кеширования для статики, которая редко меняется.
gzip on;
gzip_types text/css text/html application/javascript;
gzip_min_length 256;
location ~* \.(css|js|svg|woff2)$ {
expires 30d;
add_header Cache-Control "public, immutable";
}
Этого достаточно, чтобы страница открывалась практически мгновенно — без CDN и без лишней инфраструктуры.
HTTPS
Сертификат проще всего получить через certbot с автоматическим обновлением — это отдельная тема, но в двух словах: certbot --nginx -d example.com закрывает большинство случаев без ручной возни с конфигом.