nginx

Nginx + Apache - как убрать мусор с 404 и 403 страниц приложений

Ситуация следующая, есть nginx стоящий фронтендом. Есть апач (apache 2.2) бекендом. Nginx проксирует запросы на Apache.

В Apache вертится приложение. В данном случае Drupal.

Возникла проблема следующего плана: на страницах 404 и 403 начал вылезать мусор в виде размера странички в байтах в шустнадцатиричной системе счисления. Как оказалось  - это всего лишь навсего способ передачи данных от сервера Apache, когда он не знает точно длины контента(chunked encoding).

nginx+apache+mod_php + eaccelerator + "drupal 502"

Обнаружен глюк eaccelerator при работе с php в режиме апачевского модуля.

Система просто не подгружала или некорректно подгружала inc/theme.inc в CMF drupal. В итоге из php нельзя было выбить никаких ошибок а сервер давал ошибку 502.

Я привык пользовать php в режиме fast-cgi.
Похоже это специфичная для eaccelerator ошибка когда php пашет как модуль apache, поскольку такое уже замечалось ранее на сторонних хостингах, просто я не придавал этому значения.

Дополнительный rewrite для Drupal

Позволяет закрыть php файлы и некоторые мелочи - чтобы не долбились кулхацкеры :)

  1. location /modules{
  2. rewrite ^(.*\.php)$ /index.php?q=$1;
  3. rewrite ^(.*\.info)$ /index.php?q=$1;
  4. rewrite ^(.*\.module)$ /index.php?q=$1;
  5. }
  6. location /includes{
  7. rewrite ^(.*)$ /index.php?q=$1;
  8. }
  9. location /profiles{
  10. rewrite ^(.*)$ /index.php?q=$1;
  11. }
  12. location /sites{
  13. rewrite ^(.*\.php)$ /index.php?q=$1;

Веселые нюансы работы с утилитой ab

Есть примитивная программа для нагрузочного тестирования - ab, идущая в комплекте с вебсервером Apache

Выдержка из man ab:

BUGS
There are various statically declared buffers of fixed length. Combined
with the lazy parsing of the command line arguments, the response head-
ers from the server and other external inputs, this might bite you.

It does not implement HTTP/1.x fully; only accepts some 'expected'

Drupal + nginx

Тут у человека возник вопрос как подрубить "красивые ссылки" в nginx.
Вот пример из моей конфигурации.

  1. location / {
  2.     root /var/www/brainstorm/htdocs;
  3.     index index.php index.html index.htm;
  4.    if (!-e $request_filename ) {
  5.         rewrite ^(.*)$ /index.php?q=$1;
  6.     }
  7. }

Правила rewrite для Gallery2 и nginx

По просьбе David Currie выкладываю правила rewrite для Gallery2, запущенной на связке nginx и php-fastcgi. Вот правила которые я пользую для себя.

Теперь для блога мы используем Nginx

Теперь блог на основе Wordpress работает с использованием вебсервера nginx. Мы используем PHP как fast-cgi(об установке можно прочитать тут). Теперь все работает быстрее - даже без использования плагинов для кеширования и требует меньше памяти для работы.

Успешный перенос Wordpress и Gallery2 на nginx

Связка Wordpress и Gallery2 теперь успешно функционируют на вебсервере nginx. Правила для Apache были переписаны и адаптированы для nginx. Теперь все функционирует гораздо быстрее.

RSS-материал