Qt, libfcgi и многопоточность

Для создания приложений на есть библиотека libfcgi. Не буду вдаваться в дискуссию, зачем нужны приложения FastCGI на C/C++/подставить нужный язык, когда Python//Perl/подставить нужное гораздо удобнее. Отмечу лишь, что по работе понадобилось написать FastCGI-приложение на (в основном из-за наличия нескольких высокопроизводительных библиотек, написанных на , но не суть).

Строго говоря, libfcgi, хотя и является официальной библиотекой от создателей протокола, не лучший вариант для поддержки FastCGI — API, предоставляемое библиотекой, сильно ограничено (в плане функциональности) и недостаточно гибко. Далее »

Автор: , опубликовано в: Qt, комментариев: нет
8
Янв
2012

WordPress: кэширование средствами nginx

Много было сказано про кэширование в WordPress… Сегодня я хочу рассказать о действительно эффективном методе, позволяющем сильно снизить нагрузку.

Метод основан на использовании кэша web-сервера .

Идея состоит в генерации статических страниц и отдачи их пользователям, не имеющим cookie комментатора. Зарегистрированным пользователям, а также комментаторам всегда отдаётся свежая страница. Так как читателей, ни разу не оставлявших комментарий, как правило, гораздо больше, чем комментаторов, то подобный использование кэша позволяет значительно снизить нагрузку на /. Знакомые с принципом работы заметят, что WPSC использует тот же принцип работы. Далее »

Автор: , опубликовано в: nginx, WordPress, комментариев: 61
10
Дек
2010

WordPress MultiSite, nginx и X-Accel-Redirect

Одна из основных особенностей  3.0 — поддержка конфигурации .

При использовании с WordPress MultiSite может выявиться одно слабое место: загруженные файлы (которые uploads) дочерних блогов отдаются -скриптом (wp-includes/ms-files.php). Если количество процессов FastCGI небольшое, а загружаемые файлы большие и при этом имеется медленные клиенты, проблемы с производительностью гарантированы: дело в том, что один процесс FastCGI в один момент времени может обслуживать только одного клиента. Если запущено 5 процессов php-cgi, и имеется пять медленных клиентов, качающих файлы, все остальные клиенты будут ждать освобождения процессов PHP. Если клиенты медленные, а файлы большие, ждущие клиенты будут получать ошибку 504.

К счастью, при использовании проблема легко решается. Далее »

Автор: , опубликовано в: nginx, WordPress, комментариев: 3
4
Дек
2010

Патч для php-cgi, позволяющий конфигурировать значение listen backlog

По умолчанию значение listen backlog в -cgi жёстко задано — 128. Это означает, что не сможет обработать более 128 запросов одновременно (точнее, что очередь запросов не сможет превысить данного значения). Я столкнулся с тем, что 128 — это мало.

Для тех, кто столкнулся с данной проблемой, но по каким-либо причинам не хочет/не может поставить php-fpm (в котором backlog конфигурируется), я сделал небольшой . Далее »

Автор: , опубликовано в: C/C++, PHP, комментариев: 10
3
Янв
2010

WP Super Cache vs MaxSite Cache: часть 2

Вторая часть статьи WP Super Cache vs MaxSite Cache.

В предыдущей части я сравнивал поведение и на тестовом VDS (512 MiB RAM, 10 GB HD, Intel Xeon X3320 (1 ядро), 2.5 GHz), на котором ни операционная система, ни программное обеспечение не были специально настроены — бралась конфигурация «из коробки» и тестировалась. Одним словом, «VDS абсолютного чайника».

В этой части изменилась только конфигурация программного обеспечения: сервер настраивался на максимальную .

В частности:

  • отказ от Apache в пользу и от mod_5 в пользу php-fcgi (количество -процессов выбиралось таким образом, чтобы избежать использования файла подкачки);
  • смена ядра с linux-image-server на linux-image-virtual;
  • настройка MySQL: отказ от InnoDB (экономит примерно 100 МБ памяти), увеличение буфера ключей и т.п.;
  • установка и настройка xCache (я исходил из того, что далеко не все чувствуют себя комфортно при сборке программ из исходников, поэтому брал только готовое ПО);
  • настройка iptables для фильтрации пакетов.

Далее »

Автор: , опубликовано в: WordPress, комментариев: 2
13
Дек
2009

nginx Compatibility: делаем WordPress дружелюбнее к nginx

Переведя несколько сайтов с Apache на , уже который раз встречаю подводные камни. Один из них — нежелание понимать код редиректа, другая — постоянные попытки использовать PATHINFO-пермалинки вместо «нормальных» (pretty permalinks).

Неудобно каждый раз лезть в код WordPress, чтобы поправить очередную несовместимость, поэтому я написал небольшой . Далее »

Автор: , опубликовано в: nginx, Плагины WordPress, комментариев: 7
14
Апр
2009

WordPress, FastCGI и редирект 301: часть 2

Более изящное решение, нежели представленное в первой части (WordPress, FastCGI и редирект 301).

В первой части предлагалось при использовании web-сервера закомментировать проверку на SAPI (if ( php_sapi_name() != 'cgi-fcgi' )). Однако есть лучшее решение. Далее »

Автор: , опубликовано в: nginx, Патчи, комментариев: 3
13
Мар
2009

WordPress, FastCGI и редирект 301

Всё-таки удивительная штука … Сегодня чисто случайно обнаружил, что если работает в режиме (например, связка  +  + PHP), то все редиректы с кодом 301 (Permanent ) превращаются в редиректы с кодом 302 (Temporary ).

Чем это грозит? Если Вы занимаетесь спамомSEO, то Вы, вероятно, знаете, что переход с кодом 302 не передаёт PageRank. Иными словами, если Вы изменили структуру пермалинков или по той или иной причине в Google "раскручена" страница с несколько другой постоянной ссылкой (например, http://example.com/?p=202), то «канонический редирект» (см. wp-includes/canonical.php) не передаст PageRank целевой странице. Далее »

Автор: , опубликовано в: nginx, SEO, WordPress, комментариев: 14
5
Мар
2009

Конфигурация nginx для WordPress: критический взгляд со стороны

Update: статья писалась давным-давно, правильная конфигурация для работы с описана здесь.

Три недели назад я рассказывал про одну из конфигураций nginx для WordPress. С тех пор я получил пару отзывов, что так делать неправильно с ссылкой на конфигурацию, одобренную Игорем Сысоевым (автором nginx). Лежит она здесь:

This has the approval of Igor, the creator – you cannot get better than that.

Далее »

Автор: , опубликовано в: nginx, WordPress, комментариев: 1
18
Дек
2008

WordPress: заменяем Apache mathopd’ом

Вторая статья из серии ": Заменяем Apache лёгким web-сервером".

Первая статья была посвящена , в данной статье разберём особенности конфигурирования и WordPress для совместной работы. Далее »

Автор: , опубликовано в: WordPress, Администрирование, комментариев: 3
25
Ноя
2008