Меню

Как настроить в apache доменное имя

Apache2 — настройка для работы с сайтами в доменной зоне .рф

В предыдущей статье мы научились настраивать веб-сервер apache2 для работы с несколькими виртуальными хостами. В большинстве случаев сайты регистрируют в доменных зонах, имена которых записываются латинскими символами: school.ru, support.org и тд. Но как настроить работу сервера, если у нас сайт в доменной зоне .рф?

Все достаточно просто.

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

Однако система DNS разработана таким образом, что доменное имя может состоять только из символов из таблицы ASCII, куда кириллица не входит. Чтобы обойти это ограничение и обеспечить совместимость интернационализированных доменов с уже существующим ПО, используется система.

Punycode — это способ приведения интернационализированных доменных имен, содержащих в себе unicode-символы (таких, как .рф) к виду, содержащему только символы ASCII, как того требует система DNS

Для того, чтобы посмотреть как будет выглядеть имя нашего сайта вида школа.рф на самом деле, воспользуемся сервисом Punycode-конвертер. Например здесь: https://2ip.ru/punycode/

После того как мы узнали написание доменного имени, переходим к настройке виртуального хоста.

1. Создаем директорию для нашего сайта:

2. Передаем права пользователю webuser:

3. Создаем конфигурационный файл виртуального хоста:

и прописываем в нем:

ServerName xn--80atdl2c.xn--p1ai
ServerAdmin admin@domen.com
ServerAlias www.xn--80atdl2c.xn--p1ai
DocumentRoot /var/www/xn--80atdl2c.xn--p1ai
CustomLog $/xn--80atdl2c.xn--p1ai.access.log combined
ErrorLog $/xn--80atdl2c.xn--p1ai.error.log
AssignUserID webuser webuser

Options -Includes -Indexes -ExecCGI

Источник

Настройка виртуальных хостов Apache

Apache — это один из самых популярных веб-серверов для размещения сайтов на хостингах и VPS, а также для создания тестовых окружений. Если на вашем сервере один сайт, то все довольно просто, все запросы, поступающие к серверу, отправляется этот единственный сайт. А что если сайтов несколько? Как Apache будет понимать кому адресован запрос?

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

Как работают виртуальные хосты Apache?

Не будем пока о локальных системах. Если у вас есть веб-сайт, то наверное, вы занимались парковкой домена и уже знаете как все настраивается. Сначала используется DNS сервер, который выдает IP адрес вашего сервера всем клиентам, запросившим адрес этого домена. Затем клиенты отправляют запрос на ip вашего сервера, а веб-сервер уже должен его обработать.

Обычно, на хостингах один веб-сервер обслуживает десятки, а то и сотни сайтов. И как вы понимаете, все запросы поступают на один ip. Для распределения их между папками на сервере используется имя домена, которое передается вместе с запросом в HTTP заголовке «Host». Именно поэтому нужно выполнять парковку домена не только на DNS сервисе, но и на вашем сервере.

Вы настраиваете виртуальные хосты Apache, а затем веб-сервер сравнивает домен, переданный в заголовке «Host» с доступными виртуальными доменами и если находит совпадение, то возвращает содержимое настроенной папки или содержимое по умолчанию, или ошибку 404. Нужно сказать, что вы можете настроить виртуальный хост для любого домена, например, vk.com или losst.ru. Но пользователи смогут получить доступ к этому домену у вас, только если к вам будут поступать запросы от браузеров, в которых будет значиться этот домен. А теперь детальнее про настройку.

Настройка виртуальных хостов Apache?

Я уже подробно рассматривал как настроить Apache в отдельной статье. Поэтому не буду полностью расписывать здесь все конфигурационные файлы. Остановимся на файлах виртуальных хостов. Для удобства они вынесены в отдельные папки:

Ясно, что это разделение очень условно. Вы можете его убрать и добавлять свои виртуальные хосты прямо в основной конфигурационный файл. Все файлы из этих папок подключаются к нему с помощью директив Include. Но ведь так намного удобнее. В папке sites-available находятся все конфигурационные файлы, но они пока еще не активированы и отсюда не импортируются никуда. При активации нужного хоста на него просто создается ссылка в папку /etc/apache2/sites-enabled.

