Насколько я могу судить, есть два способа получить доступ к виртуальному хосту Apache на сервере без статического IP-адреса (т.е. моего ноутбука):

  • Установите имя хоста foo.localhost в его конфигурационном файле Apache и назначьте fo.localhost 127.0.0.1 в /etc /hosts. Это делает их запоминающимися, но не поддерживает клиентов в локальной сети.

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

Есть ли способ разместить все виртуальные хосты на порту 80, делая их доступными для других устройств? Возможно обратный прокси-сервер, который направляет 127.0.0.1:80/foo/theactualurl на 127.0.0.1:42908/theactualurl, 127.0.0.1:80/bar/anotherurl на 127.0.0.1:39539/anotherurl?

Я использую Ubuntu 12.04.

2 ответа2

1

Я сам новичок, но это пришло в голову ... Не больно попробовать :)

Просто установите директиву ServerName на foo.localhost и используйте ProxyPass чтобы направить ее на адрес локальной сети.

Что-то вроде:

<VirtualHost *:80>
   ServerName foo.localhost
   DocumentRoot /var/www/foo  #doesn't matter because we're not going to hit it
   <Location />
      ProxyPass http://192.168.x.x/
      ProxyPassReverse http://192.168.x.x/
   </Location>
</VirtualHost>

Тогда ваш другой внутренний сайт доступен как:

<VirtualHost *:80>
   ServerName foo2.localhost
   DocumentRoot /var/www/foo2  #again, doesn't matter
   <Location />
      ProxyPass http://192.168.x.y/
      ProxyPassReverse http://192.168.x.y/
   </Location>
</VirtualHost>

Признаюсь, я не знаю, сработает ли это, но мне это кажется разумным;)

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

0

Поместить ваши приложения в отдельную папку на одном виртуальном хосте - это не вариант для вас?

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

YOUR_SERVER_IP  foo.com bar.com

но это не очень удобно, если IP-адрес может измениться из-за DHCP.

С помощью avahi/zeroconf в Ubuntu ПК объявляют себя как HOSTNAME.local, чтобы вы могли использовать http://HOSTNAME.local для доступа к локальному веб- серверу . Возможно, можно добавить несколько новых псевдонимов с помощью avahi.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .