Yaws - лёгкий web сервер на Erlang
Недавно на всех серверах кои я администрирую, решил сменить 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.