Читайте также:  Как настроить пульт новотелеком

Для примера, создадим новый конфигурационный файл для виртуального хоста site1.ru. Для этого просто скопируем существующую конфигурацию для хоста по умолчанию — 000-default:

$ sudo cp /etc/apache2/sites-enabled/000-default.conf /etc/apache2/sites-enabled/site1.ru.conf

Сначала рассмотрим синтаксис того, что вы увидите в этом файле:

адрес_хоста_для прослушивания : порт >
ServerName домен
ServerAlias псевдоним_домена
ServerAdmin емейл@администратора
DocumentRoot /путь/к/файлам/сайта
ErrorLog /куда/сохранять/логи/ошибок/error.log
CustomLog /куда/сохранять/логи/доступа/access.log combined

Это минимальная конфигурация, которую вам нужно указать, чтобы создать виртуальный хост Apache. Конечно, здесь вы можете использовать и другие директивы Apache, такие как Deny, Allow и многие другие. А теперь рассмотрим наш пример для тестового сайта site1.ru:

ServerName site1.ru
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/site1.ru/
ErrorLog $/error.log
CustomLog $/access.log combined

Здесь мы используем звездочку вместо ip адреса, это значит, что веб-сервер будет слушать соединения на всех адресах, как на внешнем, так и на localhost. Порт 80, это порт по умолчанию. Затем указываем домен, электронный адрес администратора, и путь к папке, в которой будут находиться данные сайта. Две строчки Log говорят куда сохранять логи, но добавлять их необязательно. Дальше, нам нужно активировать этот хост. Мы можем вручную создать ссылку или использовать уже заготовленную команду:

sudo a2ensite site1.ru

Затем перезапустите Apache:

sudo systemctl restart apache2

И нам осталось все это протестировать. Если ваш сервер имен еще не направляет запросы к домену на ваш ip, а вы хотите уже проверить как все работает, можно пойти обходным путем. Для этого достаточно внести изменения в файл /etc/hosts на машине, с которой вы собрались открывать сайт. Этот файл, такой себе локальный DNS. Если компьютер находит ip для домена в нем, то запрос в интернет уже не отправляется. Если вы собираетесь тестировать с той же машины, на которую установлен Apache2, добавьте:

sudo vi /etc/hosts

Если же это будет другой компьютер, то вместо 127.0.0.1 нужно использовать адрес вашего сервера, на котором установлен Apache. Затем можете открыть сайт в браузере:

Настройка виртуальных хостов с SSL

Если вы хотите использовать современный безопасный протокол https для работы вашего виртуального хоста, то вам кроме обычного хоста на порту 80 будет необходимо создать виртуальный хост на порту 443. Здесь будет не так много отличий, вот пример, для нашего сайта site1.ru:

ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ServerName site1.ru
ErrorLog $/error.log
CustomLog $/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

SSLOptions +StdEnvVars

Теперь о каждой новой строчке более подробно:

  • — весь код в этой секции будет выполнен только в том случае, если активирован модуль mod_ssl. Это нужно для безопасности, чтобы если модуль не активирован, то код не вызывал ошибок;
  • SSLEngine — включает поддержку SSL;
  • SSLCertificateFile, SSLCertificateKeyFile — пути к файлам сертификата и приватного ключа;
  • SSLOptions — для скриптов php, cgi и других мы передаем стандартные SSL опции.

Вот и все. Как видите, не так сложно. Осталось перезапустить Apache и проверить как все работает:

sudo a2enmod ssl
sudo a2ensite site1.ru-ssl
sudo systemctl restart apache2

Затем откройте https адрес в браузере:

Выводы

В этой статье мы рассмотрели как выполняется настройка виртуальных хостов Apache. Как видите, один веб-сервер может обслуживать сотни сайтов, а создание виртуальных хостов apache совсем не сложно. Надеюсь, эта статья была вам полезной. Если у вас остались вопросы, спрашивайте в комментариях!

