Все о Linux. LinuxRSP.Ru
Альт Линукс СПТ 6.0 Сертификат ФСТЭК

Cвежие новости Linux и BSD, анонсы статей и книг прямо в почтовый ящик!
Подписаться письмом


 Сегодняшние новости:

В GIMP наконец-то появилась обработка с точностью 16 и 32 разряда на канал

В одном окне: GIMP 2.8

Релиз OpenBSD 5.1

HTML-редактор: BlueGriffon 1.5

Релиз Xfce 4.10

Команда Chromium представила кластер для автоматизации выявления уязвимостей

В Microsoft Office 15 будет обеспечена поддержка формата ODF 1.2

Анонсирован новый свободный анимационный фильм Tube

Обновление ядра: Linux 3.0.29, 3.2.16, 3.3.3

Представлен OpenSSH 6.0

Релиз графического редактора Pinta 1.2, претендующего на роль аналога Paint.NET

Вышел Firefox 12

Google прекращает поддержку Linux-версии приложения Picasa

Эмулятор приставок: Mednafen 0.9.21-wip

Линус Торвальдс получил премию Millennium Technology Prize 2012

Canonical не заинтересована в участии в разработке ядра Linux

Распределенные вычисления: BOINC 7.0

Google

 Новые статьи :

Передача снапшота ZFS по сети

Правила хорошего тона: SSH

Некоторые рассуждения о защите от ddos на примере защиты от SSL denial of service attack

Быстрый проброс портов на шлюзе во внутреннюю сеть или на другой хост. Быстро NAT'им порты. rinetd.

NAT'им отдельные порты или "а что делать, если мой веб-сервер внезапно переехал на другую машину". Проброс портов в локалке на шлюзе наружу.

Как справляться с запланированной недоступностью веб-сайта

Архитектура Google 2011

Мониторинг Nginx с помощью MRTG

Решение проблем при использовании "1c предприятие" 8.2 в Linux

25 правил .htaccess, которые должен знать каждый web-разработчик

Централизованное резервное копирование данных Windows и *nix серверов средствами Bacula

Краткое руководство по GNOME Shell в Ubuntu 11.10

Advanced Bash-Scripting Guide Искусство программирования на языке сценариев командной оболочки

   Дистрибутивы и атрибутика



DeveloperWorks Россия





Rambler's Top100


 
 

Веб-сервер bozohttpd + CGI (shell scripts) на NetBSD 5.x

Калегин Сергей Николаевич
(май 2011 года)
magnus@pochta.ru

С недавних пор я перевёл все свои сервера на операционные системы BSD и хочу рассказать об их преимуществах по сравнению с другими ОС, а также поделиться опытом их установки и настройки.

Итак. Сразу хотелось бы предупредить вопросы, связанные с выбором этих систем. Почему я выбрал именно BSD (преимущественно OpenBSD и NetBSD)? Дело в том, что это лучшие операционные системы из тех, с которыми мне приходилось работать! До BSD на моих серверах стояли различные версии и реализации ОС Windows, Linux и Mac OS, однако ни одна из них не смогла обеспечить такую стабильность, нетребовательность к ресурсам и универсальность, а также простую, быструю и лёгкую настройку сервера (а именно этим сисадмин и занимается) как системы BSD. Более подробно об этом, я постараюсь рассказать в следующих своих статьях на данном сайте. А начать обзорный цикл статей по работе с системами BSD мне хотелось бы с демонстрации поразительной простоты и целостности данных ОС. Для примера я взял установку и настройку Web-сервера "с нуля", так как это одна из самых популярных функций сервера и, наверное, самая популярная ассоциация у пользователей всемирной паутины. К тому же, сделать это на базе последних версий NetBSD и OpenBSD не просто, а ОЧЕНЬ просто! Делается это всего в три шага:

1) Выбрать компьютер для установки сервера;
2) Установить и настроить операционную систему (возьмём NetBSD 5.0);
3) Запустить и настроить bozohttpd (встроенный Web-сервер NetBSD 5.x).

Вся эта работа займёт всего несколько минут!!! Скорость и простота - главные преимущества BSD-систем!

1. Начнём с выбора компьютера для установки сервера. Хотя... особый подбор здесь не требуется, так как, в данном случае, подойдёт практически любой компьютер, который попадётся под руку (старый, слабый, списанный в утиль и т.п.), ведь NetBSD - самая универсальная система в мире! Её можно поставить куда угодно, даже на тостер (в котором хлеб жарят)!

