tm

   Коротенькая зарисовка по настройкам Web-сервера Apache2 для работы с двумя сайтами и более. Web-сервер на Ubuntu 14.04.5.

Для того, что бы сайты были доступны с публичных сетях необходимо выполнить несколько условий:

  1. Обзавестись, так называемым, "белым", статическим (не динамическим, постоянным) IP адресом. Если используем хостинг, то это уже чужая головная боль.
  2. Определиться с названием сайтов и арендовать доменные имена у какого-нибудь регистратора имён. Рекомендую выбирать регистратора, который предоставляет редактировать записи в своих DNS серверах. Если сайты планируем хранить дома, в пыльном коридоре, то придётся клянчить у своего оператора связи прописать A-записи для IP адреса. Повторюсь, это если регистратор зажлопил свои DNS сервера.
  3. Ну, и сам сервер на котором у нас будет расположен Apache и сами сайты.

Каждый из этих пунктов требует определённых настроек. О каждом по-порядку.

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

 

   По второму пункту, определяемся с доменным именем, с хостингом, и ищем публичный DNS, через который мы расскажем всему миру, что наш сайт имеет такой-то IP адрес. Представим, что регистратор, у которого арендованы доменные имена предоставляет нам возможность редактировать свои DNS сервера. Тогда записи должны быть примерно такого плана:

Редактирование DNS

Тем самым мир узнает о соответствии доменного имени = IP адресу. О пока обновления просасываются займёмся настройкой Web-сервера, что бы встретить армию читателей, ботов и хакеров во всеоружии =)

   По третьему пункту, устанавливаем Apache2. О его установке и первоначальной настройке более чем достаточно написано в интернетах. Представим, что он у нас установлен и показывает содержимое директории /var/www/html. Это директория, используемая по-умолчанию в Apache2 для расположения сайта. Можно использовать и её для первого сайта, но мы определим наши сайты в отдельные директории. Делается это для того, что бы разнести логирование виртуальных хостов.

Итак, наши сайты будут жить в директории /var/www/site1/ и /var/www/site2 . Помещаем наши сайты в соответствующие директории. Заходим в директорию с сайтами

cd /var/www/

сразу выставляем права на эти директории

chown -R site1 site2

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

nano /etc/apache2/apache2.conf
Mutex file:${APACHE_LOCK_DIR} default

PidFile ${APACHE_PID_FILE}

Timeout 300

KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5

User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}

HostnameLookups Off

ErrorLog ${APACHE_LOG_DIR}/error.log

LogLevel warn

# Include module configuration:
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf

# Include list of ports to listen on
Include ports.conf

<Directory />
        Options FollowSymLinks
        AllowOverride None
        Require all denied
</Directory>

<Directory /usr/share>
        AllowOverride None
        Require all granted
</Directory>

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

AccessFileName .htaccess

<FilesMatch "^\.ht">
        Require all denied
</FilesMatch>

LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

IncludeOptional conf-enabled/*.conf

# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf

Самое важное в нашем случае - это опция <Directory /var/www/>. Далее создаём файлы конфигурации для наших сайтов в директории /etc/apache2/sites-available/. Для каждого сайта свой файл. Содержимое этих файлов примерно таково:

nano /etc/apache2/sites-available/site-name.conf
<VirtualHost *:80>
        ServerName site-name.ru
        ServerAlias www.site-name.ru
        ServerAdmin Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.
        DocumentRoot /var/www/site-name/
        ErrorLog ${APACHE_LOG_DIR}/error-site-name.log
        CustomLog ${APACHE_LOG_DIR}/access-site-name.log combined
</VirtualHost>

Осталось активировать сайты:

sudo a2ensite site1.ru
sudo a2ensite site2.ru

на что мы получим предложение перезапустить apache2:

sudo service apache2 reload

Если ошибок не вышло, то на этом первоначальную настройку Web-сервера для работы с двумя сайтами можно считать завершённой.

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

Удачи!

Комментарии отключены