myhand

Рейтинг
278
Регистрация
16.09.2009

че, в упор не видим failcnt в выводе /proc/user_beancounters ?

в других vps лимиты те же, или настроено как-то иначе чем в этой? Другие тарифные планы и т.п.

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

Boris A Dolgov:

Но не будете же Вы говорить, что это - удобнее, чем make config?

Спорно. Если сделать по-уму, грамотно разбить на такие роли - может быть и удобнее. Просто ставим нужный пакет и конфигурируем модули в нем.

Мейнтейнера ждет, конечно, известный геморой в написании правил сборки - но это ведь его проблемы, а не конечных пользователей.

Boris A Dolgov:

0) Вообще, Вы нашли достаточно старый пост. Было в англ. рассылке недавно.

Там принципиальное что-то пропущено?

Т.е. единственная реальная проблема - переменчивый ABI.

Boris A Dolgov:

2) И, наконец, архитектура заточена именно под такое использование. Не надо делать из nginx apache, достаточно взять apache (c) кто-то.

Вот я в последнее время и беру апач в типичной роли nginx-а, как прокси перед фронтендом :) Работает (c event mpm) не сильно хуже nginx, без "сюрпризов", которые время от времени сопровождают обновление последнего до новой "стабильной" версии. В squeeze можно будет искаропки такое делать даже на одном сервере (т.е. держать пару апачей с разными MPM; фронтенд/бакенд, к примеру).

Boris A Dolgov:

А откуда он берёт конфигурацию? Если из какого-то файла, то это - потенциальная уязвимость.

Из файла. Риск есть, наверно, но читающий этот файл код достаточно примитивен, что дырку там подозревать сложно. Разве где-то в недрах stdio функций...

Вот весь патч, если интересно:

http://svn.debian.org/wsvn/pkg-apache/trunk/apache2/patches/202_suexec-custom.dpatch

Но есть и другие варианты решения - я их упоминал. Сборка своего suexec, как Вы предложили - вариант самый последний, по-хорошему.

Boris A Dolgov:

Мне виделся вариант с
location / { proxy_pass user_backend; error_page 402 = @start_backend; }
location @start_backend { fastcgi_pass starter; fastcgi_param USER username; fastcgi_param URI $request_uri; }

starter.pl:
...
start_backend($user)
print "X-Accel-Redirect: ${uri}"
...
Но можно придумать и более красивые варианты и работающие с POST варианты, используя всякие фичи вроде ssi, или простой модуль.

X-Accel-Redirect - хорошая идея. Думаю, с учетом этого - годится решение с proxy_next_upstream. Если бакенд юзера не запущен - следующий универсальный бакенд как раз выполняет что-то вроде Вашего "скрипта". В общем-то, должно работать и с POST.

Это кто-то пожадничал денюшку заплатить, чтобы сервер грамотно настроили и обслуживали, а не решали проблемы телепатически.

Boris A Dolgov:

Под N модулей -- 2^n пакетов :)

Не, меньше. Я же сказал, роли. Ну какие могут быть роли у nginx? Прозрачный прокси (только HTTP, аналог для imap+pop можно вынести отдельно) и/или кеширующий - один/два пакета. Бакенд (там встроенный перл есть, не забыли?). Какой-нить специализированный тип хостинга, например "свой ютуб". И т.п. Наборы модулей будут встроенны перекрывающиеся в чем-то, естественно. Наконец, сборка где "все-все-все".

Boris A Dolgov:
Разработчик весьма ясно объясняет в рассылке, почему на данный момент нет возможности делать выносные модули.

Вот это (поста Игоря я сходу не нашел)?

Из перечисленного только стабильный ABI является реальной "проблемой" для nginx. Вытекающий из сказанного выше про то, что он вечная бета (или альфа - на вкус и цвет...).

Boris A Dolgov:

>2) Немного непонятно, зачем кому-то "путь до suexec" менять?
А путь до suexec, например, нужно менять, если хочется держать сайты не /var/www, а в /home. (точнее, это не путь до suexec, а путь внутри него).

А это меняется на ура в дебиане, например. Бинарником, который "немного умеет быть конфигурируемым" (пакет apache2-suexec-custom).

Плюс есть еще варианты решения проблемы (bind mounts например), без ковыряний в исходниках suexec.

Himiko:
Можно поправить даже прямо в бинарнике =)

Ничего там не нужно править "в бинарнике", нужно знать где правильный мёд ;)

Boris A Dolgov:

