Хочу поделиться своими наработками по настройке 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 — присоединяйтесь!
Ссылки:
Автор: Umkus