Назад | Перейти на главную страницу

Настройте Bonjour для настраиваемого виртуального хоста на Apache в OS X

Bonjour - прекрасная технология. Я бы хотел, чтобы все мои пользовательские хосты на моем Mac (Snow Leopard) транслировались через bonjour. Как лучше всего это сделать без необходимости включать для каждого виртуального хоста отдельно?

Я собираюсь сделать предположение, что вы используете встроенный сервер Apache, поэтому ...

Если вы откроете свой httpd.conf обычно в самом низу можно увидеть:

Include /private/etc/apache2/other/*.conf

Каталог "other" содержит как php.conf, так и bonjour.conf.

Bonjour.conf имеет несколько странностей, хотя, во-первых, файл по умолчанию не включает некоторые из возможных параметров. Насколько мне известно, возможных вариантов всего три:


RegisterDefaultSite

Это транслирует основной сайт, а не VHost, и использует имя машины (как определено «Имя компьютера» в настройках общего доступа) в качестве названия службы Bojour.


RegisterUserSite

это требует одного из трех вариантов:

<a username>
all-users
customized_users

Первые два говорят сами за себя, но customized_users довольно умен; он проверяет, внес ли каждый пользователь изменения в index.html в ~/Sites; если да, транслируется страница этого пользователя.


RegisterResource

Вероятно, это то, что вы ищете; он принимает два аргумента: имя службы и путь.

Пример:

RegisterResource HelloLan /

Мое предложение:

Я бы попытался разместить RegisterResource в каждом VHost, хотя я не использую VHosts и поэтому сам не пробовал.

Я слышал mod_bonjour который поставляется по умолчанию, имеет некоторые проблемы с несколькими RegisterResource варианты смотрите здесь: http://deeperdesign.wordpress.com/2010/06/13/apples-mod_bonjour-is-broken-in-snow-leopard-so-i-fixed-it/.

Кто-то, оставивший комментарий на вышеупомянутой странице, предположил, что VHost Bonjour возможен.

так что удачи!

На debian я сделал:
a2enmod mod-dnssd
cat /etc/apache2/mods-enabled/mod-dnssd.conf

 # This is the config file for mod_dnssd.<br>
< IfModule mod_dnssd.c><br>
    DNSSDEnable On<br>
< /IfModule>

это применимо ко всем vhosts сразу.

Чтобы уточнить, вы хотите зарегистрировать альтернативные записи A / CNAME (например: devsite1.local, devsite2.local, ...) для своей машины, чтобы другие машины могли получить доступ к виртуальным хостам, которые вы создали? Нет простого способа сделать это, поскольку Bonjour API (в отличие от Avahi) не позволяет регистрировать произвольные имена записей.