bitrix nginx php fpm

Битрикс в связке Nginx+PHP-FPM, настройка ЧПУ, а так же композитный кэш с отдачей через nginx. Доработанная конфигурация

Цель: Предоставить конфигурацию виртуального сервера Nginx для работы Битрикс-cms в связке Nginx+PHP-FPM. Который в прочем подойдёт и для связки Nginx+Apache2, с небольшими доработками.

Целевая аудитория: Администраторы серверов, продвинутые администраторы сайтов, программисты.

Cтатей на эту тему достаточно, но если смотреть не официальные, то там как правило содержатся ошибки, а в официальных полно if которые в Nginx использовать не желательно. Надеюсь после того как я выложу данный конфиг к связке Nginx+PHP-FPM станут относиться серьёзнее.

Я покажу реализацию отдачи файлового композитного кэша. В целом отдача с memcached делается по аналогии. В конфигурации отдачи файлового кэша я насчитал 11 if, от которых я и избавился переделав их на map.

Начну с упрощённого варианта ЧПУ для тех кому нужна просто связка Nginx+PHP-FPM без отдачи композитного кэша через Nginx. Подразумевается что секция server уже настроена, с доменными именами и передачей в php-fpm.

Как не удивительно смотря на те полотна конфигов которые мне попадались, этого достаточно чтобы битрикс корректно заработал. Если нужен редирект с index.php и index.html на без, то нужно ещё дописать вот эту строку:

К сожалению тут достойной замене if нет. Но данная строчка работает не создавая проблем.

Хочу подчеркнуть что это именно минималистичная конфигурация без правил для статики, сжатия, и я там прикрыл только файлы композитного кэша от прямого доступа. Конфигурация которая прикрывает определённые места от прямого доступа через nginx довольно индивидуальна. У меня есть вот такой набор который может кому-то подойти. Но использовать нужно аккуратно с осознанием дела. Учитите что внесение данных локейшенов в свою конфигурацию может привести к неработоспособности сайта или части его функций.

Читайте также:  пекарь кондитер обучение в москве

Ну и конечно пример location для статических файлов

Теперь перейдём к конфигу для работы композита с отдачей файлов кэша через nginx. Первым делом необходимо определить можно ли отдавать данному запросу композитный кэш или его нужно отправить на обработку через php. Для этого в Nginx в секции http добавим несколько map, а так же несколько директив:

Далее уже непосредственно в секции server прописываем

Ну и для понимания как примерно будет выглядеть минимальная конфигурация секции server

Источник

битрикс + nginx + php-fpm

мне увы пока так и не удалось полностью подружить эту связку.
столкнулся с проблемой заголовков(при ЧПУ), т.е. получаем либо на все 200 OK либо 404 Not Found

если интересно могу выложить конфиги.

совместными усилиями, собрали рабочий конфиг, спасибо Сергею Ляпко

UPD 23.12.2015: Добавил новый конфиг.

Старый

Evgeniy Pedan, наверно nginx кеширует страницу phpinfo() когда через админку Битрикс смотришь
/bitrix/admin/phpinfo.php?test_var1=AAA&test_var2=BBB#authorize

вот я конфиг nginx поменял, кеш видно сбросился.

Все работает, спасибо большое! Такая экономия времени.

* \.(css|js|gif|png|jpg|jpeg|ico|ogg|ttf|woff|eot|otf)$ <
error_page 404 /404.html;
expires 30d;
>
вот этим:
location

* \.(css|js|gif|png|jpg|jpeg|ico|ogg|ttf|woff|eot|otf)\?4*$ <
error_page 404 /404.html;
expires 30d;
>

Куда не вставляю location /bitrix/admin < return 404; >не работает, открывается админка

* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ < access_log off; expires max; >#+ Close some uri for security location

Собственно рабочий конфиг (для оптимизации необходимо еще добавить другой 404 для статики ну и вообще посмотреть на дебаг на предмет лишних итераций)

Источник

Образовательный портал