nginx Compatibility: делаем WordPress дружелюбнее к nginx
Программное решение досадных мелочей с nginx
Переведя несколько сайтов с Apache на nginx, уже который раз встречаю подводные камни. Один из них — нежелание WordPress понимать код редиректа, другая — постоянные попытки использовать PATHINFO-пермалинки вместо «нормальных» (pretty permalinks).
Неудобно каждый раз лезть в код WordPress, чтобы поправить очередную несовместимость, поэтому я написал небольшой плагин.
Будучи активированным, плагин устанавливает собственные обработчики событий только в том случае, если сервер работает под управлением nginx, поэтому плагин без вреда (но и без всякой пользы) можно активировать на сервере с Apache — конфликтов не будет.
Текущая версия плагина решает следующие проблемы:
- Когда WordPress обнаруживает, что используется FastCGI SAPI, он отказывается посылать коды перенаправления, отличные от 302. Это приводит к тому, что при использовании неканонических ссылок PageRank от «неканонической» страницы не передаётся «канонической». Я где-то читал, что использование кода 302 для склеивания страниц может караться поисковиками; так это или нет, утверждать не берусь. Плагин исправляет этот недочёт WordPress методом, аналогичным описанному здесь: только вместо физического исправления файла функция
wp_redirect()просто переопределяется в другом файле. - Страница настроек постоянных ссылок полагается на наличие
mod_rewrite: если он загружен, используются красивые ссылки, если нет — используются «почти» красивые ссылки вида PATHINFO. Что же, разработчики пользуются Apache. Так как nginx не использует модули и API Apache, функция, проверяющая наличиеmod_rewrite, скажет, что он не загружен. Тем не менее, nginx умеет переписывать адреса, и использование PATHINFO не оправдано. Поэтому плагин «заставляет» WordPress думать, чтоmod_rewriteвсё-таки загружен и можно использовать нормальные постоянные ссылки.
Скачать nginx Compatibility 0.1.
Автор: Vladimir; опубликовано в: nginx, Плагины WordPress; метки: FastCGI, mod_rewrite, nginx, redirect, WordPress, плагинАпр
2009
Комментарии к статье «nginx Compatibility: делаем WordPress дружелюбнее к nginx» (7) »
Пожалуйста, не используйте эту форму для комментирования! Данная форма предназначена исключительно для ботов.
Оставить комментарий к записи «nginx Compatibility: делаем WordPress дружелюбнее к nginx»
गते गते पारगते पारसंगते बोधि स्वाहा
Меня зовут Владимир, я программист-фрилансер, специализирующийся на Web-программировании и програмировании под Linux.
По совместительству занимаюсь администрированием LAMP/LNMP-серверов и техническим переводом.


Как совпало. Только-только назрел этот вопрос. Посмотрим, как плагин себя покажет. Но заранее спасибо.
[...] для nginx есть лучший способ: плагин nginx Compatibility. [...]
[...] для nginx есть лучший способ: плагин nginx Compatibility. [...]
Works great, thank you
You are welcome!
Не понятно почему, но у меня связка Nginx+php-fpm работает медленее, чем Nginx+Apache+mod_php. Долго бился (точнее учился:), чтобы заработало Nginx+php-fpm с Wp-SuperCache и WpTouch, а в результате генерирует html чуть медленее, чем Апач.
Может как-то надо «очень правильно» php-fpm настроить?
Можно попробовать увеличить количество процессов в пуле.