Сделать локальную установку Apache2 с несколькими виртуальными хостами доступными в сети

Сделать локальную установку Apache2 с несколькими виртуальными хостами доступными в сети

У меня есть локальный сервер apache2 и mariaDB, работающий на моей машине разработки (Debian 10). Я использую виртуальные хосты, чтобы иметь несколько веб-сайтов, доступных одновременно. Я прохожу следующие шаги, чтобы достичь своей цели:

1) Создайте и отредактируйте файл conf для веб-сайта.sudo nano /etc/apache2/sites-available/website.conf

2) Заполните файл следующим:

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName website.local
    ServerAlias www.website.local
    DocumentRoot /var/www/website/public_html/
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

3)sudo a2ensite website.conf

4)sudo systemctl reload apache2

5) Отредактируйте файл hosts, sudo nano /etc/hostsдобавив строку:127.0.0.1 website.local

На этом этапе это работает. Когда я захожу на сайт, http://website.localменя перенаправляют на недавно созданный локальный сайт.

В тот момент, когда какой-либо другой компьютер заходит на IP-адрес моего ПК (допустим, это ): 10.0.0.100Они зайдут в мой /var/www/html/index.htmlфайл. Я понятия не имею, почему это работает, так как я никогда этого не настраивал. Но это работает.

Мое желание: Переход 10.0.0.100на ПК в моей сети открывает страницу, где я могу (вручную) разместить список, который перенаправляет на локальные веб-сайты, которые у меня есть. Например:

<ul>
    <li><a href="http://website1.10.0.0.100/">Website1</a></li>
    <li><a href="http://website2.10.0.0.100/">Website2</a></li>
    <li><a href="http://website3.10.0.0.100/">Website3</a></li>
</ul>

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

решение1

То, что вы хотите сделать, можно осуществить, зарегистрировав соответствующие имена (т.е. website.local) в DNS вашей сети.

Имя типа website1.10.0.0.100просто невозможно реализовать самостоятельно, поскольку, поскольку оно начинается со строки ( website1), оно будет рассматриваться любым клиентом как FQDN. Поэтому любой клиент попытается выяснить, какой DNS-сервер является авторитетным для .100домена верхнего уровня .... и, как вы, вероятно, догадались, этот TLD не существует.

Самый простой способ реализовать 3 разных сайта на вашем компьютере без изменения DNS:

  • Иметь на компьютере 3 разных IP-адреса (используя ifconfig eth0 add 10.0.0.101, ifconfig eth0 add 10.0.0.102, и т. д.)

  • Реализуйте виртуальные хосты на основе IP на вашем Apache.

  • Пусть главная страница будет выглядеть следующим образом:

<ul>
         <li><a href="http://10.0.0.100/">Website1</a></li>
         <li><a href="http://10.0.0.101/">Website2</a></li>
         <li><a href="http://10.0.0.102/">Website3</a></li>
</ul>

Другой (более сложный) способ реализации этого:

  1. Реализуйте собственный DNS-сервер на своем компьютере, например, для домена верхнего уровня .bibicomputer(TLD).

  2. В вашей bibicomputerзоне DNS делает website1.bibicomputer, website2.bibicomputer, и т.д. указателями на ваш IP-адрес.

  3. Попросите коллег по работе добавить ваш IP-адрес в их список DNS (в Linux: /etc/resolv.conf).

Но я уверен, что ИТ-специалистам вашей компании это решение не понравится.

Связанный контент