Меню Рубрики

Установка apache имя домена

Настройка виртуальных хостов 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 говорят куда сохранять логи, но добавлять их необязательно. Дальше, нам нужно активировать этот хост. Мы можем вручную создать ссылку или использовать уже заготовленную команду:

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

sudo systemctl restart apache2

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

Если же это будет другой компьютер, то вместо 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 совсем не сложно. Надеюсь, эта статья была вам полезной. Если у вас остались вопросы, спрашивайте в комментариях!

Читайте также:  Установка кольцо стопорное калина

источник

Как настроить 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. Возможно мне нужно будет знать, что то еще?

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

В Вашем днс сервере должна быть корректно описанана днс зона для Вашего 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. В данной директории мы будем создавать отдельные каталоги для каждого домена (виртуального хоста).

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

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

Готово. Структура каталогов и права доступа настроены. Далее подготовим демостраницы.

Создание демостраниц

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

Не забудьте заменить доменные имена на ваши.

Готово. Теперь после настройки виртуальных хостов мы сможем проверить корректность их работы.

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

Файл конфигурации Ubuntu Apache virtual hosts отвечает за обработку запросов к разным доменам. У Apache существует дефолтный файл 000-default.conf, который можно использовать в качестве шаблона. Для каждого виртуального хоста необходимо будет скопировать его, задать произвольное имя (рекомендуем использовать имя домена) и произвести определённые настройки. Обязательное условие — соблюдение расширения файла: .conf

Читайте также:  Установка балконов в кредит

Создание конфига для faq-reg.ru

Скопируйте шаблон конфига для первого домена с помощью команды:

Откройте созданный файл командой:

В файле присутствует секция VirtualHost для обработки запросов на 80 порт (порт для HTTP-запросов). Измените следующие строки:

Вместо webmaster@localhost укажите электронный адрес администратора, вместо /var/www/html укажите каталог домена, который мы создали на этапе подготовки, в нашем случае это /var/www/faq-reg.ru/

Затем добавьте ещё две строки:

Сохраните изменения в файле и закройте его.

Настройка виртуального хоста для первого домена завершена. Скопируйте этот файл для второго домена с помощью команды:

Не забудьте изменить faq-reg.ru.conf и support-faq.ru.conf на имена ваших доменов.

Откройте файл для редактирования:

Измените DocumentRoot, ServerName и ServerAlias в соответствии с данными для второго домена и сохраните изменения:

Деактивируйте конфиг по умолчанию командой:

И активируйте созданные конфиги:

Перезапустите Apache командой:

Готово. Создание и настройка виртуальных хостов завершена. Далее можем проверить результат.

Проверка работы виртуальных хостов

Если вы заранее привязали ваши домены к серверу и делегирование уже произошло, при переходе по домену должна открыться страница, которую мы создали на этапе «Создание демостраниц».

Если с момента изменения DNS прошло менее 24 часов и домен ещё не делегирован, увидеть результат вы можете, настроив локальные хосты в файле hosts. Подробнее в инструкции.

источник

Contents

Share

Sign up for our newsletter.

Get the latest tutorials on SysAdmin and open source topics.

Related

Как настроить виртуальные хосты в Apache на Ubuntu 14.04 LTS

Введение

Веб-сервер Apache является самым популярным средством размещения веб-контента в интернете. На его счету более половины всех действующих веб-сайтов. Это очень мощный и гибкий инструмент.

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

Эта система позволяет администратору использовать один сервер, чтобы раздавать несколько сайтов используя один интерфейс или IP. Это удобно для тех, кто хочет использовать один VPS для хранения нескольких сайтов.

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

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

Необходимые условия

Перед тем, как приступать, вам необходимо создать не-рутового пользователя, как описано в шагах 1-4.

Также у вас должен быть установлен Apache, чтобы проделать описываемые ниже шаги. Если он еще не установлен, вы можете сделать это при помощи команды apt-get :

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

В этом руководстве мы создадим виртуальный хост для доменов example.com и test.com . Мы будет ссылаться на них в руководстве, однако вам следует заменить их на свои домены при настройке ваших виртуальных хостов.

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

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

Шаг 1 — Создание структуры директорий

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

Наш document root (корневой каталог — директория верхнего уровня, которую просматривает Apache в поисках контента для отображения) будет настроен на использование директорий внутри директории /var/www . Здесь мы создадим директории для обоих виртуальных хостов, которые мы планируем сделать в этом руководстве.

В каждой из этих директорий мы создадим вложенную директорию public_html , которая будет содержать реальные файлы. Это дает нам некоторую гибкость в плане хранения контента.

Например, для наших сайтов мы создадим директории следующим образом:

Текст, выделенный красным, представляет собой доменные имена сайтов, которые мы хотим отображать с помощью нашего VPS.

Шаг 2 — Назначение прав

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

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

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

