LXF142:Cherokee

Материал из Linuxformat.

Перейти к: навигация, поиск
Hardcore Linux Проверьте себя на крутом проекте для продвинутых пользователей [Категория:Учебники]

Содержание

Cherokee: Web-сер­вер

Apache – не един­ст­вен­ный на све­те web-сер­вер. Клау­дио Тан­чо­ни учит об­ра­щать­ся с Cherokee, под­черк­нув его по­тря­саю­щую ско­рость.

Для Ин­тернет ско­рость очень важ­на. Кон­тент сай­тов дол­жен за­гру­жать­ся бы­ст­ро, что­бы не ото­гнать нетер­пе­ли­вых поль­зо­ва­те­лей, а для это­го тре­бу­ет­ся Cherokee – web-сер­вер с вы­со­кой про­из­во­ди­тель­но­стью. На вре­мя на­пи­сания ста­тьи в сер­вер­ной бол­та­ли, что он бы­ст­рее всех – и, од­но­знач­но, та­ких ав­то­ри­те­тов, как Apache, Nginx и Lighttpd. Ве­рит­ся с тру­дом? Ну, мы сравнили Cherokee с его кон­ку­рен­та­ми и ре­зуль­та­ты по­ка­жем поз­же – они вас по­ра­зят. Cherokee так­же под­дер­жи­ва­ет ши­ро­кий диа­па­зон со­вре­мен­ных тех­но­ло­гий, вклю­чая, но не ог­раничи­ва­ясь та­ки­ми, как со­единения с шиф­ро­ванием TLS и SSL, FastCGI, SCGI, PHP, CGI, SSI, вир­ту­аль­ные хосты, ау­тен­ти­фи­ка­ция, шиф­ро­вание на ле­ту, вы­равнивание на­груз­ки, об­нов­ления в ча­сы ма­лой на­груз­ки и об­рат­ный про­кси HTTP.

Та­кая мощь вселя­ет ро­бость, но в Cherokee она ук­ро­ща­ет­ся дру­же­люб­ным ин­тер­фей­сом под на­званием Cherokee Admin. Это пре­восход­ный ин­ст­ру­мент, доступ к ко­то­ро­му мож­но по­лу­чить че­рез брау­зер; здесь мож­но на­стро­ить все функ­ции web-сер­ве­ра, не вникая в син­так­сис тек­сто­вых фай­лов кон­фи­гу­ра­ции и то­му по­доб­ное. Конеч­но, ес­ли вы лю­би­те по­иг­рать с на­строй­ка­ми в ре­дак­то­ре, ти­па Vi, Nano или Emacs, то и на здо­ро­вье.

За­пуск Cherokee-admin

За­пуск Cherokee Admin из команд­ной стро­ки до­воль­но прост. Про­сто от­крой­те тер­ми­нал и вве­ди­те от имени root ко­ман­ду

cherokee-admin

По­сле за­пус­ка Cherokee Admin и пе­ре­хо­да на localhost:9090, за­пус­ти­те web-сер­вер зе­ле­ной кноп­кой За­пуск Сер­ве­ра. Ино­гда web-сер­вер уже за­пу­щен сам, осо­бен­но ес­ли вы ис­поль­зо­ва­ли для уста­нов­ки пред­на­стро­ен­ный па­кет Cherokee. За­пуска­ют­ся два про­цес­са: cherokee и cherokee-worker. По­следний, как сле­ду­ет из на­звания, от­ве­ча­ет за со­единения с сер­ве­ром и очень эф­фек­ти­вен, осо­бен­но при пи­ко­вых на­груз­ках.

