php-fpm + nginx

вопросы по устройству ВДС, ресурсам, предустановленному софту и т.д.

Модераторы: Art.i, garry

php-fpm + nginx

Сообщение Flector » Сб мар 18, 2017 2:25 pm

установил альтернативную версию php 7.0 (сервер CentOS 7 с php 5.4.16 нативным), включил для него opcache.
все буквально летает, все отлично.
столкнулся с первой проблемой - не работают пермалинки в wordpress.
ну гугл в помощь, вопрос решился элементарным добавлением:

Код: выделить все
location / {
    try_files $uri $uri/ /index.php?$args;
}

вторая проблема - не обновляется контент страниц при их изменении.
то есть зашел я в админку движка, изменил статью - во фронтэнде по-прежнему отдается старая статья.
помогает банальный F5 в браузере, но вы понимаете - не заставлять же пользователей все время жать на F5?
выяснилось, что это виноват не opcache (я на него грешил), а настройка кэширования самого nginx.
потому что при включении кэширования для сайта с "php как модуль apache" панель прописывала код:

Код: выделить все
location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
    expires 7d;
    try_files $uri $uri/ @fallback;
}

а при использовании кэширования с php-fpm панель просто дописывает в конец секции server код

Код: выделить все
expires 7d;

соответственно и сами страницы сайта попадают в браузерный кэш и без F5 не обновляются
но опять же - это не беда, ставим указанный выше код, а панельную директиву удаляем.

все вроде работает, все отлично. за одним маленьким исключением.
при любом изменении настроек панель затирает конфиг nginx своими собственными директивами.
ладно, я могу больше не трогать настройки после первоначальной настройки.
но вот в чем проблема - для сайта подключен ssl-сертификат от lets encrypt, который действителен только 3 месяца.
я правильно понимаю, что при обновлении сертификата панель влезет в настройки nginx?
потому что как-то не улыбается каждые 3 месяца ловить неработающие сайты, чтобы исправить конфиги nginx.

вот и главный вопрос - как запретить панели удалять директиву:

Код: выделить все
try_files $uri $uri/ /index.php?$args;

и не ставить

Код: выделить все
expires 7d;

вместо

Код: выделить все
location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
    expires 7d;
    try_files $uri $uri/ @fallback;
}


есть какое-нибудь решение?
Flector
 
Сообщений: 80
Зарегистрирован: Пн июн 18, 2012 10:22 am

Re: php-fpm + nginx

Сообщение Art.i » Сб мар 18, 2017 3:38 pm

Если У вас конфиг Nginx для доменов использующих связку nginx+php-fpm однообразный, тогда вы можете воспользоваться шаблонизатором:
https://doc.ispsystem.ru/index.php/Шаблонизатор_конфигурационных_файлов
Либо купить для домена нормальный SSL сертификат. Либо обновлять сертификат вручную, минуя панель.
Не забывайте оценивать качество работы технической поддержки.
Art.i
Support team
 
Сообщений: 700
Зарегистрирован: Ср сен 25, 2013 2:07 pm

Re: php-fpm + nginx

Сообщение Flector » Сб мар 18, 2017 5:20 pm

огромное спасибо, помогло.
хотя непонятно, почему пермалинки не включены в конфиг nginx по умолчанию.
Flector
 
Сообщений: 80
Зарегистрирован: Пн июн 18, 2012 10:22 am


Вернуться в Вопросы о работе сервера

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2