Теперь ваш веб-сервер должен иметь разрешения, необходимые для отображения контента. Кроме того, теперь ваш пользователь имеет возможность создавать контент в необходимых директорий.

Шаг 3 — Создание демо-страниц для каждого виртуального хоста

Наша структура директорий готова. Давайте создадим какой-нибудь контент для отображения посетителям наших сайтов.

Мы делаем это просто для демонстрации, потому страницы будет очень простыми. Мы собираемся создать по странице index.html для каждого сайта.

Давайте начнем с example.com . Мы можем создать и открыть файл index.html в редакторе, введя команду:

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

Читайте также:  Установка лежачих полицейских в частном секторе

Когда закончите, сохраните и закройте файл.

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

После этого вы можете открыть файл и исправить его содержимое:

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

Шаг 4 — Создание файлов нового виртуального хоста

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

По умолчанию, Apache имеет файл виртуального хоста 000-default.conf , который мы можем использовать в качестве отправной точки. Мы собираемся скопировать его, чтобы создать файлы виртуального хоста для каждого из наших доменов.

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

Создание файла первого виртуального хоста

Начнем с копирования файла для первого домена:

Откройте новый файл в редакторе с root-правами:

Файл будет похож на этот (мы удалили комментарии, чтобы сделать его более читабельным):

Как видите, файл совсем небольшой. Мы поправим его для нашего первого домена и добавим некоторые новые директивы. Эта секция конфигурации виртуального хоста относится к любом запросам, которые сделаны по 80 порту (порт по-умолчанию для HTTP).

Прежде всего, мы должны изменить директиву ServerAdmin на адрес электронной почты, на который администратор сайта будет получать электронные письма.

Затем мы должны добавить две новые директивы. Первая, ServerName , устанавливает основной домен, который должен соответствовать названию виртуального хоста. Это должно быть ваше доменное имя. Вторая, ServerAlias , определяет другие имена, которые должны интерпретироваться так, как будто это основной домен. Это удобно для использования дополнительных доменных имен, например, с использованием www :

Единственная вещь, которую нам осталось изменить в базовом файле виртуального хоста, это расположение корневого каталога этого домена. Мы уже создали нужную директорию, так что нам осталось изменить директиву DocumentRoot так, чтобы она ссылалась на созданную нами директорию:

Теперь наш файл виртуального хоста должен выглядеть следующим образом:

Сохраните и закройте файл.

Копирование первого виртуального хоста и настройка для второго домена

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

Откройте новый файл в редакторе с правами root-пользователя:

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

Сохраните и закройте файл после внесения правок.

Шаг 5 — Включение новых виртуальных хостов

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

Мы можем использовать утилиту a2ensite для включения каждого из наших сайтов следующим образом:

После завершения необходимо перезапустить Apache, чтобы изменения вступили в силу:

Скорее всего, вы получите сообщение, похожее на это:

Это сообщение безобидно и не влияет на наш сайт.

Шаг 6 — Настройка файла локальных хостов (опционально)

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

Это позволит перехватывать любой запрос к доменам, которые вы настроили и перенаправлять его на ваш VPS сервер так, как это сделала бы система DNS в случае использования реально зарегистрированных доменов. Это будет работать только с вашего локального компьютера и используется только для тестирования.

Убедитесь, что дальнейшие шаги вы будете проделывать на вашем локальном компьютере, а не на VPS сервере. Вам необходимо знать пароль администратора или быть членом группы администраторов.

Если вы используете компьютер с Mac или Linux, вы можете редактировать локальный файл с правами администратора, введя команду:

Если у вас компьютер с Windows, вы можете найти инструкции по редактированию файла хостов здесь.

Вам необходимо добавить в файл публичный IP-адрес вашего VPS сервера и, следом, доменное имя, по которому вы хотите обращаться к этому VPS.

Для доменов, используемых в этом руководстве, предположим, что IP-адрес нашего VPS 111.111.111.111 . В этом случае мы можем добавить следующие строки в конец файла hosts :

В результате этого любые запросы к example.com и test.com с нашего компьютера будут перенаправляться на наш сервер по адресу 111.111.111.111 . Это удобно для проверки правильности настройки наших виртуальных хостов для случая, когда мы не являемся реальными владельцами этих доменных имен.

Сохраните и закройте файл.

Шаг 7 — Тестирование результатов

Теперь, когда ваши виртуальные хосты сконфигурированы, вы можете легко протестировать работоспособность, перейдя в браузере по ранее настроенным адресам:

Вы должны увидеть похожую страницу:

Аналогично, вы можете зайти на вторую страницу:

Вы увидите файл, созданный для второго сайта:

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

Еси вы вносили изменения в файл hosts на вашем локальном компьютере, теперь можете удалить добавленные строки, т.к. уже убедились в работоспособности конфигурации. Таким образом мы не будем хранить в файле “hosts” ненужные записи.

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

Заключение

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

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

источник

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