Пре­ж­де чем ид­ти даль­ше, сто­ит от­ме­тить, что ка­кие бы из­менения вы ни сде­ла­ли че­рез ин­тер­фейс Cherokee Admin, со­хра­няй­те их на­жа­ти­ем кноп­ки Сохранить. Ес­ли web-сер­вер уже за­пу­щен, мо­жет возник­нуть про­бле­ма, по­то­му что но­вые на­строй­ки не бу­дут доступ­ны до сле­дую­ще­го пе­ре­за­пуска сер­ве­ра. Что­бы обой­ти это ог­раничение, Cherokee Admin пре­достав­ля­ет два спо­со­ба пе­ре­за­пустить web-сер­вер, в ви­де оп­ций Пол­ная и По­этап­ная пе­ре­за­груз­ка. Пер­вая до­воль­но стан­дарт­на: вы из­ме­няе­те файл на­строй­ки, за­тем оста­нав­ли­вае­те и пе­ре­за­пускае­те про­цесс. Пол­ная пе­ре­за­груз­ка неудоб­на тем, что при­дет­ся за­крыть все за­пу­щен­ные со­единения, и они бу­дут пре­рва­ны до сле­дую­щей пе­ре­за­груз­ки. Аль­тер­на­ти­ва – По­этап­ная пе­ре­за­груз­ка, осу­ще­ст­в­ляе­мая про­цес­са­ми Cherokee и Cherokee-worker со­вме­ст­но. По­этап­ная пе­ре­за­груз­ка со­хранит ста­рые па­ра­мет­ры для дей­ст­вую­щих со­единений, а но­вые бу­дут уста­нав­ли­вать­ся уже с но­вы­ми па­ра­мет­ра­ми. В ре­зуль­та­те мы из­бегнем про­стоя.

Вир­ту­аль­ные сер­ве­ры

Как мы от­ме­ти­ли, во вклад­ке VServer вы най­де­те свой web-сер­вер по умол­чанию и все дру­гие вир­ту­аль­ные сер­ве­ры, ко­то­рые вы соз­да­ди­те. При пер­вом за­пуске там бу­дет толь­ко один вир­ту­аль­ный сер­вер под на­званием «по умол­чанию». Так что же та­кое VServer на са­мом де­ле? Это вир­ту­аль­ный сер­вер – ме­ханизм аб­ст­рак­ции, по­зво­ляю­щий оп­ре­де­лить необ­хо­ди­мый на­бор па­ра­мет­ров и пра­вил для од­но­го или несколь­ких до­ме­нов. Та­ким об­ра­зом, ес­ли кро­ме web-сер­ве­ра по умол­чанию нет ника­ких дру­гих, по­ве­дение web-сер­ве­ра бу­дет оп­ре­де­лять­ся толь­ко па­ра­мет­ра­ми по умол­чанию.

Скорая помощь

В ран­них ре­ли­зах Cherokee за­пус­кал­ся под root по умол­ча­нию, что соз­да­ва­ло оп­ре­де­лен­ный риск. Те­перь в раз­де­ле Permissions ис­поль­зу­ет­ся User Directive в со­че­та­нии с Group Directive, ко­то­рые ве­лят де­мо­ну пе­ре­клю­чить­ся на оп­ре­де­лен­но­го поль­зо­ва­те­ля или груп­пу как мож­но ско­рее (www-data).

Пред­по­ло­жим, од­на­ко, что мы соз­да­ли но­вый VServer и оп­ре­де­ли­ли на­бор пра­вил для ги­по­те­ти­че­­ско­­го до­ме­на linuxformat.is.cool. В этом слу­чае, дан­ный VServer бу­дет вы­зы­вать­ся ка­ж­дый раз, когда ад­рес сов­па­да­ет с на­шим именем до­ме­на. Что­бы про­ил­лю­ст­ри­ро­вать этот про­цесс, да­вай­те вме­сте соз­да­дим VServer linuxformat.is.cool. Во-пер­вых, соз­да­дим сле­дую­щую пап­ку в корне до­ку­мен­тов web-сер­ве­ра (обыч­но /var/www):

mkdir /var/www/linuxformat.is.cool

Те­перь зай­дем на страницу VServer Cherokee Admin и вы­бе­рем сер­вер по умол­чанию. На­жми­те на кноп­ку Клониро­вать вы­бран­ный вир­ту­аль­ный сер­вер [Clone Selected Virtual Server] ря­дом со знач­ком плюс и на­жми­те Под­твер­дить [Confirm]. Вернитесь на вклад­ку Ос­нов­ные [Basic] и за­мените имя вир­ту­аль­но­го сер­ве­ра на нечто бо­лее за­по­ми­наю­щее­ся для вас – мы вы­бра­ли linuxformat.is.cool. За­тем из­мените корневой ка­та­лог до­ку­мен­тов на /var/www/linuxformat.is.cool.