Читайте также:  Телевизор dexp h24e8000k как настроить

Источник



Настройка виртуальных хостов APACHE

Информация взята из https://www.8host.com/blog/nastrojka-virtualnyx-xostov-apache-v-ubuntu-16-04/

Apache является одним из самых популярных веб-серверов в мире.

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

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

Количество виртуальных хостов на одном сервере ограничивается исключительно ресурсами этого сервера.

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

  • Предварительно настроенный сервер.
  • Не-root пользователь с расширенными привилегиями.
  • Установленный веб-сервер Apache

sudo apt-get update
sudo apt-get install apache2

Примечание: В руководстве используются условные домены example.com и test.com; не забудьте заменить их своим доменным именем.

Создание структуры каталогов Apache

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

Каталог document root (каталог, содержащий контент для Apache) по умолчанию находится в /var/www; в нём нужно создать отдельный каталог для каждого виртуального хоста. В каждом таком каталоге будет размещен каталог public_html, в котором будут находиться нужные файлы. Благодаря этому хостинг становится более гибким.

Необходимые каталоги можно создать при помощи следующих команд:

sudo mkdir -p /var/www/example.com/public_html
sudo mkdir -p /var/www/test.com/public_html

Примечание: Не забудьте указать свои доменные имена в командах.

Настройка прав Apache

Структура каталогов готова, но все они принадлежат пользователю root. Чтобы не-рутовый пользователь мог вносить изменения в файлы веб-каталога, нужно изменить права на эти файлы при помощи следующей команды:

sudo chown -R $USER:$USER /var/www/example.com/public_html
sudo chown -R $USER:$USER /var/www/test.com/public_html

Переменная $USER примет имя текущего пользователя. После этого подкаталоги каталоги public_html, содержащие контент сайтов, будут принадлежать текущему пользователю.

Также нужно изменить привилегии и открыть веб-каталог и всё его содержимое для чтения, в противном случае страницы будут отображаться некорректно.

Теперь все права установлены верно; можно приступать к созданию контента в специальных каталогах.

Создание демо-страниц для виртуальных хостов Apache

Создайте тестовый контент; для пробной настройки хостов простых страниц будет достаточно. Просто создайте страницы index.html для каждого сайта.

Начнём с example.com; откройте файл index.html в текстовом редакторе:

В этом файле создайте простой HTML-документ, который указывает, к какому сайту подключена страница. В данном случае этот файл выглядит так:

Success! The example.com virtual host is working!

Источник

Как настроить apache2 и домены на домашнем сервере?

Введение
Итак. Есть домашний сервер, на нем стоит Debian(без графических дополнений).
Так же были установлены apache2 php5 mysql и кое как настроены.
Сервер подключен к маршрутизатору(dlink320),маршрутизатор к интернету. (вся настройка идет по ssh)
IP статический и белый.
Так же был куплен домен в .ru зоне.

Ну и соответственно есть несколько вопросов.

1. Я написал в саппорт хостера, чтобы они сменили NS купленного домена на мой IP. Это правильное решение?
т.к есть же некие сторонние днс сервера пост на хабре, но я пока не понимаю зачем они нужны.

2. было созданно несколько заготовок под сайты (например test.ru, other.ru diplom.ru и т д)
и в apache2/sites-available были созданы конфиги под них,

но если я вбиваю в браузере свой ip(109.172.68.76) то выдается только тот сайт, который прописан в
sites-available/default (test.ru)
как перейти на другие заготовки?
в /etc/hosts прописанно
127.0.1.1 test.ru
127.0.1.2 diplom.ru

3. Возможно мне нужно будет знать, что то еще?

  • Вопрос задан более трёх лет назад
  • 16016 просмотров

первое — Для обслуживания любой доменной зоны нужен один, а по стандартам минимум два dns сервера.
Если у вас поднят и корректно настроен днс сервер, можете в админ панели Вашего домена у регистратора прописать Ваш домашний сервер как DNS сервер.

