Что такое веб-сервер и как его установить?

помещение с серверами
Оглавление

Часто понятие «веб-сервер» заменяют словосочетанием «удаленный компьютер». На самом деле это не одно и то же. Сервер – это программа, установленная на удаленном компьютере. Как и любая программа, веб-сервер это набор инструкций для обработки данных. В качестве данных здесь выступают файлы и команды, которыми обмениваются два удаленных компьютера.

Как правило, услуга стандартного хостинга уже включает настроенный сервер. Однако на самых популярных тарифах директория, где установлен веб-сервер, недоступна. Обычно вам этот доступ и не нужен. Но мы же хотим большего. Тогда нам нужна аренда выделенного виртуального сервера. На диске удаленного компьютера вам выделяется место с предустановленной операционной системой. Это ваше пространство, где вам позволено все, в разумных пределах.

Тип предустановленной операционной системы можно выбрать. Как наиболее простую для начинающего можно порекомендовать Debian. Файлы веб-сервера уже должны присутствовать в стандартной установке. Используя специальные команды из консоли, вы можете обновить файлы или установить веб-сервер из исходника.

Для работы с удаленным компьютером в режиме «командной строки» используйте популярную утилиту Putty. Для редактирования файлов открывайте директории удаленного компьютера с помощью ftp-клиента, например Filezilla.

Основные настройки веб-сервера.

Теперь надо рассказать веб-серверу, что загружать в браузер пользователя, и где это брать. Но вначале надо найти сам файл настроек. Он называется httpd.conf. Первая директива, в самом начале файла называется ServerRoot. Она указывает на директорию, в которой находятся файлы сервера. Например “etc/apache2”/. Следующая важная директива это Listen. Она определяет порт удаленного компьютера, через который происходит соединение с сервером. Как правило это “Listen 98”.

Скрипт сервера содержит много комментариев. Это вспомогательный текст и директивы, которые по умолчанию можно отключить. Если вы хотите их активировать, раскоментируйте строки. По умолчанию настройка веб-сервера оставляет включенными минимальное число директив.

На тот случай, если сайт не будет правильно функционировать, есть директивы, содержащие контактную информацию. Таким образом посетитель сможет сообщить вам об ошибке. Называется эта инструкция ServerAdmin. Обычно она содержит адрес электронной почты. Следующая за ней строка ServerName. Запишите сюда ваш домен. Например “my-domain.ru:98”. В этой же связке находится директива DocumentRoot. Укажите, в какой директории находятся файлы вашего сайта. Обычно это “/var/www”. Разумеется, у вас может быть другой путь. Настройка веб-сервера не накладывает строгих ограничений в этом вопросе.

Настройка веб-сервера подразумевает некоторые критически важные моменты. Не поленитесь анализировать логи своего сайта. Иногда посетители бывают не совсем желательными. Логи сохраняют записи об их активности. Обратите внимание, если пользователь пытается открыть страницы, которые ему не нужны. Например, панель администратора. Или занимается подбором страниц, которых нет на сайте. Эта, и другая подозрительная активность должны вас насторожить. Заблокируйте таким визитерам доступ к сайту с помощью директивы Deny from. Например, так: “Deny from 23.21.128.164 88.174.111.35 189.137.129.234”.

Специализированные директивы веб-сервера Apache.

Переходим к «персонализированным» настройкам сервера. Для запуска специальных приложений серверу необходимо понимать, в какой программной среде запускать эти самые приложения. К числу наиболее популярных языков, на которых пишутся скрипты, можно отнести Python, Perl, Javascript, PHP. Для обработки команд, записанных на этих языках веб-сервер имеет специальные модули. Они становятся активными с помощью специальных директив.

