LINUX.ORG.RU
ФорумAdmin

Проблемы с Apache


0

2

Есть Apache2 из состава Debian Squeeze, установленный внутри OpenVZ-контейнера. Иногда по непонятной причине он внезапно перестает отвечать на соединения, спасает только рестарт Апача.

Бага проявляется непериодично - например, до сегодняшнего утра несколько дней все работало нормально, после рестарта Апач проработал несколько минут, потом снова повис, сейчас пока работает нормально.

Нагрузка перед зависанием практически никакая. Пробовал нагружать железку через Apache Benhcmark - спокойно обрабатывает несколько сотен запросов в секунду (и до нескольких тысяч - на статике), пока не упирается в количество сетевых соединений.

Пример netstat в момент зависания: http://paste.org/pastebin/view/36474 - соединений, даже висящих, не так уж много.

Ресурсов (в частности памяти) хосту хватает.

Прочие данные: используется prefork-вариант; apache2ctl status во время висения тоже не работает; в логах вроде ругани нет; память целая.

В общем, что это может быть, куда еще смотреть и что крутить?

★★★★★

Ответ на: комментарий от Skolotovich

fail'ов нет, если ты про это

YAR ★★★★★
() автор топика
Ответ на: комментарий от true_admin

> strace трави на апачи.

Я себе представляю, сколько гигабайт логов наплодит strace, с учетом того, что ждать, может быть, придется неделями.

Обычно глюки связаны с кривыми похапе-сайтами.


PHP тут через mod_fcgid и непонятно, как обработка скрипта внешним процессом полностью вешает Апач, не давая ему отдавать в том числе и статику.

YAR ★★★★★
() автор топика
Ответ на: комментарий от YAR

Я себе представляю, сколько гигабайт логов наплодит strace, с учетом того, что ждать, может быть, придется неделями.

strace надо запускать после возникновения проблемы а не заранее. Например strace -p -f -s128 <pid процесса>

PHP тут через mod_fcgid и непонятно, как обработка скрипта внешним процессом полностью вешает Апач, не давая ему отдавать в том числе и статику.

как раз всё понятно, у него все дочерние процессы ждут ответа от fcgi, поэтому всё и виснет. Апач defective by design.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

> strace надо запускать после возникновения проблемы а не заранее.

Ага, я его в таком виде не использовал, буду знать.

поэтому всё и виснет.


Плохо, что это сказывается на все виртуальные хосты

YAR ★★★★★
() автор топика
Ответ на: комментарий от Anoxemian

Не вариат, уже указал в топике. Память проверялась, кроме того, на этом железе еще десяток контейнеров работает, проблема только с Апачем.

YAR ★★★★★
() автор топика
Ответ на: комментарий от true_admin

> самопальными скриптами на фряхе.

Ясно. Нет, у меня mod_fcgid + suexec, так что для php каждый домен тоже под своим пользователем и группой, а Апач входит в группу каждого домена (кстати, это чем-то плохо? Просто странно, что в хостинг-панели, которую использую, так дефолтно не сделали, переделывал сам), соответственно, на файлы можно ставить права 440 (или 400 для php-скриптов)

itk имеет дурную репутацию


Можно линков немного? Просто в целом меня такой вариант интересовал, но отрицательных отзывов вроде не видел.

YAR ★★★★★
() автор топика
Ответ на: комментарий от YAR

кстати, это чем-то плохо?

ну у фри ограничение на 16 групп было... А так это не то чтобы плохо, это просто ничего не меняет, если я правильно понял твою конфигурацию. В любом случае один сайт может залезть в папку с другим сайтом, поэтому общий апач зло.

Можно линков немного?

погугли «itk тормоз» и «itk глюкодром» :)

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

> ну у фри ограничение на 16 групп было

Ага, про это как-то не задумался. Погуглил - кое-где пишут про те же 16 групп, кое-где - про 64K. Запустил скрипт, создающий группы и добавляющий пользователя в него, пока работает, 4000 групп уже создал. Даже если так - мне с головой хватит.

А так это не то чтобы плохо, это просто ничего не меняет, если я правильно понял твою конфигурацию.


Апач работает как и раньше, под www-data. Кроме того, он входит в группу каждого пользователя, под которым находится домен. Т.е., имеем пользователя user1000 в группе user1000, каталог с данными с правами 750 и user1000:user1000. Апач добавлен в группу user1000. Соответственно, для доступа к html и картинкам используется это включение в группу (сам по себе Апач ничего писать и выполнять не может, так что права для записи не нужны), а php-скрипты отдаются fcgid+suexec, который уже работает от нужного пользователя

В любом случае один сайт может залезть в папку с другим сайтом


Каким образом? HTML-странички сами по себе никуда лезть не будут, да и группы и пользователи у разных сайтов разные. PHP-скрипты лезть никуда не смогут, ибо тоже разные пользователи и разные группы, а доступа «для всех» нет. Разве что если будет какая-то бага в Апаче, когда он при работе с какой-то страничкой/картинкой внезапно даст шелл юзеру с правами www-data - тогда да, проблема.

YAR ★★★★★
() автор топика
Ответ на: комментарий от YAR

Ага, есть такое дело:

rain@mws64:~$ sudo su -l test
Каталог отсутствует или недоступен, вход в систему выполняется с HOME=/
test@mws64:/$ groups | wc -w
65536
test@mws64:/$

При

rain@mws64:~$ grep -c somegroup /etc/group
132010

Anyway, мне хватит.

YAR ★★★★★
() автор топика
Ответ на: комментарий от YAR

Каким образом?

A, туплю, годная защита. Только не все сайты(по крайней мере раньше) работали с (f)cgi, я потому и не использовал это.

true_admin ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.