У меня есть локальный сервер 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>
Другой (более сложный) способ реализации этого:
Реализуйте собственный DNS-сервер на своем компьютере, например, для домена верхнего уровня
.bibicomputer
(TLD).В вашей
bibicomputer
зоне DNS делаетwebsite1.bibicomputer
,website2.bibicomputer
, и т.д. указателями на ваш IP-адрес.Попросите коллег по работе добавить ваш IP-адрес в их список DNS (в Linux:
/etc/resolv.conf
).
Но я уверен, что ИТ-специалистам вашей компании это решение не понравится.