Cache revalidation using If-None-Match

Gena Makhomed gmm at csdoc.com
Thu Jul 17 18:44:35 UTC 2014


On 17.07.2014 16:46, S.A.N wrote:

> Если вы посмотрите на причины, из-за которых начинают программировать
> в конфигах Nginx, то причина одна, бекенд что-то не так делает.

"бекенд что-то не так делает" - это уже следствия.

А причина в том, что большинство приложений на PHP
написаны изначально из расчета, что они будут запускаться
на Apache + mod_php. В результате чего сами разработчики
этих приложений часть логики вынесли в файлы .htaccess

> Так начинается лечения пациента (бекенда) по симптомам, мы находим условия
> (location) при котором появляется симптом, в этом location прописываем
> рецепт (директивы) больному для его выздоровления.
> Симптомы исчезают, мы радуемся что решили проблему, но мы просто сняли
> симптом, причина была в бекенде.

Причина в бекенде, да. Но переписать весь софт "правильно"
- не хватит времени и сил. Например, вот та же MediaWiki.

В результате приходится делать так
http://www.mediawiki.org/wiki/Manual:Short_URL/wiki/Page_title_--_nginx_rewrite--root_access
или так: http://wiki.nginx.org/MediaWiki

Если приложение писали не для Apache,
а изначально планируя его запускать на nginx+php-fpm,
то там будет, грубо говоря всего две точки входа -
одна для динамики и вторая для статики, плюс location для обработки
404 ошибок к статике. И ничего "программировать" в конфиге не надо.

> По этому я сторонник делать все на бекенде.

Если все делать на бекенде - тогда вам nginx просто не нужен.

Оптимальный вариант - это все-таки делать на стороне nginx то, что
он умеет делать лучше всего (SSL, gzip, кеширование, отдача статики)
а на стороне backend`а - только генерирование контента для динамики.

>> У варианта использования phpd разве есть какие-то преимущества
>> по сравнению с вариантом nginx+php-fpm, если связь между nginx
>> и php-fpm делать через unix domain socket ?
>> подробнее - см. http://php-fpm.org/about/
>> тем более, что phpd уже deprecated
>
> Я не знаю, про какой phpd вы говорите, у нас своя разработка, которая совсем
> не deprecated, скорей на оборот, слишком модная )
> Преимущества по сравнению с php-fpm в основном два, это возможность в
> runtime сохранять своё состояния и нужные данные между запросами и
> отсутствия издержек на инициализацию скриптов при каждом запросе, как это
> всегда происходит в fpm, конечно OPcache помогает, но в демоне все равно
> быстрей.
>
> В качестве веб-сервера используется PHP модуль Event (libenet 2.0)
> http://ua2.php.net/manual/ru/book.event.php
>
> Очень довольны его скоростью и стабильностью.
> Проводили нагрузочное тестирования и сравнивали fpm и наш демон, разница
> оказывалась в разы, в пользу демона.

И он даже быстрее, чем https://github.com/kakserpom/phpdaemon ?

Выложить свой phpd в open source не планируете?

-- 
Best regards,
  Gena



Подробная информация о списке рассылки nginx-ru