내가 원하는 것은 avahi-daemon을 사용하여 여러 이름을 멀티캐스트하는 것입니다. 이렇게 하면 domainA.localdomainB.local을 사용하여 연결할 수 있습니다.
그런 다음 nginx를 사용하여 이러한 주소를 다양한 애플리케이션의 다양한 웹 인터페이스로 다시 라우팅할 수 있습니다.
여러 이름을 멀티캐스트하도록 avahi-daemon을 구성할 수 있습니까?
PS avahi-daemon을 사용할 필요는 없습니다. 이 기능을 갖춘 다른 프로그램이 있다면 기꺼이 바꾸겠습니다.
연구와 결과
그래서 골룸의 제안에 따라 먼저 avahi-aliases를 시도했습니다. 저장소에 있지만 내 시스템에 올바르게 설치되지 않은 것 같습니다. 지시사항에 따르면 /etc/init.d/에 스크립트를 설치해야 하는데 그렇지 않습니다.
그런 다음 Guru가 시도해 보라고 제안한 또 다른 링크를 제공했고 이는 즉시 작동했습니다. 이것은 python-avahi에 의존하며 백그라운드에서 실행되어야 하는 Python 스크립트의 예일 뿐입니다. 이제 nginx와 결합하여 domainA.local, domainB.local 및 domainC.local을 브로드캐스트할 수 있으므로 컴퓨터에서 서로 다른 웹 인터페이스가 생성되지만 모두 포트 80에서 액세스할 수 있습니다.
고쳐 쓰다
두 가지를 더 조작한 후에 avahi-aliases는 하위 도메인만 브로드캐스트할 수 있다는 사실도 발견했습니다. 따라서 컴퓨터 이름이 elvispc인 경우 avahi-aliases는 subdomainA.elvispc.local 및 subdomainB.elvispc.local만 브로드캐스트할 수 있으며, 여기서 Python 스크립트는 모든 이름을 브로드캐스트합니다.
답변1
번거로운 해결책은 백그라운드에서 다음 명령의 여러 인스턴스를 실행하는 것입니다.
avahi-publish -a -R whatever.local 192.168.123.1
더 나은 해결책은 python-avahi를 사용하여 cname을 게시하는 것입니다. 예를 들어 참조하십시오.https://github.com/airtonix/avahi-aliases또는http://www.avahi.org/wiki/Examples/PythonPublishAlias
업데이트:
avahi 위키가 사라진 것 같습니다. 내가 게시한 링크의 아카이브 페이지는 다음과 같습니다.https://web.archive.org/web/20151016190620/http://www.avahi.org:80/wiki/Examples/PythonPublishAlias
답변2
또 다른 방법, 단일 시스템 파일과 별개로 게시됨이 기능이 누락된 버그 추적.
[Unit]
Description=Publish %I as alias for %H.local via mdns
Requires=avahi-daemon.service
After=avahi-daemon.service
[Service]
Type=simple
ExecStart=/bin/bash -c "/usr/bin/avahi-publish -a -R %I $(avahi-resolve -4 -n %H.local > /dev/null && ip route get 1 | awk '{print $7;exit}')"
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target
용법:
# Publish test.local as a pointer to this system:
sudo systemctl enable --now [email protected]
답변3
첫째, Avahi는 표준 명령 중 하나를 통해 직접 앨리어싱을 지원하지 않는 것으로 보이지만 해당 웹사이트(2016년 이후 대부분 오프라인 상태임)는 이를 수행하는 매우 간단한 Python 스크립트를 호스팅하는 데 사용되었습니다.
이 스크립트를 사용하면 다음과 같이 현재 컴퓨터에 대해 원하는 만큼의 CNAME을 게시할 수 있습니다.
$ ./avahi-alias my-alias.local my-second-alias.local
나는 이 모든 것에 대해 많은 인터넷 검색을 했고 내가 쓴 결과를 볼 수 있습니다.여기. 원본 위키 스크립트의 복사본과 이를 서비스로 실행하는 방법에 대한 지침이 있습니다.
이 기사에는 여기에서 찾을 수 있는 모든 다양한 Avahi 별칭 프로젝트(여기서 이미 언급한 Airtronix 프로젝트 포함)에 대한 내 메모도 포함되어 있습니다. OpenShift Origin 서버 프로젝트의 Ruby 기반 스크립트를 제외하고는 모두 원본 Python 스크립트의 약간의 변형인 것으로 나타났습니다.