Создайте VirtualHosts для http-сервисов zeroconf

У меня есть несколько node.js приложения, запущенные на моем компьютере, и все становится довольно запутанным, поскольку единственная разница между доступом к ним - это номер порта.

Поэтому у меня появилась идея использовать zeroconf для их рекламы. Теперь я вижу свои разные приложения в браузерах с поддержкой zeroconf (Safari).

Это хорошее начало, но не все в моей команде могут использовать Safari, и поэтому я бы хотел, чтобы они были доступны без номера порта.

Поэтому я ищу способ создания перенаправлений или конфигураций VirtualHost на основе сервисов zeroconf. Например: если у меня есть служба zeroconf fileserver на машине some-server.local:3377Я хотел бы, чтобы это было доступно через http://fileserver.services.localбез номера порта.

В идеале это не будет перенаправлять на http://some-server.local:3377Вот почему я думал о VirtualHosts.

Это возможно?

1 ответ

Я не очень знаком с zeroconf, но, насколько я понимаю, у вас нет конфигурационного файла как такового - вместо этого каждый сервис будет рекламировать себя. Если это правильно, у меня есть пара предложений.

Первый заключается в использовании mod_rewrite и RewriteMap, RewriteMap будет программа, которая ищет правильную запись и возвращает информацию. Вот пример:

RewriteEngine On
RewriteMap zeroconf:/path/to/program
RewriteRule ^/(.*) http://${zeroconf:$HTTP_HOST}/$1 [P,L]

Программа, которую вы запускаете как /path/to/program должен принимать имя хоста в качестве аргумента (например, fileserver.services.local) и вернуть имя сервера и порт как some-server.local:3377, Затем Mod_rewrite проксирует это соединение через этот сервер и порт - если вы не хотите, чтобы он был прокси, удалите P из RewriteRule.

Другим способом было бы использовать RewriteMap он состоит из обычного текстового файла и запускает задачу cron для обнаружения любых изменений в службах и обновления этого текстового файла каждые X минут.

Запись программы для сопоставления имени хоста с именем хоста: порт оставлен читателю в качестве упражнения...

Другие вопросы по тегам