На­брав http://linuxformat.is.cool в ва­шем брау­зе­ре, вы уви­ди­те со­об­щение об ошиб­ке. Что­бы это­го из­бе­жать, до­бавь­те сле­дую­щую стро­ку в файл /etc/hosts:

127.0.0.1 linuxformat.is.cool

Пра­ви­ло по умол­ча­нию во вклад­ке Host Match [Со­впаде­ние на­зва­ния] бу­дет от­лич­но ра­бо­тать, и ре­зуль­та­том бу­дет со­дер­жи­мое пап­ки linuxformat.is.cool, ко­то­рая пус­та по умол­ча­нию.

Пра­ви­ла По­ве­де­ния

Са­мой де­ли­кат­ной и зна­чи­мой ча­стью в раз­де­лах VServer Cherokee Admin яв­ля­ет­ся вклад­ка По­ве­дение. Таб­ли­ца Пра­ви­ла По­ве­дения по­ка­зы­ва­ет, ка­кие пра­ви­ла бу­дут при­ме­нять­ся к оп­ре­де­лен­но­му до­ме­ну и в ка­кой по­сле­до­ва­тель­но­сти (свер­ху вниз). В на­шем слу­чае, по­сколь­ку мы клониро­ва­ли VServer по умол­чанию, мы взя­ли за осно­ву пять пра­вил, ко­то­рые уже на­строе­ны.

Рас­смот­рим од­но из этих пра­вил, что­бы по­нять их ра­бо­ту. На­при­мер, пра­ви­ло Directory/about ве­лит web-сер­ве­ру де­лать что-нибудь, ес­ли кто-то за­гру­жа­ет ад­рес http://linuxformat.is.cool/about.

На­жми­те на ссыл­ку Ка­та­лог/о для досту­па к де­таль­ной ин­фор­ма­ции по пра­ви­лу и его на­строй­кам. На­при­мер, пе­рей­ди­те на вклад­ку Об­ра­бот­чик – и вы уви­ди­те, что web-сер­вер ис­поль­зу­ет об­ра­бот­чик ин­фор­ма­ции о сер­ве­ре, что­бы со­брать кон­тент, воз­вра­щае­мый кли­ен­там, за­про­сив­шим пап­ку .../abоut. В этом слу­чае пре­д­уста­нов­лен­ный об­ра­бот­чик пред­ла­га­ет три воз­мож­ных ва­ри­ан­та для вы­бо­ра из вы­па­даю­ще­го спи­ска: Ин­фор­ма­ция о сер­ве­ре, Толь­ко ин­фор­ма­ция о вер­сии и Ин­фор­ма­ция о сер­ве­ре + Со­единения. Эти на­звания го­во­рят са­ми за се­бя. Что­бы по­ме­нять со­став вы­во­да, про­сто вы­бе­ри­те од­ну из оп­ций, не ис­поль­зуе­мую в дан­ный мо­мент, за­тем со­храните, ис­поль­зуя По­этап­ную пе­ре­за­груз­ку, за­тем пе­рей­ди­те сно­ва по ссыл­ке http://linuxformat.is.cool/about, что­бы уви­деть из­менения на странице.

Пра­ви­ла для со­от­вет­ст­вую­ще­го им VServer оценива­ют­ся свер­ху вниз. Ес­ли пра­ви­ло удов­ле­тво­ря­ет усло­ви­ям, или Ис­тин­но, за­пуска­ет­ся об­ра­бот­чик пра­ви­ла. Ес­ли за­пу­щен­ное пра­ви­ло по­ме­че­но как Окон­ча­тель­ное, оцен­ка свер­ху-вниз сра­зу же пре­кра­ша­ет­ся. Про­цесс объ­е­динения свер­ху-вниз чрез­вы­чай­но мощ­ный и гиб­кий, он по­зво­ля­ет соз­дать вир­ту­аль­ные сер­ве­ры с вы­со­кой сте­пе­нью на­страи­вае­мо­сти. По­экс­пе­ри­мен­ти­руй­те, до­би­ва­ясь нуж­ной вам функ­цио­наль­но­сти.