>Я имел в виду - знаете ли Вы готовое решение, которое это "умеет"?
>Если брать предложенное - "запустить своего апача под каждого клиента", то там такого нету.
Если брать готовый апач, то он и не умеет разбиваться на несколько пользователей, и балансироваться между ними :) Всегда придётся писать конфиги или скрипты. В данном случае я даже представляю, как это делать без модификации кода апача или nginx.

Я думал имелась в виду более простая ситуация. 1 простой скрипт - "пускальщик" апача под всю пачку пользователей (по одному на каждого) + конфиг nginx, который проксирует обработку своих виртуалхостов соответствующим апачам.

Далее апачи плодят себе сколько позволено детей для обработки запросов. Но минимум один апач под каждого пользователя - вынужден жить.

Как прибить такого апача под пользователем - понятно, по бездействию. А вот как запустить - менее очевидно. Есть гипотеза, что сработает какой-то вариант на proxy_next_upstream. Т.е. если апач у юзера прибит - направляем запрос сначала на универсальный upstream, который "пускает" нужный бакенд (судя по виртуалхосту), затем снова на этот бакенд. Но это вариант как-то, того... Не поделитесь что Вы имели в виду?

"такие ошибки", да не такие...

Это нормально, что "апатч прерывает соединение"? По-моему, от хорошей жизни он такого делать не должен. А неумение обнаружить проблему не является критерием того, что ее "нету".

rm -rf /

:D

Шутко.

man yum

man rpm

- вот правильные команды

BasePelleta:
Какое значение ставить?

Никакого. Не нужно это менять, пока Вам не объяснят зачем (а объяснять выше - отказались).

BasePelleta:
httpd -V | grep "mpm"
-D APACHE_MPM_DIR="server/mpm/prefork"

Вы поняли, какой ответ дали на вопрос?

BasePelleta:
Видимо, это не есть правильное решение!

Нда уж. Правильное - это когда Вы как минимум понимаете что делаете.

Boris A Dolgov:
Некоторые пакеты нельзя сконфигурить, будучи собранными - например, (1) модули nginx, (2) путь до suexec, и так далее.

1) Технически можно, конечно. Собрать несколько разных пакетов nginx с кастомными наборами модулей (под работу nginx разными ролями). Уж такой он nginx - вечная бета, что с него взять. Надеюсь, что со временем может быть поддержка подгружаемых модулей. Хотя есть большая вероятность, что до релиза оно никогда и не доживет, будет вечное 0.xxxx.

2) Немного непонятно, зачем кому-то "путь до suexec" менять?

Boris A Dolgov:
А это уже зависит от умений :)

Я имел в виду - знаете ли Вы готовое решение, которое это "умеет"?

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

Boris A Dolgov:

Если захотелось собрать программу "ааа" с настройками, то нельзя сделать cd /usr/ports/aaa и написать make config install

Так и хорошо, что нельзя. Зато то, что рулится обычно настройками портов (менюшкой) - как правило, есть в бинарных дистрибутивах в альтернативных версиях пакетов. Т.е. штатным образом ставите себе нужный пакет.

А еще всегда можно dget http://.../bla-bla...dsc; cd bla-bla*/; vi debian/; debuild; Во фре не короче, макефайл все-равно править придется, если захотите сделать шаг в сторону.

Вообще-то, "настройками" программ принято управлять в конфигурационных файлах, а не в момент компиляции (последнее как-бы не самый хороший тон). И к базовым настройкам в debian есть универсальный фронтенд debconf, а во фре...?

Boris A Dolgov:

>Есть такой момент. Нешто там до сих пор вовсе ничего не патчат?
почти.

Ой. Тады плохо. Ведь весь Ваш карточный "все так как у апстрима" - разваливается.

Boris A Dolgov:

Можно считать, что нагрузка вида "rps" примерно совпадает, а дальше всё зависит от того, насколько хорошо Вы выбираете количество воркеров для каждого виртхоста в каждый момент времени в зависимости от последней посещаемости. В базовом варианте, может висеть демон, который смотрит rps за последние полчаса, делит его на константу, и выставляет такое число воркеров.

Если можно так нижнюю грань числа воркеров поставить в 0 - это прокатит. Если нет - никакого быдлохостинга за < 1$ не получится.

lissyara:
мне проще удалённо, без КВМ, ОС переставить =))

И Вы в дальнейшем отвечаете за такой сетап? С черти-каким оборудованием. Или по принципу "настроил и забыл"?

Ну, т.е. если кривая поддержка ОС данного оборудования вызывает проблемы в эксплуатации - Вы будете все это бесплатно чинить?

Всего: 4890