9F.Sphynkx.Org.Ua: In GNU We Trust

9front в своей сборке поставляет два веб-сервера: httpd - штатный веб-сервер, комплектовавшийся еще в оргингинальноМ Plan9 и более новый rc-httpd, напианный на скриптовом языке rc

httpd

Весьма примитивный веб-сервер, предназначенный для работы со статическим контентом. Подробности в httpd(8). Поддерживает только методы GET и HEAD протокола HTTP. Для работы с CGI-запросами может использовать сторонние программы. Для этого URL заппроса должен начинаться с magic, после чего указывается имя скрипта, напр.: http://sitename.tld/magic/getitem В этом случае веб-сервер ищет CGI-скрипт getitem в каталоге /bin/ip/httpd/ и передает ему управление. В этом каталоге уже присутствуют штатные save, imagemap, man2html и webls. Это бинарные CGI-программы, save обрабатывает POST-запросы от форм, webls позволяет организовать листинг директории.

httpd поддерживает простейшую форму авторизации. Если в запрашиваемом каталоге имеется файл .httplogin веб-сервер пытается считать из него логин и пароль. В файле .httplogin указывается имя домена, поле чего в отдельных строках указываются пары "логин пароль", разделенные пробелом.

Поддерживается и rewrite - список правил расположен в /sys/lib/httpd.rewrite

Запуск в простейшем случае:

ip/httpd/httpd -w /path/to/webdir

В связи с наличием более нового веб-сервера - rc-httpd, к использованию не рекомендуется.

rc-httpd

Новый веб-сервер от разработчиков 9front. Подробнее о нем в мануале rc-httpd(8). Это достаточно простой веб-сервер, но дающий больше возможностей и более гибкий в настройке.

Веб-сервер поддерживает субдомены с адресацией по имени, имеет более качественную поддержку CGI, поддерживает аутентификацию.

Веб-сервер расположен в /rc/bin/rc-httpd/. В подкаталоге handlers/ расположены обработчики запросов. /rc/bin/rc-httpd/rc-httpd - сам веб-сервер, напичсанный на скриптовом языке rc. Настройка веб-сервера осуществляется в файле /rc/bin/rc-httpd/select-handler. Там прописываются имена обслуживаемых хостов и обработчики.

Также надо открыть 80й порт и настроить его на работу с rc-httpd. Это делается переименованием имеющегося файла:

cp /rc/bin/service/!tcp80 /rc/bin/service/tcp80

после чего с внешней машины проверить телнетом отклик по 80 порту:

telnet 192.168.7.13 80