Лич­ные пап­ки

Скорая помощь

Весь про­ект пре­крас­но до­ку­мен­ти­ро­ван он­лайн на http://сайте www.cherokee-project.com/doc, но ес­ли вы хо­ти­те вос­поль­зо­вать­ся пре­иму­ще­ст­вом кон­тек­ст­ной под­сказ­ки в пра­вом верх­нем уг­лу ин­тер­фей­са Cherokee Admin, ре­ко­мен­ду­ем ус­та­но­вить Cherokee-doc. Этот па­кет ре­гу­ляр­но об­нов­ля­ет­ся и мо­жет вам очень пригодиться.

Мы уста­но­ви­ли и за­пусти­ли вир­ту­аль­ные сер­ве­ры; что даль­ше? Навер­ное, вам не помешает при­ват­ная пап­ка для ав­то­ри­зо­ван­ных поль­зо­ва­те­лей, что­бы ска­чи­вать до­ку­мен­ты по­вы­шен­ной сек­рет­но­сти? Это лег­ко осу­ще­ст­вить, соз­дав но­вое пра­ви­ло по­верх су­ще­ст­вую­щих. Во-пер­вых, соз­дай­те под­пап­ку в до­мене под на­званием Private, за­тем пе­рей­ди­те в VServers > По­ве­дение > Управ­ление пра­ви­ла­ми и на­жми­те на кноп­ку До­ба­вить Пра­ви­ло По­ве­дения (кноп­ка со знач­ком «плюс» в верхнем пра­вом уг­лу). В сле­дую­щем окне вы­бе­ри­те Пап­ку из вы­па­даю­ще­го спи­ска и до­бавь­те /private в по­ле web-пап­ки. За­тем по­тре­бу­ет­ся пе­рей­ти на вклад­ку Об­ра­бот­чик и вы­брать запись List & Send из вы­па­даю­ще­го спи­ска. На­конец, во вклад­ке Безо­пас­ность вы­бе­ри­те пред­по­чи­тае­мый Ме­ханизм Ав­то­ри­за­ции, за­полните обя­за­тель­ное по­ле Realm и со­храните на­строй­ки.

Этот ка­та­лог мож­но на­стро­ить по-раз­но­му. Во-пер­вых, как неокон­ча­тель­ную вер­сию и без об­ра­бот­чи­ка – в этом слу­чае со­от­вет­ст­вую­щее пра­ви­ло бу­дет ра­бо­тать как фильтр, что­бы ис­клю­чить неав­то­ри­зо­ван­ных поль­зо­ва­те­лей; во-вто­рых, как окон­ча­тель­ную вер­сию с на­стро­ен­ным об­ра­бот­чи­ком List & Send. Мы тес­ти­ро­ва­ли ме­ханизм Fixed List с ба­зо­вой ав­то­ри­за­ци­ей, до­ба­вив несколь­ко пар поль­зо­ва­тель/па­роль в кон­це страницы, и все ра­бо­та­ло пре­крас­но. Конеч­но, ес­ли вам нуж­но шиф­ро­вание поль­зо­ва­тель­ско­го па­ро­ля для снижения рис­ков безо­пас­но­сти, основ­ной ме­тод ав­то­ри­за­ции, воз­мож­но, не са­мый луч­ший ва­ри­ант. Не паникуй­те, есть и аль­тер­на­ти­вы, вклю­чая Digest Method.

Wildcards

