Как создать субдомен на том же ip, что и основной сайт? Используем apache web server

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

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

В прошлой статье я писал, как добавить на сервер мониторинг. Вот только доступ до него не очень удобный, через порт: домен.com:8080/monitorix

Решил переделать, чтобы можно было достучаться по адресу monitorix.домен.com

И тут столкнулся с проблемой:

  • если я хочу делать субдомен только через А-запись DNS - то мне нужен будет отдельный ip адрес, а аренда отдельного ip стоит лишних денег

  • если я делаю через redirect - то в названии не будет monitorix.домен.com - будет просто при вводе адреса субдомен перенаправлять в домен.com:8080/monitorix - а это не то, что мне нужно

Как же быть? Самый простой рабочий вариант, который я нашёл - сделать распределение по субдоменам на уровне веб-сервера, на котором работает мой сайт.

Как это делается (считаем, что apache web server уже установлен):

Добавление A-записи сервера

Необходимо будет добавить А-запись.

А-запись должна вести на ваш основной сайт - на тот ip адрес, по которому работает apache web server:

Активация модулей apache web server

Для активации модулей нужно запустить последовательно следующий код,

2enmod proxy   --у меня сработало без этой строки
a2enmod proxy_http
a2enmod proxy_balancer
a2enmod lbmethod_byrequests

После чего необходимо перезапустить службу,

systemctl restart apache2

Добавление конфига для субдомена

Нужно перейти в папку etc/apache2/sites-available/ после чего создать в ней файл с конфигом вашего субдомена:

Файл субдомен.домен.com.conf

<VirtualHost *:80>

        ServerAdmin admin@домен.com

        ServerName субдомен.домен.com

        ServerAlias субдомен.доменcom

        ProxyRequests Off


        #ProxyPass / http://localhost:8080/

        <Location />

                ProxyPreserveHost On

                ProxyPass http://домен.com:8080/monitorix/

                ProxyPassReverse http://домен.com:8080/monitorix/

        </Location>

     # Uncomment the line below if your site uses SSL.

     #SSLProxyEngine On

</VirtualHost>

После чего добавить этот конфиг в apache web server:

a2ensite субдомен.домен.com.conf

Ещё раз перезапускаем web сервер:

systemctl restart apache2

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

Источник: https://habr.com/ru/post/551122/


Интересные статьи

Интересные статьи

В данной заметке я продолжу знакомить читателей с возможностями проекта Apache NlpCraft. Первая заметка была посвящена краткому описанию ключевых особенностей системы, следующая — обзору ...
Дмитрий Калугин-Балашов большую часть своей жизни писал поиск: с 2011 года в компании Mail.ru был поиск по почте, затем был небольшой перерыв из-за работы в США, а сейчас это — работа над...
"Whenever you receive a webhook update, you have two options" Из Telegram Bot Api Faq Привет, Хабр! Долгое время концепция serverless (а если говорить точнее — её реализация в виде сервис...
Постановка задачи Для оптимизации запросов PostgreSQL, очень требуется возможность анализировать историю активности, в частности – ожидания, блокировки, статистика таблиц. Имеющиеся возможно...
В Челябинске проходят митапы системных администраторов Sysadminka, и на последнем из них я делал доклад о нашем решении для работы приложений на 1С-Битрикс в Kubernetes. Битрикс, Kubernetes, Сep...