Доступ к виртуальному хосту из локальной сети

Я настраиваю платформу для веб-разработки, которая максимально упрощает написание и тестирование всего кода на моем локальном компьютере и синхронизирует его с моим веб-сервером. Я настроил несколько виртуальных хостов так, чтобы я мог получить доступ к своим проектам, введя "проект" вместо "localhost/project" в качестве URL.

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

Это прекрасно работало из любого места, прежде чем я настроил виртуальные хосты. Теперь, когда я пытаюсь получить доступ к своим проектам, введя URL-адрес DYNDNS, я получаю сообщение 403 Forbidden Error: "У вас нет разрешения на доступ к / на этом сервере".

Для настройки моих виртуальных хостов я отредактировал два файла - хосты в папке system32/drivers/etc и httpd-vhosts.conf в папке Apache моей установки WAMP.

В файле hosts я просто добавил имя сервера, чтобы связать его с 127.0.0.1. Я добавил следующее в файл http-vhosts.conf:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot "c:/wamp/www/ladybug"
    ServerName ladybug
    ErrorLog "logs/your_own-error.log"
    CustomLog "logs/your_own-access.log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot "c:/wamp/www"
    ServerName localhost
    ErrorLog "logs/localhost-error.log"
    CustomLog "logs/localhost-access.log" common
</VirtualHost>

Любая идея, почему я не могу получить доступ к своим проектам, набрав в моем DYNDNS URL? Кроме того, возможно ли настроить виртуальные хосты так, чтобы при вводе http://projects/ со случайного компьютера за пределами моей сети я получал доступ к url.dyndns.info/projects (он же мои проекты WAMP на моем домашнем компьютере)?

Помощь очень ценится, спасибо!

2 ответа

Решение

Ваше имя сервера должно быть FQDN (полностью определенное доменное имя) для внешней работы.

Пример конфигурации:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot "c:/wamp/www"
    ServerName url.dyndns.info
    ErrorLog "logs/localhost-error.log"
    CustomLog "logs/localhost-access.log" common
</VirtualHost>

Вам также необходимо открыть порт 80 через маршрутизатор и перенаправить его на IP-адрес вашего внутреннего сервера.

Вы не сможете использовать только http://projects/ для подключения к вашему серверу, если не настроите DNS-сервер и не будете его использовать.

Как указывает ffreedon_is_chaos, вам нужно использовать полное доменное имя, чтобы получить доступ к службе извне.

В дополнение к ServerName вы также можете добавить псевдоним сервера, который позволит вам получить доступ к домену с другими именами, что означает, что вы все равно сможете использовать не FQDN внутри. Например

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot "c:/wamp/www/ladybug"
    ServerName ladybug.something.com
    ServerAlias ladybug www.ladybug.something.com
    ErrorLog "logs/your_own-error.log"
    CustomLog "logs/your_own-access.log" common
</VirtualHost>
Другие вопросы по тегам