• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Томогавк тебе в спину

TrueUser

(L1) cache
Пользователь
Регистрация
13.07.2009
Сообщения
540
Реакции
2
indiankid.png

logo.png


Установка и настройка ультраскоростного вебсервера Cherokee

Итак, дамы и господа, как Вы уже поняли из названия сегодня я попробую рассказать вам занимательную историю о том как бледнолицый TrueUser покорял гордых индейцев.
Предыстория статьи такова, что мне в силу обстоятельств потребовалось изобразить что то вроде очень шустрого веб приложения. Допустим (думаю актуально) что мне пришлось устанавливать на сервер ломанную Сутру (тут мы бросим камушек в огород ее автора, заверив его в том, что делиться ей я ни с кем не собираюсь).
Как известно сей коммерческий продукт требует чтобы скрипты его обрабатывались как CGI сценарии (хотя если быть до конца честными - часть из них по сути скриптами то и не является, а состоит в ряду реактивного откомпилированного софта). Итак что нам нужно:
1. Скоростной вебсервер кушающий минимум ресурсов процессора и оперативной памяти
2. Обработчик CGI

Я не буду ничего говорить об опостылевших уже Apache и Apache2, так как о них сказано уже немало и без меня. Тем более что ни первая ни вторая версия толком не удовлетворяют нашему первому требованию по крайней мере скомпилированные в режиме работы prefork MPM.
Что же, обратим свой взор к творению Нашего соотечественника - nginx webserver. Да штучка та еще скажу я вам. Действительно быстро, действительно стабильно и экономно. НО! И тут не обошлось без ложки дегтя. К сожалению текущая доступная версия НЕ умеет грамотно работать с CGI! Да, многие любители поковыряться где не надо начнут с пеной у рта доказывать мне что nginx может проксировать работу дополнительного perl скрипта-адаптера для CGI сценариев аналогично тому как работает c PHPFastCGI. Однако, к сожалению тут вся производительность скриптов сойдет на нет, да и геморроя не оберешься, а все что сложно к пониманию большинства - не является практичным.
Есть конечно и Litehttpd, и вроде поговаривают о том что он неплох, однако как то раз бездельничая и читая очередной номер журнала Хакер я наткнулся на упоминание об быстром и производительном Чероки! К черту Лайт, давайте ломать индейца, тем более по заверениям его авторов он уделывает всех своих конкурентов не только по быстродействию но и по дружелюбности интерфейса. Так как по природе я лентяй - я очень ценю простоту и нативность интерфейсов администрирования всякого разного софта.

Что же.. начнем с рекламы :) вот тут можно собственно и ознакомиться с самим проектом чероки и почитать какой он замечательный.
Сразу скажу, что ставил я его на Debian Lenny ну наверное потому что я лентяй :) и не суюсь в суровые Фри, Солярисы и прочие бесконечно производительные, но более на мой взгляд сложные оси.

Установку можно производить двумя способами в моем случае:
1. Из пакетов
2. Из сорцев

Я честно говоря пробовал оба способа, но ручная сборка меня порадовала большей стабильностью (к чему бы это интересно :blink: ).
Итак, в наших руках заветная консоль с правами рута! Начнем!

Код:
wget http://www.cherokee-project.com/cherokee-latest-tarball -O -| tar zxvf -
cd cherokee-0.99.48
./configure --localstatedir=/var    \
            --prefix=/usr            \
            --sysconfdir=/etc        \
            --with-wwwroot=/var/www  \
            --enable-nls=no
make
make install

Хочу отметить опцию сборки --enable-nls=no. Она отключает нативную поддержку языков, так как скорее всего у вас не окажется необходимых для ее работы библиотек в голой системе (но в большинстве случаев она нам нафиг не нужна).
Заводим шарманку!

Код:
cherokee-admin -ub

Дополниельные опции запуска дают нам возможность:
1. Отключить проверку дурацкого пароля при входе в админку
2. Биндить админку на внешний интерфейс (чтоб можно было зайти с удаленного компа)
Вуаля! Теперь можем че нить накрутить :) топаем на адрес http://your_ip:9090/ и наблюдаем что то вроде такой картинки:

admin_index.png

Далее выкладываем волшебные скрипты в нужную папочку :crazy: . Теперь нам необходимо привязать к ней новый виртуальный сервер. Все делается буквально парой кликов мышью!
1. Тычим на кнопке vServers в меню наверху

admin_vserver.png

2. Жамкаем плюсик и вводим доменное имя нового виртуального хоста и путь к папке с волшебными скриптами.
3. В закладке Basic не забываем указать в качестве Directory Indexes классические index.html
4. Переходим на вкладку Behavior. И тыкаем Rule Managment.