Те­перь по­смот­рим, как на­стро­ить VServer сра­зу на два до­ме­на: linuxformat.is.cool и linuxformat.is.great. При соз­дании пер­во­го VServer мы не ка­са­лись вклад­ки Host Match, по­то­му что хо­те­ли сравнивать имя вир­ту­аль­но­го сер­ве­ра с его соб­ст­вен­ным до­мен­ным именем. Что про­изой­дет, ес­ли у вас бо­лее од­но­го до­ме­на – .com и .org, на­при­мер – и вы хо­те­ли их оба при­вя­зать к од­но­му сай­ту? Это до­воль­но лег­ко осу­ще­ст­вить на вклад­ке Host Match: смените Ме­тод на Wildcards, за­тем до­бавь­те пол­ные име­на до­ме­нов при по­мо­щи кноп­ки Add New Wildcard… В на­шем слу­чае мы до­ба­ви­ли и .cool, и .great и от­ре­дак­ти­ро­ва­ли файл /etc/hosts, впи­сав стро­ку

127.0.0.1 linuxformat.is.cool linuxformat.is.great

Пре­ды­ду­щая мо­ди­фи­ка­ция фай­ла /ets/hosts – это все, что тре­бу­ет­ся, по­то­му что это толь­ко ими­та­ция и этот файл бу­дет вы­сту­пать в ка­че­­ст­ве на­ше­го DNS для раз­ре­шения имен до­ме­нов. Страница VServers до­воль­но ин­туи­тив­на, но ес­ли вам по­тре­бу­ет­ся до­полнитель­ная по­мощь, зай­ди­те на сайт http://www.cherokee-project.com/doc/config_virtual_servers.html.

Власть – ничто, ес­ли вы не мо­же­те ее кон­тро­ли­ро­вать, и это од­на из при­чин, по­че­му ин­тер­фейс Cherokee Admin вклю­ча­ет мно­же­ст­во Мас­те­ров. Это по­мо­га­ет web-ад­минист­ра­то­рам вы­пол­нять об­щие за­да­чи луч­ше и бы­ст­рее. Сей­час мы пе­ре­ве­дем наш ста­ти­че­­ский web-сер­вер в ди­на­ми­че­­ский, вклю­чив PHP с по­мо­щью мас­те­ра PHP. От­ме­тим, что это дей­ст­вие не по­влия­ет на web-сер­вер по умол­чанию, толь­ко на наш .cool VServer. Для на­ча­ла, на­жми­те на ссыл­ку VServers, вы­бе­ри­те вир­ту­аль­ный сер­вер linuxformat.is.cool и от­крой­те вклад­ку По­ве­дение. За­тем на­жми­те на кноп­ку Управ­ление пра­ви­ла­ми, и далее на кноп­ку «плюс» в ле­вом верхнем уг­лу. В раз­де­ле Язы­ки вы­бе­ри­те PHP, за­тем на­жми­те на кноп­ки До­ба­вить и Соз­дать. Те­перь у ва­ше­го VServer есть но­вое пра­ви­ло по­верх всех осталь­ных, под на­званием Рас­ши­рения PHP. Взгля­нув на вклад­ку Пра­ви­ла и Об­ра­бот­чик, вы уви­ди­те, что де­ла­ет мас­тер. Ка­ж­дый файл с рас­ши­рением PHP на этом VServer пе­ре­да­ет­ся об­ра­бот­чи­ку FastCGI, а осо­бый ин­те­ре­пре­тор PHP на­стро­ен ав­то­ма­ти­че­­ски на странице Ис­точники и при­вя­зан к это­му пра­ви­лу внизу вклад­ки Об­ра­бот­чик.

Пе­рей­дя к странице Ис­точники, вы уви­ди­те, что она боль­ше не пуста – досту­пен наш пер­вый и един­ст­вен­ный ис­точник ин­фор­ма­ции. Ис­точники мо­гут быть раз­лич­ных ти­пов, в том чис­ле локаль­ны­ми и уда­лен­ны­ми. Од­но­тип­ные ис­точники мо­гут стать до­полнением к стра­те­ги­ям ба­лан­си­ров­ки и от­ка­зоустой­чи­во­сти.

По­то­ко­вое ме­диа и об­рат­ный про­кси

Фа­за 1 (за­прос кли­ен­та) и Фа­за 2 (от­вет сер­ве­ра). Всем ди­ри­жи­ру­ет об­рат­ный про­кси.