На сайте должна существовать отдельная директория, в которой будут расположены приложения. Эту папку необходимо указать веб-серверу явно. Например, так: ScriptAlias /cgi-bin/ /var/www/cgi-bin/. Теперь все файлы, расположенные в этой папке будут обработаны в интерфейсе CGI. Это стандарт, с помощью которого внешняя программа (веб-браузер) взаимодействует с сервером.
После того как мы обозначили интерфейс, следует активировать модули для обработки приложений. На примере модуля для языка Perl это выглядит так:

<IfModule mod_perl.c>
Alias /perl/ /var/www/perl-script/
SetHandler perl-script
PerlHandler Apache::Registry
Options ExecCGI
Allow from all
PerlSendHeader on
</Directory>
</IfModule>

Теперь вы можете обрабатывать данные веб-формы с помощью perl-обработчика. Надо помнить, что не все приложения можно обрабатывать в веб-интерфейсе. Однако таких модулей-обработчиков достаточно много.

Директивы, касающиеся отображения контента и работы сайта

При загрузке страниц неизбежно могут возникать различные ошибки. Для фиксации ошибок, и последующего анализа, рекомендуется записывать в файл информацию о таких случаях. Записи будут сохраняться, если задать следующую инструкцию:

ScriptLog /var/log/cgilog/error_log.txt
ScriptLogLength 20000

Здесь задана директория для файла и максимальная величина сохраняемых записей в знаках.
При запросе в строке браузера вашего домена, веб-серверу надо знать, какую страницу загружать как «главную». Настройка веб-сервера включает для этого специальную инструкцию. Как это сделать, покажем на простом примере:

DirectoryIndex index.php index.html index.htm

Никто не застрахован от ошибок при поиске на сайте или неверно записанных адресах ссылок. Будет полезно, если при такой ошибке пользователь увидит специально созданную вами страницу, а не просто сообщение об ошибке. Настройка веб-сервера позволяет указать явно, какая страница будет в этом случае загружаться:

ErrorDocument 500 “The server made a boo boo.”
ErrorDocument 404 “http://my-domain.ru/error.htm“.

Вообще директив много, все они закомментированы в стандартном файле сервера Apache. Чтобы включить любую, удалите значок комментария(#). О самых основных, без которых никак не обойтись, вы теперь знаете. В заключение немного частных случаев.

Дополнительная информация. Подсказки веб-мастеру

Домен это ваш бренд. Разумно все ваши продукты представить под одним брендом. Это может быть блог, форум, личные кабинеты пользователей, и многое другое. Чтобы отделить тематические ветви от основного контента к главному домену подключают поддомены. Обычно это делается из панели управления хостингом в несколько кликов. Владельцы же выделенных серверов могут размещать поддомены в любые папки. Но чтобы их было видно из сети требуется настройка веб-сервера.

Отделение доменных имен от основного домена упрощенно называют виртуальным хостом. Вам нужно просто указать имя поддомена и директорию, где хранятся его файлы. Простой пример такой директивы:

<VirtualHost *:80>
ServerAdmin admin@my-domain.ru
ServerName new-domain.77.222.43.70
ServerAlias my-domain.ru new-domain.my-domain.ru
<Directory “/var/subdomains/new-domain”>
Options Indexes FollowSymLinks ExecCGI
AllowOverride None
Order allow,deny
Allow from all
</Directory>
DocumentRoot /var/subdomains/new-domain
ErrorLog /var/subdomains/new-domain/error_log.txt
TransferLog /var/subdomains/new-domain/access_log.txt
</VirtualHost>

Конечно, вы можете создать сколь угодно много таких виртуальных хостов.

Ну и напоследок. Часть настроек можно вынести в специальный файл. Он называется .htaccess. Это название уже не может быть произвольным, потому что тогда он перестанет быть служебным. Создайте его в корневой директории вашего сайта. В этот файл вы можете прописать перенаправления с вашего домена на другие ваши сайты. Здесь можно заблокировать пользователей по IP адресу, задать страницы ошибки, назначить модули для обработки приложений, и некоторые другие опции. Смотрите техническую информацию по работе с сервером Apache.

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

Не сдавайтесь, у вас все получится!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *