Pull to refresh

Nginx boilerplate: Быстрая и изящная настройка nginx

Reading time 1 min
Views 38K
Хочу поделиться своими наработками по настройке nginx, которые, возможно, помогут кому-то при старте нового проекта или избавят от необходимости копипастить очередной vhost.

Я отметил две проблемы подавляющего числа конфигов nginx'а, попадавших мне на глаза:
  • «Всё в одном файле»
  • Дублирование настроек

С помощью моего подхода, надеюсь, эти и многие другие проблемы будут устранены.

Перед тем как собрать все наработки в отдельный проект я искал нечто подобное, но ничего стоящего не нашлось.

Проект назвался «Nginx boilerplate». И, по аналогии с HTML5 Boilerplate, он служит для быстрого старта при настройке нового виртуального хоста.

По сути это набор конфигов, который предоставляет:
  • Логичную разветвлённую структуру файлов конфигурации nginx
  • Оптимизацию дефолтных настроек
  • Шаблоны для ограничения частоты запросов и количества соединений
  • Кеширование ответа бэкенда на уровне веб-сервера
  • Ряд предопределённых location'ов для различных задач и требований
  • Улучшенное логирование


Для примера — так на данный момент выглядит дефолтный server:

server
{
    listen          80 default_server;
    server_name     "";
    root            /var/www/nginx-bp/test/www/;

    include         nginx-bp/cache.conf;
    include         nginx-bp/limits/methods.conf;

    include         nginx-bp/locations/php.conf;
    include         nginx-bp/locations/favicon.conf;
    include         nginx-bp/locations/static.conf;
    include         nginx-bp/locations/system.conf;

    location /
    {
        include     nginx-bp/logs/bots.conf;
    }
}


Если у вас есть крутые рецепты для nginx — присоединяйтесь!

Ссылки:

Tags:
Hubs:
+67
Comments 31
Comments Comments 31

Articles