Ус­та­но­вить web-сер­вер Cherokee в ка­че­­ст­ве по­то­ко­во­го ме­диа-сер­ве­ра с по­мо­щью встро­ен­но­го мас­те­ра plug-and-play то­же по­ра­зи­тель­но лег­ко. Как обыч­но, пе­рей­ди­те на страницу VServers и вы­бе­ри­те вир­ту­аль­ный сер­вер, за­тем пе­рей­ди­те на вклад­ку По­ве­дение и на­жми­те на кноп­ку Управ­ление Пра­ви­ла­ми. На­жми­те на кноп­ку «плюс», и поя­вит­ся всплы­ваю­щее ок­но. В этом но­вом окне пе­рей­ди­те к раз­де­лу По­то­ко­вый ме­диа-файл. Те­перь нуж­но толь­ко до­ба­вить пра­ви­ло, и ме­диа-сер­вер го­тов.

По за­вер­шении ра­бо­ты мас­те­ра вы уви­ди­те но­вое пра­ви­ло, вы­ше всех осталь­ных: оно от­ве­ча­ет за об­ра­бот­ку ме­диа-фай­лов с пре­дуста­нов­лен­ны­ми рас­ши­рения­ми, на­при­мер, MP3, OGV, FLV, MOV, OGG и MP4. Конеч­но, спи­сок фай­ло­вых рас­ши­рений мож­но и рас­ши­рить, и умень­шить. Во вклад­ке По­ве­дение вы най­де­те несколь­ко оп­ций для наи­луч­шей на­строй­ки ме­диа-сер­ве­ра.

Пред­ставь­те се­бе, что наш сер­вер с по­то­ко­вым ме­диа стал доста­точ­но хо­ро­шо (или пе­чаль­но) из­вес­тен и об­ра­зу­ет вну­ши­тель­ный тра­фик. Муд­рый web-ад­минист­ра­тор дол­жен за­ду­мать­ся, как уве­ли­чить ре­сур­сы, что­бы улуч­шить про­из­во­ди­тель­ность и соз­дать ре­зерв­ную ко­пию на слу­чай, ес­ли основ­ной сер­вер рухнет. Cherokee по­мо­жет нам и с этой непро­стой за­да­чей. HTTP Reverse Proxy – это ком­понент Cherokee, ко­то­рый ра­cтал­ки­ва­ет вхо­дя­щий се­те­вой тра­фик по сер­ве­рам и пред­став­ля­ет еди­ный ин­тер­фейс по за­про­сам. Это мож­но сде­лать с пе­ре­пи­сы­ванием за­го­лов­ков па­ке­тов или без него. В пер­вом слу­чае кли­ент да­же не уз­на­ет, что дей­ст­вия вы­пол­ня­ют­ся на дру­гом сер­ве­ре из пу­ла.

На Фа­зе 1, кли­ент от­прав­ля­ет за­прос на об­рат­ный про­кси, ко­то­рый восполь­зу­ет­ся вы­бран­ной стра­те­ги­ей ба­лан­си­ров­ки на­груз­ки, пре­об­ра­зу­ет за­го­ло­вок па­ке­та и от­пра­вит его на один из внут­ренних сер­ве­ров из пу­ла. На Фа­зе 2 от­вет от внут­реннего сер­ве­ра при­бы­ва­ет на об­рат­ный про­кси, ко­то­рый от­прав­ля­ет от­вет об­рат­но за­пра­ши­ваю­ще­му кли­ен­ту без вся­ких ненуж­ных за­го­лов­ков HTTP.

Еще од­на ин­те­рес­ная функ­ция, так­же ис­поль­зую­щая ба­лан­си­ров­ку на­груз­ки – это так на­зы­вае­мый Мост ба­зы дан­ных. Ес­ли ваш сайт пе­ре­гру­жен и к ба­зе дан­ных под­клю­че­но мно­го со­единений, соз­дание бо­лее од­ной ба­зы дан­ных дей­ст­ви­тель­но бу­дет вы­хо­дом. С Cherokee мож­но ис­поль­зо­вать уро­вень аб­ст­рак­ции ба­зы дан­ных – Мост ба­зы дан­ных – и за­дать ему об­ра­бот­ку пу­ла баз дан­ных. Ме­ханизм моста опять-та­ки по­зво­ля­ет сба­лан­си­ро­вать на­груз­ку, и мо­жет вы­сту­пать так­же как про­кси, кэ­ши­руя за­про­сы ба­зы дан­ных. Он вы­пол­ня­ет фраг­мен­ти­ро­ван­ное ко­ди­ро­вание при по­сто­ян­ных со­единениях ба­зой дан­ных ме­ж­ду мостом и сер­ве­ра­ми баз дан­ных, а так­же вы­да­ет ар­хи­ви­ро­ван­ные Gzip ре­зуль­та­ты для со­хранения про­пу­ск­ной спо­соб­но­сти. Раз­ве не здо­ро­во?