2. Далее, устанавливаем на выбранный компьютер ОС NetBSD. Для этого потребуется всего несколько сотен мегабайт (!!!) свободного места на диске (ну или на том носителе, куда Вы будете ставить систему) и пара минут времени. Подробное описание процесса установки я дам в отдельной статье. А для тестового сервера подойдут параметры по умолчанию, просто следуйте инструкциям на экранах инсталлятора (sysinst).

3. Ну а теперь самое интересное - запуск и настройка Web-сервера. Для этого в ОС NetBSD (как и в OpenBSD) ничего дополнительно ставить не придётся, так как в этих системах уже есть набор основных серверов (демонов), их нужно только включить! Делается это очень просто. Открываем на редактирование (с правами root-a) файл /etc/rc.conf и прописываем в него всё, что касается настроек httpd (там всего 4 пунктика). Образец данного конфигурационного файла (с примерами запуска различных серверов) лежит в каталоге /etc/defaults/ и он же является конфигурационным файлом по умолчанию (если в /etc/rc.conf ничего не прописано). Если же копаться в этом sample лень, то можно воспользоваться текстовым фильтром grep для извлечения нужных пунктов из /etc/defaults/rc.conf. Делается это так (один из вариантов):

cat /etc/defaults/rc.conf | grep httpd >> /etc/rc.conf
В результате выполнения этой команды в файл /etc/rc.conf будут добавлены все необходимые записи для запуска и конфигурации http-сервера. Остаётся их только подправить:
httpd=YES (запускает сам сервер bozohttpd)
Остальные можно оставить как есть.

Вот и всё. Теперь у Вас свой Web-сервер. После перезагрузки, разместите стартовый файл index.html (с которого начинается просмотр сайта) в папку /var/www/ и проверьте работу сервера с помощью браузера (лучше с другого компьютера сети) по адресу http://192.168.1.50/, где IP-шник 192.168.1.50 является адресом вашего сервера в сети. Более того, сервер изначально поддерживает CGI и позволяет обрабатывать запросы Web-пользователей с помощью shell-скриптов, расположенных в специальной папке, указание на которую прописывается в качестве параметра непосредственно при запуске httpd или же флага в файле /etc/rc.conf например так:

httpd_flags="-c /var/www/cgi" (все CGI-скрипты должны лежать в этой папке!)
Код CGI-скрипта для /bin/sh выглядит примерно следующим образом:
--------------------
#!/bin/sh

echo "Content-type: text/html";
echo "";

echo Today is `date`;

exit 0;

---------------------
(Данный скрипт просто выводит текущую дату на экран.)

При необходимости, с помощью той же команды echo "...."; можно выводить и HTML-код или же можно вставить его из отдельного файла с помощью cat и т.п. программ. Обратите внимание на то, что при обращении к CGI-файлу в URL обязательно нужно указывать инфикс .../cgi-bin/..., иначе он выполняться не будет! И не забудьте сделать скрипт исполняемым (с помощью команды chmod). Например:

chmod +x test1.sh

Далее можно обращаться к нему напрямую:

/var/www/cgi/./test1.sh
или же через браузер:
http://192.168.1.50/cgi-bin/test1.sh

Причём скрипты могут быть написаны как с помощью команд командного интерпретатора (типа /bin/sh) так и на любом языке программирования, для которого имеется интерпретатор в вашей системе (например Perl или Python).

После того как сервер уже заработал, наверняка, многие озадачатся вопросом насчёт конфигурации bozohttpd. Так вот, у этого сервера нет файлов конфигурации и это здорово! Никаких десятков непонятных инструкций (как, например у Apache), всё прописывается непосредственно при запуске сервера в качестве параметров (флагов). Описание всех этих параметров есть в man-e по httpd данной операционной системы (http://wiki.lissyara.su/wiki/Bozohttpd). Наслаждайтесь мощностью и простой BSD!


Опубликовано на LinuxRSP.ru с разрешения автора.
      

Связь | О проекте LinuxRSP | Реклама | О Linux
© 1999-2012 LinuxRSP


Реклама:
Лучшее предложение купить компьютер в Москве дешево . Жилищный юрист. Профессиональные юристы. Представительство в суде. Юридические услуги.