Access site without domain name via IP address on server with multiple virtualhosts

I have a single Digital Ocean droplet with 5 websites hosted on it via virtualhost. Everything works fine. Their domain names point to each one individually. Using Ubuntu 14.04 and Apache.

I want to add a sixth "test" site, without a domain name pointing to it. I want to use it to test out some WordPress stuff. The physical location of the home page to this site is:

/var/www/test_site/html/index.html

Let's say my server's IP address is 198.51.100.55

What do I need to do to make this home page available to anyone on the internet as follows?

http://198.51.100.55/test_site/html/index.html
0
задан 19 December 2016 в 02:37
2 ответа

Поместите следующий перед другие определения виртуального хоста в вашем файле конфигурации.

<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName www.fakesite.com
DocumentRoot /var/www/test_site/html/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Затем перезагрузите Apache.

1
ответ дан 4 December 2019 в 16:24

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

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


URL http://198.51.100.55/test_site /html/index.html никогда не будет доступен для всего Интернета.

Новые сети развертываются без IPv4. Чтобы позволить клиентам в таких сетях получить доступ только к ресурсам IPv4, используются такие методы, как DNS64 и NAT64. Если имя вашего сервера было test.example.com , поток подключения для такого клиента мог бы работать следующим образом:

  • Браузер отправляет запрос рекурсору DNS интернет-провайдера, запрашивая запись AAAA для test.example.com
  • Рекурсор DNS интернет-провайдера запрашивает у полномочного сервера example.com запись AAAA для test.example.com
  • Авторитетный сервер отвечает, что нет такая запись существует.
  • Рекурсор DNS интернет-провайдера возвращается к DNS64 и запрашивает у авторитетного сервера example.com запись A для test.example.com
  • Авторитетный сервер отвечает с 198.51.100.55
  • Рекурсор DNS объединяет префикс одного из шлюзов NAT64 ISP (назовем его 2001: db8: c481: 4960: 88df: da01 :: / 96 и Адрес IPv4. Результат: 2001: db8: c481: 4960: 88df: da01: 198.51.100.55 AKA 2001: db8: c481: 4960: 88df: da01: c633: 6437 .
  • DNS рекурсивно r отправляет в браузер ответ, в котором говорится, что запись AAAA для test.example.com - это 2001: db8: c481: 4960: 88df: da01: c633: 6437 .
  • Браузер отправляет пакет SYN в NAT64 2001: db8: c481: 4960: 88df: da01: c633: 6437 .
  • NAT64 преобразует пакет SYN из IPv6 в IPv4, удаляя первые 96 битов IP-адреса назначения и подстановки собственного IPv4-адреса в качестве источника.
  • Обмен данными продолжается с NAT64, транслирующим каждый пакет в TCP-соединении.

Но как только вы пытаетесь сделать это с IP-адресом, а не с доменное имя, оно не работает. Браузер никогда не будет отправлять запросы DNS, поэтому он никогда не узнает, что 198.51.100.55 должен быть заменен на 2001: db8: c481: 4960: 88df: da01: c633: 6437 . Вместо этого браузер попытается подключиться к 198.51.100.55 , но у хоста нет маршрута IPv4, поэтому ядро ​​сообщит браузеру, что сервер недоступен.

Единственный способ сделать сайт доступным для пользователей в такой сети (без нарушения чего-либо еще) является наличие доменного имени для вашего сайта.

Если вас устраивает то, что ваш сайт доступен только для большой части Интернета (которая будет становиться все меньше time), то вы можете просто рассматривать 198.51.100.55 как еще одно доменное имя и соответствующим образом настроить виртуальный хост.

Это будет выглядеть примерно так:

<VirtualHost 198.51.100.55:80>
    ServerName 198.51.100.55
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www
    ErrorLog ${APACHE_LOG_DIR}/error.log
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
0
ответ дан 4 December 2019 в 16:24

Теги

Похожие вопросы