Недавно на всех серверах кои я администрирую, решил сменить lighttpd на что либо ещё более лёгкое, и конечно же, под чем либо более лёгким, я имел в виду nginx. Однако, раз уж я захотел сменить web сервер, то я не мог не посмотреть из интереса на другие лёгкие web сервера, и не мог не заметить web сервер Yaws.
Yaws (Yet Another Web Server) - web сервер написанный на языке Erlang. На языке, который по праву считается крайне производительным. Тоже самое можно сказать и об самом web сервере: по сравнению с apache2, yaws - просто реактивный.
Yaws поддерживает два режима работы:
- Как отдельный web сервер
- Как интегрированный web сервер в другое erlang приложение
Я опишу первый вариант.
Установка
Для работы web сервера само собой требуется erlang. Он установится как зависимость от yaws:
sudo aptitude install yaws
Настройка
Конфиг у yaws'а крайне простой, и понятный. Всё что мне потребовалось сделать для работы, это добавить хосты, и несколько строчек для php. Кстати о виртуальных хостах. Мне очень сильно понравилось то, как организована работа с ними в yaws. Всё довольно просто, прозрачно и удобно.
# проверьте чтобы было установлено в true
pick_first_virthost_on_nomatch = true
<server localhost>
port = 80
listen = 0.0.0.0
<redirect>
/ = example.com
</redirect>
</server>
<server example.com>
port = 80
listen = 0.0.0.0
docroot = /var/www/example.com
dir_listings = true
</server>
Всё довольно просто и понятно. Вначале мы делаем редирект на основной домен при обращении к серверу по ip адресу, или другими обходными способами. Далее добавили один домен.
PHP
Yaws прекрасно работает с php. Всё что нужно - это добавить несколько строчек в файл конфигурации.
Во первых путь до php5-cgi:
php_exe_path = /usr/php/bin/php-cgi
И к каждому виртуальному хосту на котором нужен php, добавить allowed_scripts = php :
<server example.com>
port = 80
listen = 0.0.0.0
docroot = /var/www/example.com
dir_listings = true
allowed_scripts = php
</server>
Этим не ограничиваются возможности yaws. Больше о его возможностях и документация - на официальном сайте Yaws.
Похожие записи:

Тоже к Эрлангу присматриваюсь, очень и очень интересный язык.
[Ответить]
bosha Отвечает:
Август 30th, 2010 at 10:16
С довольно быстрым интерпритатором как говорят. Сам на нём не писал никогда. Просто стал интересен, особенно после ejabberd =]
[Ответить]
Ссылка | Август 30th, 2010 at 10:04
Хмм, и насколько выше производительность? Где тесты можно посмотреть?
Какую нагрузку способен выдержать данный сервер? Умеет ли работать с php5-fpm??
Есть ли возможность настроить реврайты? А будет ли работать wordpress?
[Ответить]
bosha Отвечает:
Август 30th, 2010 at 16:52
Если верить википедии, то
Не знаю как работает с php5-fpm. Нигде не натыкался что кто-то пробовал, и упоминания об этом. Да и сам не пробовал.
Для реврайтов я видел хак. Там требовалось внести небольшие изменения в код, ну и конечно же реврайты переписать :)
[Ответить]
Juev Отвечает:
Август 30th, 2010 at 16:57
Ага, это как раз по вышеприведенной ссылке видно. Интересно еще было бы посмотреть сравнение с Nginx, как я тут уже писал.
Пока видел, что умеет работать с php-cgi, про все отсальное пока ничего не нашел.
Про реврайты тоже нашел статью, в которой указывается, что проблемы теже, что и в Nginx, то есть у wordpress появляется index.php в путях при включенном ЧПУ, и да, существуют хаки, позволяющие с этим бороться.
Попробовать что ли?? =))
Прям заинтересовало!
[Ответить]
Ссылка | Август 30th, 2010 at 13:24
Juev
http://www.sics.se/~joe/apachevsyaws.html
[Ответить]
Juev Отвечает:
Август 30th, 2010 at 16:12
Спасибо! Интересно еще было бы посмотреть сравнение с Nginx...
[Ответить]
Ссылка | Август 30th, 2010 at 15:57
Мозг сломал... Вроде все верно настраиваю, и все равно не работает.
Видно другой веб-сервер мешается, или я просто чего-то не понимаю.
[Ответить]
bosha Отвечает:
Сентябрь 17th, 2010 at 20:25
А что не так? Что именно не работает? У меня кстати он тоже не сразу заработал. Тоже непонятно почему. Делал всё последовательно, и каждый шаг проверял сразу. В итоге заработало...
[Ответить]
Juev Отвечает:
Сентябрь 18th, 2010 at 00:31
Разобрался... Оказалось, firewall все еще работал после удаления ispconfig. Он и блочил все запросы на нестандартные порты.
А я все гадал, какого фига после перезагрузки сервера возвращаются правила iptables, которые я сам не задавал, и никак не мог понять, откуда они брались. В конце концов разобрался. Удалил и установил обычный ufw. Теперь нет проблем с сервисами...
Начинаю эксперименты с Erlang и Lisp! =D
[Ответить]
bosha Отвечает:
Сентябрь 18th, 2010 at 10:28
А ты это сразу на VPS'ке делаешь? o_O
[Ответить]
Ссылка | Сентябрь 17th, 2010 at 19:27
Попытался использовать yaws в качестве основного веб-сервера. Создал простенький html файл. Провел тесты на нагрузку. Результат более чем скромный, много ниже, чем у nginx.
Может его еще доводить нужно до кондиции?? Пока не понятно.
[Ответить]
Ссылка | Сентябрь 22nd, 2010 at 22:15
А я вот сейчас прямо в данный момент пробую поставить YAWS на удалённый сервер, куда и планирую переехать. Сумасшествие? :)
[Ответить]
Juev Отвечает:
Декабрь 1st, 2010 at 22:03
Поставить YAWS на сервер довольно просто. Вопрос в том, что именно вы на нем собираетесь размещать. PHP без смысла, статику тоже. Если только писать приложение на нем. Тогда имеет смысл...
[Ответить]
Тормоз Отвечает:
Декабрь 1st, 2010 at 22:14
Это почему без смысла PHP? Апач просто толстый очень и надоел ) И не хочу в нём разбираться.
[Ответить]
bosha Отвечает:
Декабрь 1st, 2010 at 22:06
Или тяга к экспериментам :) Я бы лучше apache+nginx накатил, но это я... =)
[Ответить]
Тормоз Отвечает:
Декабрь 1st, 2010 at 22:15
Апач+Нгинкс - это слишком попсово и очень толсто. Боша, ты почему до сих пор не сделал запоминание в форме? На каждый комментарий заполнять поля, это вообще жуть какая-то.
[Ответить]
bosha Отвечает:
Декабрь 1st, 2010 at 22:24
Пусть попсово, зато кошерно и может быть чуточку толсто ;)
Да потому что я заколебался с этим WP и замучился разбираться в его быдлокоде. Я сейчас пилю себе бложик на django. Поэтому забил и не чиню, только пишу временами.
[Ответить]
Тормоз Отвечает:
Декабрь 1st, 2010 at 23:19
Так поставь старый шаблон, нафиг людей мучать?
[Ответить]
bosha Отвечает:
Декабрь 1st, 2010 at 23:20
Его пилить надо. Хотя стоит пожалуй. Добавлю в todo на завтра.
[Ответить]
Ссылка | Декабрь 1st, 2010 at 21:59