Ус­та­но­вив мост, вы мо­же­те вы­брать один из язы­ков JSON, PHP, Ruby и Python в ка­че­­ст­ве сред­ст­ва для взаи­мо­дей­ст­вия со все­ми ва­ши­ми сер­ве­ра­ми баз дан­ных MySQL в пу­ле.

Вы­иг­рать гон­ку

Мы осве­ти­ли часть то­го, что Cherokee мож­но сде­лать, но что еще он пред­ла­га­ет? Как мы на­мек­ну­ли в на­ча­ле этой ста­тьи – ско­рость. Что­бы про­де­мон­ст­ри­ро­вать разницу, мы ре­ши­ли про­тес­ти­ро­вать Apache, Nginx, Lighttpd и, конеч­но, Cherokee, стрес­со­вым ин­ст­ру­мен­том Apache Bench. В тес­тах для всех web-сер­ве­ров мы ис­поль­зо­ва­ли на­строй­ки по умол­чанию.

Скорая помощь

Ес­ли вы хо­ти­те по­смот­реть ра­бо­чие по­то­ки на ва­шей ма­ши­не, за­пус­ти­те сле­дую­щую ко­ман­ду и по­пы­тай­тесь сге­не­ри­ро­вать тра­фик на web-сер­ве­ре с вы­бран­ным стрес­со­вым ин­ст­ру­мен­том:

top -D1 -u www-data -H

Вы­ше, -d уста­нав­ли­ва­ет за­держ­ку, в ре­зуль­та­те че­го ко­ман­да top об­нов­ля­ет­ся еже­се­кунд­но, а -u www-data по­ка­зы­ва­ет толь­ко про­цес­сы, при­над­ле­жа­щие www-data поль­зо­ва­те­лю. На­ко­нец, -H вклю­ча­ет по­то­ки.

Для мо­де­ли­ро­вания при­ме­ня­лись две ма­ши­ны, со­единен­ные ка­бе­лем Ethernet. Сер­вер ра­бо­тал под про­цес­со­ром Pentium Dual-Core T4300 на 2,10 ГГц с 4 ГБ опе­ра­тив­ной па­мя­ти, а кли­ент­ская ма­ши­на, где тес­ти­ро­ва­лись web-сер­ве­ра, ра­бо­та­ла под 2‑ГГц про­цес­со­ром Pentium M с 1 ГБ опе­ра­тив­ной па­мя­ти. Обе стан­ции име­ли ин­тер­фейс Gigabit Ethernet.

В хо­де ис­пы­таний мы сде­ла­ли неболь­шой ста­ти­че­­ский файл (100 байт), что­бы пре­дот­вра­тить су­жение про­пу­ск­ной спо­соб­но­сти се­ти и по­ка­зать про­из­во­ди­тель­ность ПО web-сер­ве­ра, а не яд­ра. За­тем мы про­ве­ли сле­дую­щие два сце­на­рия: в пер­вом кли­ент, за­пра­ши­ваю­щий файл 100.html, не ис­поль­зу­ет по­сто­ян­ное со­единение или об­мен де­жур­ны­ми со­об­ще­ния­ми, а во вто­ром этот об­мен вклю­чен:

ab [-k] -n 10000 -c <concurrency_level> http://<server_IP>/100.html