Читайте также:  Как правильно настроить браузер mozilla firefox

В Вашем днс сервере должна быть корректно описанана днс зона для Вашего domain.zone
in a, mx, www алиасы, указывающие на «белый» ip вашего домашнего сервера.
в веб сервере надо указать что есть виртуал хост domain.zone, с корневым каталогом /var/www/domain.zone и подкаталогами /var/www/forum как forum.domain.zone
взяты мной для примера.
ну и да, Ваш домашний сервер теперь должен работать круглосуточно 24/7/365, быть доступен по 53 и 80 портам, а так же, если вы прописали на него MX, и 25 порт для приёма почты для домена.

Поздравляю, Вы сделали сайт непонятно зачем живущий у Вас дома, вместо того чтобы за пару баксов в месяц (это дешевле, чем оплачивать счета за свет) купить простейшую виртуалку у любого хостера вроде hetzner или в любом облаке вроде amazon/azure c реальной доступностью 24/7/365

теперь остаётся только смотреть за скриптами, что Вашу машину не проломали по уязвимостям, беспокоиться за её работу.

Из вариантов, конечно, можно развернуть виртуалку у себя на хосте, чтобы не мешала работе и не отжирала все ресурсы, но это уже следующий шаг

Вот вам пошаговая инструкция, как запустить сайт по адресу supersite на виртуальном хосте:
1. Открываем /etc/hosts
2. Пишем 127.0.0.1 supersite
3. Открываем /etc/apache2/sites-available/default, копируем все и закрываем.( открываем через консоль sudo gedit /etc/apache2/sites-available/default), иначе может не получится скопировать.
4. Далее пишем в консоле sudo gedit /etc/apache2/sites-available/supersite. Вставляем то, что скопировали . Теперь меняем следующее:
— ServerName supersite
— DocumentRoot путь до папки supersite
— В первых двух блоках, приблизительно такого вида

Источник

Как настроить виртуальные хосты в Apache на Ubuntu 16.04/18.04

Каждый владелец VPS сталкивается с вопросом, как разместить несколько сайтов на одном сервере с одним IP-адресом. Если вы используете в качестве веб-сервера Apache, виртуальные хосты (virtual hosts) — верное решение для разделения ресурсов и отдельной конфигурации для каждого сайта.

Предварительная настройка

Все действия осуществляются на сервере через подключение по SSH. Перед тем как приступить к настройке виртуальных хостов, необходимо произвести настройку сервера.

Создание пользователя

По умолчанию после создания сервера для доступа к нему создаётся root пользователь. В целях безопасности не рекомендуем работать под суперюзером.

Чтобы создать пользователя, введите команду:

Где UserName — имя нового пользователя.

Система попросит ввести пароль для нового пользователя и дополнительную информацию:

Теперь установите права доступа, чтобы новый пользователь мог использовать команду sudo. Для этого выполните команду:

Где UserName — имя созданного ранее пользователя.

Готово, новый пользователь создан. Завершите SSH-сеанс под root и подключитесь к серверу под новым пользователем.

Установка Ubuntu Apache

Чтобы выполнить действия ниже, у вас должен быть установлен Apache. Для полноценной работы сайта рекомендуем установить LAMP (Linux Apache MySQL PHP). Это минимальный набор ПО, который чаще всего используется для размещения и запуска сайта. Как установить LAMP, вы можете узнать в инструкции.

Подготовка доменов

Ваши домены должны быть привязаны к облачному серверу. Сделать это вы можете по инструкции.

В данной инструкции будут приведены примеры с доменами faq-reg.ru и support-faq.ru. В тех местах, где они будут встречаться, измените домены на свои.

Подготовка каталогов

Подготовим структуру каталогов. Рабочая директория Apache — /var/www. В данной директории мы будем создавать отдельные каталоги для каждого домена (виртуального хоста).

Чтобы создать каталоги, выполните команды:

В этих каталогах будут храниться файлы вашего сайта. Далее необходимо установить права доступа к ним:

Источник