Наверное тут стоит сделать небольшое лирическое отступление, чтобы человек хотя бы немного понял ЧТО он делает :)
Во первых мы создали виртуальный хост, которому в качестве имени назначили имя домена (которое конечно же уже привязано к нашему айпишнику). В принципе на вкладке Host Match можно прикрутить дополнительные домены, вплоть до того что можно задать имена доменов которые будут привязаны к виртуальному хосту в виде регулярного выражения (Апачи нервно курят в углу). Во вторых мы сейчас будем настраивать правила, по которым будет происходить обработка (to serve) http запросов пользователей. Правила представлены в виде стека (слева их видно) Чем выше правило - тем раньше оно будет применено к запросу. По умолчанию в самом низу (или оно вообще единственное) находится правило default которому назначено в качестве Handler тупо делать List & Send. Это самая простая операция, которую может производить вебсервер - просматривать папки и выдавать содержимое файлов пользователю используя http протокол обмена.
Теперь создадим новое правило для работы с CGI сценариями.

5. Тыкаем плюсик, выбираем Manual->Rule Type = Extensions. Указываем в качестве расширения cgi. На вкладке Handler указываем в качестве обработчика CGI

Теперь при получении запроса сервер будет сначала проверять расширение запрашиваемого файла и если оно будет равно .cgi - вместо отображения содержимого файла запустит его в системе и вернет в браузер уже результаты его работы. Таким образом Сутра завелась!
Но не будем спешить. Так как файлами .htaccess теперь можно благополучно подтереть сами знаете что, нам необходимо настроить авторизацию в папку /admin для этого создадим... да да, новое правило :P

6. Повторяем процедуру 5, но указываем Manual->Rule Type = Directory. А в качестве пути собственно /admin
7. Открываем вкладку Security

cookbook_mysql_validator.png

Тут мы можем выбрать тип аутентификации и способ хранения паролей. Я предпочитаю таки Validation Mechanism = Fixed List, что позволяет мне админить пароли и логины непосредственно безо всяких дополнительных утилит типа passwd.
Теперь один интересный момент. В стеке правил слева на каждом из них есть специальный флажок, указывающий серверу на тот факт, стоит ли тому продолжать двигаться вниз по стеку или окончить обработку на данном правиле. По умолчанию для каждого нового правил это флажок устанавливается в FINAL, что приводит к плачевным результатам - CGI перестает работать в защищенной паролем папке. Чтобы этого избежать - нам необходимо указать правилу аутентификации что оно является NON FINAL, кликнув по флажку.

8. Теперь все готово! Жмем Кнопу SAVE в верхнем правом углу и стартуем сервер на главной странице админки кнопкой Run Server, если он не был запущен до этого или делаем Gracefull Restart (nginx нервно курит в углу :fuck: ) в выскакивающем окошке.

Теперь можно насладиться работой быстрой ТДС на быстром сервере :punk:.
Специально для любителей повтыкать на графики расскажу еще одну фичу. Сам сервер умеет вести логи своей производительности (количество трафика, запросов, подключений и пр.) и отображать их в виде красивых и полезных кому то графиков. ЧТобы все это заработало необходимо:

1. Ставим RRDTool

Код:
apt-get install rrdtool

2. Настраиваем в пункте меню General на закладке Network пункт Information Collector->raphs Type->RRDtool graphs
3. Собственно втыкаем графики в меню Status

other_graphs_traffic.png

На этом замечательном моменте позвольте откланяться, выражаю благодарность Разработчикам такого замечательного продукта, как The Fastest free Web Server Cherokee, и желаю им всех благ. А дорогим читателям - Load Average < 1
Удачи!
 
а то всегда руками
и дальше будешь руками...
интересно, тебя то чем апач не устраивает?
 
интересно, тебя то чем апач не устраивает?
я и не говорил, что не устраивает =).
мне в принципе на локалхосте всё равно что, индеец, лайтхттп или ещё чего.
 
Для локалхоста WAMP любой ставьте и не парьтесь
угу...
странно, а я на вамп с ксампа перешел
аналогично.+ стоит денвер с расширениями.для моих стандартных задач хватает полностью.

зы.Томагавк таки..пишется
 
что вы тут со своими вампами, денверами, это юникс раздел кто ещё не понял.
Для локалхоста WAMP любой ставьте и не парьтесь. Сам xampp юзаю.
да, поставлю на линукс wamp (windows apache mysql php) и не буду париться.
ставил линукс версию, показалось шлаком.
странно, а я на вамп с ксампа перешел
что такое ксамп и с чего куда вы перешли? xampp? а xampp вампом не является?
 
