Создайте 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 минут.
Запись программы для сопоставления имени хоста с именем хоста: порт оставлен читателю в качестве упражнения...