Не уверенный, если это поможет, но здесь является примером двух хостов на простой установке, я определил это, апачи прислушиваются к трафику в стандартном порте, 80 затем каждых виртуальных хостов имеют то же.
Listen 80
NameVirtualHost *:80
# Site 1 Comment
<VirtualHost *:80>
ServerName site1.intranet
ServerAdmin administrator@whatever.com
DocumentRoot /var/www/html/site1
</VirtualHost>
# Site 2 Comment
<VirtualHost *:80>
ServerName site2.intranet
ServerAdmin administrator@whatever.com
DocumentRoot /var/www/html/site2
</VirtualHost>
Сервер DNS возьмет запрос site1.intranet или site2.intranet и передаст тому же IP, в этом случае апачский сервер, апачская конфигурация выше перенаправит к правильной папке, в зависимости от которой требуют сайт
надежда, которая помогает
Да. Stuart Cheshire, который был создателем и является основным специалистом по обслуживанию Рандеву/Добрый день в Apple, который также сопредседательствовал рабочая группа IETF ZeroConf, и записал книгу O’Reilly по Нулевым Сетям Конфигурации, описал Добрый день как “трехногий табурет”, где участки:
Рабочая группа IETF ZeroConf и Apple оба рассматривают локальное для ссылки обращение, особенно IPv4 локальное для ссылки обращение (169.254.0.0/16
адреса), чтобы быть частью ZeroConf/Bonjour, даже при том, что локальное для ссылки обращение поставлялось за годы до других двух “участков табурета”.
Обратите внимание, что, так как Windows уже поддерживает автоматическое локальное для ссылки обращение даже без Apple Добрый день для установленного программного обеспечения Windows, многие пользователи Windows не думают о IPv4 локальное для ссылки обращение, чтобы быть частью Bonjour/ZeroConf.
Да. Mac и машины Windows, по умолчанию, делают IPv4 локальное для ссылки обращение, если они настроены для DHCP, но нет никакого доступного сервера DHCP. Linux и машины BSD с Avahi (или возможно другие реализации ZeroConf) установленный также сделают это.
Если компьютер работает Добрый день, его имя хоста публикуется на LAN через mDNS. Если названием Вашей машины будет “Alice”, то это будет Alice.local
через mDNS. От другого компьютера (позволяют нам назвать это “Bob”) на той же LAN (а именно, на том же локальном для ссылки многоадресном домене), необходимо смочь просто ввести ping Alice.local
, и Bob должен сделать mDNS поиск Alice.local
для обнаружения IP-адреса (IP-адресов) Alice и ping (один из) адрес (адреса), это возвращается.
Обратите внимание, тем не менее, что Добрый день дифференцируется между сервисными названиями и именами хостов. Например, если у Вас есть два отдельных принтера USB, скажем, “HP” и “Canon”, подключенный к Alice, и Alice действует как, скажем, lpr
сервер печати для них обоих, они могут каждый обнаружиться как свой собственный сервис, который отображается назад на Alice.local
как хост.
Их сервисные названия показали бы до пользователя как “HP” и “Canon” без упоминания о Alice. Негласно, они были бы известны как HP._printer._tcp.local
и Canon._printer._tcp.local
, и поиски DNS-SD на тех сервисных названиях показали бы, что те сервисы доступны на Alice.local
на двух различных портах TCP.
Таким образом да, приложения должны уведомить Добрый день демон (названный mDNSResponder
в реализации Apple), что у них есть сервисы, которые они хотят рекламировать. macOS имеет механизмы для автоматической обработки сервисной рекламы для сервисов прежней версии, которые исходно не Добрый день знают. Например, macOS's sshd
OpenSSH, который не поддерживает Добрый день непосредственно, но macOS заботится о рекламе ssh
сервис через Добрый день так, чтобы Вы могли просто ssh username@Alice.local
от других машин на LAN.
На macOS существует инструмент командной строки "dns-sd", который может зарегистрировать сервис с помощью этого синтаксиса:
dns-sd -R <Name> <Type> <Domain> <Port> [<TXT>...]
# (Register a service)
Так, например:
dns-sd -R MyWebsite _http._tcp local 80
Я не был бы удивлен, включено ли это в Добрый день для Windows, или Добрый день SDK для Windows, или если можно скомпилировать его для Windows из mDNSResponder проекта Apple с открытым исходным кодом. Поиск с помощью Google для dns-sd.exe
, Я вижу, что такая вещь существует. Я не уверен, что просто загрузил бы двоичный файл для него. Вместо этого я попытался бы получить его от одного из пакетов, упомянутых выше или скомпилировать его сам из mDNSResponder источников проекта.
Можно также использовать dns-sd
инструмент командной строки, чтобы просмотреть для сервисов и искать их. Вот пример поиска локального веб-сервиса:
Обзор для локальных веб-сервисов с -B
:
$ dns-sd -B _http._tcp local
Browsing for _http._tcp.local
Timestamp A/R Flags if Domain Service Type Instance Name
16:30:59.870 Add 3 6 local. _http._tcp. My Cool Web App
16:30:59.871 Add 3 6 local. _http._tcp. Someone Else's Web Service
16:30:59.871 Add 3 6 local. _http._tcp. A Third One
^C
Ищите тот, с которым я хочу, "Мое Прохладное веб-приложение", -L
:
$ dns-sd -L "My Cool Web App" _http._tcp local
Lookup My Cool Web App._http._tcp.local
16:31:52.678 My\032Cool\032Web\032App._http._tcp.local. can be reached at MyWebServer.local.:80 (interface 6)
^C
Запросите IP-адреса для MyWebServer.local, с -Q
:
$ dns-sd -Q MyWebServer.local
Timestamp A/R Flags if Name T C Rdata
16:32:40.786 Add 2 6 MyWebServer.local. 1 1 169.254.45.209
^C
Обратите внимание в этих примерах, что Вы должны Ctrl-C
из dns-sd
инструмент. Иначе это останется открытым навсегда, непрерывно наблюдая сеть и сообщая о любых изменениях в результатах запроса, который Вы выпустили (такие как веб-серверы, приходящие и уходящие в сети, в то время как Вы сидите с a -B
просмотрите открытый запрос). Я нашел это для этого и других причин, dns-sd
инструмент не хорошо подходит для того, чтобы быть названным из сценария. Вы могли бы хотеть посмотреть на какой библиотеки ZeroConf для Вашего предпочтительного языка, в конце концов.
Для ответа на один из других вопросов я не знаю ни о какой реализации ZeroConf, которая позволяет Вам выполнять запросы и получать результаты только путем чтения/записи файлов. Большинство приложений, которые используют Добрый день, делает так путем вызова API, любой непосредственно (C/C ++/Obj-C/Swift приложения) или через библиотеку характерный для языка (интерпретируемый/языки сценариев).
Во-первых, что точно Добрый день делает (просьбы читают мои предположения записанный рев)? Здесь я узнал, что Добрый день включает автоматическое обнаружение компьютеров, устройств и сервисов на сети IP. Но я думал, что это не только "обнаруживает устройства в сети IP", это также создает сеть IP путем присвоения IP-адресов устройствам, куда Добрый день работает.Я прав?
Не совсем; как Jon указал, DHCP (обычно) используется для выделения IP-адресов. Почти таким же способом, которым обычный DNS переводит доменные имена в IP-адреса, Добрый день используется для перевода временных доменных имен (в локальной сети) к IP-адресам если их.
И я все еще пропускаю сущность. Это работает следующим образом? Сначала я подключаю устройства (например, ноутбуки) физически так, чтобы они потенциально могли общаться друг с другом. Затем позвольте, говорят, на некоторых ноутбуках, у меня есть Добрый день выполнение и затем, как следствие, эти ноутбуки присваивают IP-адреса им сам автоматическим способом. Так, ноутбуки (куда Добрый день работает) создают сеть IP. Это работает таким образом?
Нет; ноутбуки, главным образом вероятно, получают свои IP-адреса от локального сервера DHCP. Добрый день просто помогает им разработать, какие услуги каждый может предоставить другим.
Или может быть компьютер, работающий, Добрый день не рассматривается как услуга, и он не широковещательно передает себя просто, потому что Добрый день работает на этом компьютере. Я подразумеваю, что приложения, работающие на компьютерах, должны использовать Добрый день для широковещательной передачи themself. Так, это - приложения, которые широковещательно передают themself (не компьютеры), и это не сделано автоматически (приложение должно широковещательно передать themself явно). Действительно ли это правильно?
Да - обычно, Ваше приложение должно будет рекламировать свое существование явно. Это может часто делаться, пользуясь обеспеченный системой библиотеки (распространенный на OS X) или пользовательские библиотеки (например, Сеть perl:: Добрый день).
Как точно мое приложение может широковещательно передать себя? Я могу использовать командную строку для регистрации сервиса (так, чтобы все приложения, использующие Добрый день, знали, что новый сервис появился),
Я не знаю об инструменте командной строки, который делает это, но много главных языков программирования имеют библиотеки в наличии, чтобы сделать это.
Далее, я хотел бы иметь приложение, которые используют сеть IP, созданную Добрый день. Поскольку то мое приложение должно знать, какие устройства/сервисы присутствуют в сети. Более подробно мое приложение должно иметь список сервисов. Каждый сервис в списке должен иметь имя, IP-адрес, куда он работает и порт, который используется приложением. Может Добрый день предоставить эту информацию в некотором роде?
Большинство библиотек Bonjour должно смочь сделать это для Вас; посмотрите первый пример по http://search.cpan.org/~chlige/Net-Bonjour-0.96/lib/Net/Bonjour.pm
Если имеет место, как точно это работает. Как моя программа может получить эту информацию от Добрый день? Моя программа может считать некоторый файл, созданный Добрый день и содержащий вышеупомянутую информацию? Я могу использовать некоторые команды в командной строке для получения этой информации?
Пользуясь соответствующими библиотеками, программа использует Добрый день протокол, чтобы попросить, чтобы все другие компьютеры в Вашей локальной сети сказали это, какие сервисы они имеют в наличии. Та библиотека затем проанализирует ответы и представит их Вам в более полезном формате.
У меня есть особый интерес к доступу к информации о сервисах из файлов, переменных среды или команд в командной строке. Эти опции, кажется, мне являются самыми простыми! С тех пор в них случаются, я не должен пользоваться никакими дополнительными библиотеками для общения с Добрый день с конкретного языка программирования.
Я не знаю об инструменте, который делает это, но он мог бы существовать.
P.S. Просьбы задают вопросы, если что-то не ясно в моем вопросе. Я попытаюсь сформулировать свой вопрос более ясным способом.
Еще некоторая информация о том, что программу Вы пишете, сделает, и в каком языке Вы пишете это, помог бы помочь.
Для большей вводной информации попробуйте обоих:
Добрый день не присваивает IP-адреса - это - протокол обнаружения - Вам все еще нужен DHCP/Static/Link-Local (APIPA) IP-адреса для него для работы.
Это использует, многоадресно передает DNS (mDNS) для обнаружения, какие хосты находятся на том же широковещательном домене как самом, и по существу это становится своим собственным сервером DNS.
Посмотрите Bonjour & Zeroconf для низкого.
Если Ваше приложение не для home/un-managed сети, то есть испытывая недостаток в локальном сервере DNS Вам просто не нужно оно.