Здесь оп­ция вклю­ча­ет об­мен, -n 10000 генери­ру­ет 10 000 HTTP-за­про­сов, а -C оп­ре­де­ля­ет, сколь­ко за­про­сов мож­но од­но­вре­мен­но сде­лать це­ле­во­му web-сер­ве­ру. Уро­вень па­рал­ле­лиз­ма яв­ля­ет­ся здесь кри­ти­че­­ским па­ра­мет­ром. В ре­аль­но­сти за­гру­жен­ный web-сер­вер дол­жен ра­бо­тать во мно­го худ­ших усло­ви­ях, по­это­му их тес­ти­ро­вание с мно­го­чис­лен­ны­ми за­про­са­ми в од­но и то же вре­мя яв­ля­ет­ся хо­ро­шим уп­ражнением.

Мы по­вто­ря­ли наши тес­ты при оди­на­ко­вых усло­ви­ях для всех че­ты­рех вы­ше­упо­мя­ну­тых web-сер­ве­ров, и Cherokee стал по­бе­ди­те­лем с боль­шим от­ры­вом. Взгляните на гра­фи­ки и убе­ди­тесь в этом са­ми.

Тест 1

Эти гра­фи­ки ото­бра­жа­ют за­про­сы в се­кун­ду од­но­вре­мен­но, и Cherokee здесь, не­со­мнен­но, в ли­де­рах (без де­жур­но­го об­ме­на).

Тест 2

Ре­зуль­та­ты тес­та с де­жур­ным об­ме­ном по­ка­за­ли, что web-сер­вер Cherokee спо­со­бен об­слу­жи­вать чуть ли не вдвое боль­ше за­про­сов, чем Apache!

До­маш­няя стра­ни­ца Cherokee Admin

До­маш­няя стра­ни­ца Cherokee Admin

Раз­би­ра­ем вы­вод Cherokee-admin

За­пусти­те Cherokee-admin, и вы уви­ди­те два вы­ход­ных раз­де­ла: Ло­гин и Web-ин­тер­фейс.

Раз­дел Ло­гин вы­да­ет вам ло­гин с па­ро­лем и од­но­ра­зо­вый па­роль, ко­то­рый мож­но ис­поль­зо­вать для вхо­да в ин­тер­фейс ад­минист­ра­то­ра. В раз­де­ле Web вы мо­же­те най­ти ин­фор­ма­цию о том, ка­кая ссыл­ка ис­поль­зу­ет­ся для досту­па к Cherokee Admin. Спер­ва про­цесс хрониче­­ско­­го вво­да в ин­тер­фей­се слож­но­го па­ро­ля мо­жет по­ка­зать­ся немно­го нуд­ным, но это необ­хо­ди­мо, ес­ли вы цените безо­пас­ность. В про­тив­ном слу­чае ка­ж­дый поль­зо­ва­тель, ко­то­ро­му раз­ре­ше­но зай­ти на сер­вер, смо­жет лег­ко из­менить его на­строй­ки, на­брав localhost:9090 в ка­че­­ст­ве ад­ре­са. Од­на­ко ес­ли вы по­че­му-ли­бо хо­ти­те из­бе­жать про­цес­са ав­то­ри­за­ции, его мож­но ис­клю­чить, до­ба­вив в ко­ман­ду -u. Дру­гая оп­ция ин­тер­фей­са ад­минист­ра­то­ра – -b. Она да­ет cherokee-admin раз­ре­шение на со­единение уда­лен­ных IP-ад­ре­сов с web-ин­тер­фей­сом и вы­полнение ад­минист­ра­тив­ных за­дач, не за­хо­дя под учет­ной за­пи­сью на фи­зи­че­­ский сер­вер, где за­пу­щен сherokee-admin. Но го­раз­до бо­лее безо­пас­ный спо­соб раз­ре­шить уда­лен­ное ад­минист­ри­ро­вание – ис­поль­зо­вать тун­не­ли­ро­ва­ние SSH ко­ман­дой

ssh -L 9090:localhost:9090 remote_IP

Она да­ет хос­ту remote_IP дос­туп к ин­тер­фей­су Cherokee Admin, ис­поль­зуя URL http://localhost:9090.

Личные инструменты
  • Купить электронную версию
  • Подписаться на бумажную версию