Одна из особенностей работы с виртуальными серверами — в том, что IP-адрес, который выдаётся для размещения сайтов, раньше мог принадлежать кому-то другому. Старый владелец мог размещать на нём сайты, привязывать к нему домены.
Когда адрес назначается новому серверу, он полностью переходит в ваше распоряжение. Но с ним вам может достаться и непредвиденный багаж: например, к этому адресу всё ещё могут быть привязаны доменные имена одного из прошлых владельцев.
Это выливается в следующую картину: веб-сервер получает запросы к доменам, для которых на сервере нет настроек, и показывает на них ваш сайт. В итоге поисковая система считает эти домены копиями вашего сайта — и это приводит к проблемам с ранжированием.
Чтобы защититься от таких ситуаций, достаточно разместить на сервере сайт-заглушку. Его главная задача — отлавливать такие бесхозные домены, чтобы они не влияли на работу ваших сайтов.
Для заглушки достаточно иметь в запасе обычную HTML-страничку, на которой будет какое-то сообщение для пользователей, по ошибке попавших на ваш сервер.
- Настройка сайта-заглушки в ISPmanager
- Настройка сайта-заглушки в Apache
- Настройка сайта-заглушки в Nginx
Настройка сайта-заглушки в ISPmanager
Для создания заглушки в ISPmanager достаточно создать отдельный сайт и указать его в качестве приоритетного.
Войти в панель можно по прямой ссылке (https://127.0.0.1:1500/ispmgr, где 127.0.0.1 — адрес вашего сервера) или через Инструкцию. Перейдите в Личный кабинет — Товары — Виртуальные серверы, выберите нужный сервер в списке — нажмите кнопку Инструкция — найдите блок ISPmanager и нажмите кнопку Перейти.
Перейдите в раздел Сайты и сверху нажмите Создать сайт:
Перейдите в раздел Расширенные настройки в поле Доменное имя укажите произвольное доменное имя заглушки. Например, в примере ниже это домен no-such-site.sorry
После этого кликните на любом месте в окне настройки — сработает
автозаполнение полей. Немного ниже в настройках создаваемого сайта
отметьте пункт Сайт по умолчанию.
Осталось только загрузить файлы заглушки, чтобы посетители видели не приветственную страницу, которую генерирует ISPmanager, а ваше сообщение.
Если вы знакомы с HTML и CSS, можно просто отредактировать эту самую
приветственную страницу. Это можно сделать прямо в панели — раздел Сайты — выберите в списке сайт-заглушку, сверху Файлы сайта. Откроется список файлов сайта — по умолчанию там будет один index.html
. Дважды кликните на файле, откроется редактор кода: измените вид страницы по своему вкусу.
На этом настройка завершена. Теперь домены, не настроенные на сервере, будут открывать эту заглушку, а не ваши сайты.
Настройка сайта-заглушки в Apache
Чтобы создать заглушку на сервере с LAMP, нужно выполнить следующие шаги:
-
Создайте папку для заглушки и загрузите туда её файлы. В примере мы будем использовать домен
default.site
. Для заглушки можно использовать любое имя — оно носит чисто символический характер.Создать папку можно следующим образом:
mkdir /var/www/default.site
Загрузить файлы заглушки можно любым удобным способом — по FTP, sFTP. Или можно вручную создать файл
index.html
и заполнить его через консольный редактор, если вам знакомы основы HTML и CSS.После того, как файлы загружены, нужно настроить права: предоставить к файлам доступ веб-серверу, чтобы он мог их обрабатывать. Для этого изменим их владельца на системного пользователя, под которым работает Apache: на Ubuntu и Debian это
www-data
, на CentOS —apache
.chown -R www-data:www-data /var/www/default.site
-
Создайте конфигурационный файл заглушки для веб-сервера —
<VirtualHost>
. Чтобы наша заглушка работала как надо, этот файл должен быть первым в списке всех конфигурационных файлов сайтов на сервере — этого можно достичь с помощью правильного названия.-
На Ubuntu и Debian для этого достаточно отредактировать конфигурационный файл по умолчанию —
000-default.conf
:nano /etc/apache2/sites-available/000-default.conf
В качестве примера приведён редакторnano
. Для сохранения файла нажмите сочетание Ctrl+O, проверьте имя файла и нажмите Enter. Для выхода из файла нажмите сочетание Ctrl+X.
-
На CentOS потребуется создать его вручную в директории, где лежат остальные
<VirtualHost>
. В примере ниже это папка/etc/httpd/sites-enabled
Можно создать файл, сразу вызвав консольный редактор — в примереvi
:vi /etc/httpd/sites-enabled/000-default.conf
В качестве примера приведён консольный редакторvi
. Для входа в режим редактирования на клавиатуре нажмите I. Для выхода из режима редактирования нажмите Esc. Для сохранения и выхода из файла введите сочетание :wq Для выхода без сохранения введите :q!
Замените содержимое файла на следующее:
<VirtualHost 123.123.123.123:80 > ServerName default.site DocumentRoot /var/www/default.site </VirtualHost>
Вместо
123.123.123.123
укажите IP-адрес вашего сервера,default.site
— имя вашей заглушки,/var/www/default.site
— путь к файлам заглушки.На Ubuntu и Debian после настройки нужно активировать новый конфигурационный файл:
a2ensite 000-default.conf
-
-
На этом настройка заглушки почти завершена. Чтобы все изменения вступили в силу, осталось перезапустить веб-сервер:
-
Ubuntu и Debian:
systemctl reload apache2
-
CentOS:
systemctl reload httpd
-
Настройка сайта-заглушки в Nginx
Первым делом нужно подготовить директорию под заглушку и загрузить в неё файлы страницы, которая будет отображаться при запросе к несуществующим на сервере доменам.
Добавим на сервер папку под файлы заглушки:
mkdir /var/www/default
Загрузить файлы заглушки можно любым удобным способом — по FTP, sFTP. Или можно вручную создать файл index.html
и заполнить его через консольный редактор, если вам знакомы основы HTML и CSS.
После того, как файлы загружены, нужно настроить права: предоставить к
ним доступ веб-серверу, чтобы он мог их обрабатывать. Для этого изменим
их владельца на системного пользователя, под которым работает Nginx: на
Ubuntu и Debian это www-data
, на CentOS — nginx
.
chown -R www-data:www-data /var/www/default
Теперь нужно создать конфигурационный файл нашей заглушки.
-
На Ubuntu и Debian конфигурационные файлы сайтов размещены в отдельной директории
/etc/nginx/sites-available
. Здесь и разместим наш файл:nano /etc/nginx/sites-available/default.conf
В качестве примера приведён редакторnano
. Для сохранения файла нажмите сочетание Ctrl+O, проверьте имя файла и нажмите Enter. Для выхода из файла нажмите сочетание Ctrl+X.
-
На CentOS можно просто создать конфигурационный файл заглушки в директории, где у вас размещены конфиги сайтов. Это может быть папка
/etc/nginx/conf.d
, доступная по умолчанию, или, как в примере, отдельно созданная директория/etc/nginx/sites-enabled
:vi /etc/nginx/sites-enabled/default.conf
В качестве примера приведён консольный редакторvim
. Для входа в режим редактирования на клавиатуре нажмите I. Для выхода из режима редактирования нажмите Esc. Для сохранения и выхода из файла введите сочетание :wq Для выхода без сохранения введите :q!
Вставьте в файл следующий блок настроек:
server { listen 123.123.123.123:80 default_server; server_name _; root /var/www/default; }
Здесь вместо 123.123.123.123
укажите IP-адрес вашего сервера, вместо /var/www/default
— путь к файлам вашей заглушки, и сохраните конфигурационный файл.
Пример содержит минимальную конфигурацию. Если для динамического наполнения заглушки вы будете использовать PHP либо примете решение повесить на неё полноценный сайт, настройки потребуется дополнить.
На Ubuntu и Debian созданный конфигурационный файл нужно активировать — создать символьную ссылку в директории /etc/nginx/sites-enabled
:
ln /etc/nginx/sites-available/default.conf /etc/nginx/sites-enabled/default.conf
Осталось два последних штриха:
-
Проверяем конфигурацию веб-сервера на корректность:
nginx -t
-
Перезапускаем веб-сервер:
systemctl reload nginx
На этом настройка заглушки завершена.