Лень - двигатель прогресса...
Обожаю когда админы деградируют и уже не лезут в терминалы, а просто "тыкают 'палцами' по своей 'крутой' мышке, настраивая веб сервер и параллельно играют в WoW".

p.s. Админы, продолжайте в том же темпе :D.
 
все понятно, что это раздел никсовый. может кому то и нужен чероки. на здоровье.

но. у большинства веб-серверов есть аналоги и под винду и под никсы.
поэтому, даже если бы и стоял линукс, то не уверена что для простых или нетребовательных ни к чему скриптов(чужих) нужно ставить полный комплект с нуля. Не кодерам. Обычным юзерам, которые .....ну...возятся с джумлой или WP. отсюда и фразы про готовые сборки.
Единственное, может, в чём ты прав на все 100, что обсуждать и сравнивать WAMP- ы между собой именно в этой теме не место.
что такое ксамп и с чего куда вы перешли? xampp? а xampp вампом не является?
тут есть некоторое двоечтение.
Да, WAMP- ами называют сборки под винду, и в тоже время WAMP - одноименный проект
http://www.wampserver.com/
 
TrueUser Молодец материал действительно интересный получился. Я в репу тебе уже дал. На эту хрень_вместо_обсуждений внимания не обращай. Каждому свое.

to ALL fluders Вамп ксамп и дэнвер обсуждать в отдельной ветке. Человек, как минимум старался, когда писал материал. А вы как говнюки блин. Имейте уважение к чужому труду!
 
Как бы сначала шла речь о производительности, а зокончилась описанием "как круто щелкать кнопочки в окошке". :D Хотелось бы видеть тесты производительности, сравнение с Апаче и другими.
 
некоторое сравнение производительности (с сайта чероки ссыль)
http://www.alobbs.com/1353/The_fastest_and...eb_servers.html

далее. сугубо по теме

Как установить сервер Cherokee с поддержкой MySQL и PHP на Ubuntu Server 9.04

1.Подготовка к установке
2.Инструкции с картинками.
3.Установка из репозитариев
4.Установка из исходников
5.Настройка сервера
6.Запуск сервера
7.Выводы

аналог есть и для дебиана - не читала ничего, мне пофиг. заслуги ТС я не умаляю, который кстати сам готов пофлудить.
А вы как говнюки блин. Имейте уважение
прикольно...
 
который кстати сам готов пофлудить.
В соответствующем разделе - ДА :).

Что касается непонятно откуда взявшегося обсуждения виндовых серверов и также апача, то могу еще раз повторить, что основная цель статьи как таковой была в том, чтобы:
1. Познакомить читателя с чероки
2. Настроить чероки для работы с высоконагруженными проектами.

Ну собственно что народ читает, обсуждает - это же хорошо!
 
В соответствующем разделе - ДА .
например тут, навскидку
спасибо -el, приятно норм. ответ было увидеть
1. Познакомить читателя с чероки
весь инет уже познакомили копипастеры-ссылки выше, впрочем, написал - и лано
народ читает, обсуждает - это же хорошо!
даже "говнюки"...
ну спс, утешил, нам стало легче...
 
да, поставлю на линукс wamp (windows apache mysql php) и не буду париться.
ставил линукс версию, показалось шлаком.
Про LAMP не слышал?
 
весь инет уже познакомили копипастеры-ссылки выше, впрочем, написал - и лано
Заметь, что копипастом я не пользовался впринципе, и у нас вопрос сей на форуме не был освящен. Если ты принципиально не понимаешь зачем нужна высокая производительность, то гоняй свой апач на здоровье на винде у себя :).
например тут, навскидку
спасибо -el, приятно норм. ответ было увидеть
Это что же, можно расценивать как пример флуда в теме? :) Если тебе нечего сказать по сабжу, так может лучше помолчать и как минимум разобраться в вопросе сначала? А если нет желания разбираться, то лучше просто помолчать.

Я с удовольствием сказал бы тебе спасибо за какой то совет или поправку к написанному мною, ибо это пошло бы на пользу и мне и читателям остальным, а так пока что это только загаживание темы бестолковым контентом.
 
Цитата|Quote(Beaten_Sect0r @ 08.05.10, 18:43:06)
да, поставлю на линукс wamp (windows apache mysql php) и не буду париться.
ставил линукс версию, показалось шлаком.



Про LAMP не слышал?
не только слышал, но и пользуюсь. сказанно к тому, что в этой теме твой wapm не усрался.
может модераторы почистят тему?
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх