Чтение онлайн

ЖАНРЫ

Linux-сервер своими руками

Колисниченко Денис Николаевич

Шрифт:

</VirtualHost>

<VirtualHost 192.168.1.1>

 ServerName lib.dhsilabs.com

 ServerAdmin webmaster@den.dhsilabs.com

 DocumentRoot/var/httpd/lib/html

 ErrorLog /var/https/lib/logs/error.log

 TransferLog logs/access.log

</VirtualHost>

Если ваша система имеет только один IP-адрес, доступ к основному серверу станет невозможным, то есть вы не сможете использовать

его напрямую. Можно основной сервер использовать в качестве виртуального, что я и сделал в листинге 12.9: основной сервер www является виртуальным. При наличии двух IP-адресов можно один присвоить основному серверу, а другой — виртуальному.

Сервер Apache позволяет использовать несколько доменных имен для доступа к одному серверу, например:

ServerAlias www.dhsilabs.com www2.dhsilabs.com

При этом запросы, посланные по IP-адресам, которые присвоены вашим виртуальным хостам, должны соответствовать одному из указанных доменных имен. Чтобы зафиксировать запросы, не соответствующие ни одному их этих имен, нужно с помощью опции default:* создать виртуальный хост, который будет обслуживать такие запросы: <VirtualHost _default_:*>

Обратите внимание на то, что в рассмотренном примере адреса www.dhsilabs.com и lib.dhsilabs.com должны быть прописаны в DNS.

12.4.2. Виртуальные серверы с идентификацией по IP-адресу

В директиве VirtualHost в качестве адресов можно использовать доменные имена, но лучше указывать IP-адрес, причем действительный, а не виртуальный. В этом случае вы не будете зависеть от DNS при разрешении имени. Также потребуется один IP-адрес для вашего основного сервера. Если же распределить все адреса между виртуальными серверами, то нельзя будет получить доступ к основному серверу.

Листинг 12.10. Идентификация по IP-адресу

<VirtualHost 192.168.1.2>

 ServerName www.dhsilabs.com

 ServerAdmin webmaster@den.dhsilabs.com

 DocumentRoot /var/httpd/www/html

 ErrorLog /var/https/www/logs/error.log

</VirtualHost>

<VirtualHost lib.dhsilabs.com>

 ServerName lib.dhsilabs.com

 ServerAdmin webmaster@den.dhsilabs.com

 DocumentRoot /var/httpd/lib/html

 ErrorLog /var/https/lib/logs/error.log

</VirtualHost>

В приведенном примере (см. листинг 12.10) сконфигурированы два виртуальных сервера с идентификацией по IP-адресу. Один из них использует сам IP-адрес, а другой — доменное имя, соответствующее IP-адресу.

При конфигурировании виртуальных серверов можно использовать опцию ExecCGI, которая разрешает выполнение CGI-скриптов на виртуальном сервере. Ниже приведен пример для почтового Web-интерфейса (листинг 12.11).

Листинг 12.11. Подключение почтового Web-интерфейса

# Файл httpd.conf

<Directory /home/httpd/mail>

 order deny,allow

 deny from all

 allow from localhost

 allow from 192.168

 allow from 123.123.123.123

 Options ExecCGI

</Directory>

#
Файл vhosts.conf

<VirtualHost 123.123 .123.123>

 ServerAdmin webmaster@den.dhsilabs.com

 DocumentRoot /home/httpd/mail

 ServerPath /mail

 ServerName wwwmail.dhsilabs.com

 ErrorLog logs/error_log

 TransferLog logs/access_log

 ErrorDocument 403

</VirtualHost>

# Error 403 — доступ извне, то есть почтовый интерфейс будет доступен только

# из локальной сети

12.5. SSL и Apache

12.5.1. Установка SSL

SSL (Secure Sockets Layer) является методом шифрования, разработанным компанией Netscape для обеспечения безопасности в Интернет. Этот метод поддерживает несколько способов шифрования и обеспечивает аутентификацию как на уровне клиента, так и на уровне сервера. SSL работает на транспортном уровне и поэтому обеспечивает надежное шифрование всех типов данных. Более подробно о реализации SSL можно прочитать на сайте компании Netscape — http://home.netscape.com/info/security-doc.html

Протокол S-HTTP является еще одним «безопасным» Интернет-протоколом. Он был разработан для предоставления конфиденциальности данных, передаваемых через соединение. Конфиденциальность нужна, например, при передаче номеров кредитных карточек и прочей важной информации.

Модуль mod_ssl реализует в сервере Apache слой SSL, который осуществляет шифрование всего потока данных между клиентом и сервером. Для всех остальных частей Web-сервера модуль mod_ssl является прозрачным. Для работы в этом режиме требуется браузер, поддерживающий механизм SSL (этому условию удовлетворяют все современные распространенные браузеры).

Что касается установки, то вам необходимо установить пакет OpenSSL , хотя возможно у вас в системе уже установлен этот пакет. Для проверки этого введите openssl, и если вы увидите в ответ приглашение OpenSSL>, значит — OpenSSL уже установлен. В противном случае для установки OpenSSL выполните следующие шаги (перед этим выполните команду su для того, чтобы приобрести привилегии суперпользователя):

1. Распакуйте последнюю версию OpenSSL командой:

tar zxvf openssl-x.у.z.tar.gz (x.y.z — номер версии).

2. Перейдите в каталог openssl-x.y.z и выполните команду:

./config.

3. Если все нормально (нет ошибок), введите команду:

make

Примечание. При возникновении ошибок, скорее всего вам придется установить недостающие пакеты.

4. Затем нужно ввести команды make install и ldconfig. Перед выполнением команды ldconfig убедитесь, что в файле /etc/ld.so.conf прописан путь к библиотекам OpenSSL (по умолчанию это /usr/local/ssl/lib).

Поделиться с друзьями: