하위 도메인을 기반으로 두 서버 중 하나로 들어오는 모든 HTTP 요청을 전달하시겠습니까?

하위 도메인을 기반으로 두 서버 중 하나로 들어오는 모든 HTTP 요청을 전달하시겠습니까?

두 대의 Debian Jessie 서버가 있습니다. 하나는 개인/취미용 홈 서버이고 다른 하나는 업무용 개발 서버입니다.

논쟁을 위해 우리는 말할 수 있습니다 ...

개인: 1.1.1.1
개발: 1.1.1.2

도메인 이름이 있습니다. example.com현재는 동적 PersonalDNS 서비스가 몇 초마다 호출되어 DDNS 서비스(내 도메인 호스팅)에 내 외부 IP 주소가 무엇인지 알려줍니다.

21거기에서 내 라우터는 포트 , 22803000대한 모든 요청을 포트 전달하도록 설정됩니다 Personal.

ISP로부터 외부 IP를 구입하고 싶지 않으며 각 서버에 대해 두 개의 IP를 요청하고 싶지도 않습니다. 또한 저는 이 설정이 반휴대용이기를 원했습니다. 어떤 라우터 IE에 연결되어 있든 포트가 열려 있는 한 작동합니다.

약간의 조사 끝에 내 문제에 대한 답은 역방향 프록시라고 생각합니다. .PoundPersonal

이런 일이 일어나길 바라요...

1) 라우터는 포트 21, 22, 80 및 3000의 포트를 Personal동일한 포트로 전달합니다.
2) 하위 도메인이 "개인"이 아닌 한 Personal내 도메인의 모든 요청을 .으로 보냅니다 .Development

실제로 이는 다음을 의미합니다.

Personal.example.com -> 개인용(1.1.1.1)
*.mydomain.com -> 개발(1.1.1.2)

파운드를 사용하여 이 작업을 수행할 수 있습니까? 그렇다면 Pound의 구성 파일에 무엇을 넣을까요?

답변1

도메인 이름 예약은 도메인 이름, 즉 HTTP 및 (주로) HTTPS를 포함하는 프로토콜에 대해서만 작동합니다. 다른 프로토콜(예: FTP, SSH)에는 도메인 이름이 포함되어 있지 않습니다. 대신 클라이언트 소프트웨어는 DNS를 사용하여 지정된 도메인 이름을 IP 주소로 확인한 다음 이를 사용하여 연결합니다.

따라서 짧은 대답은 "아니요"입니다.

대신, 가장 적게 사용되는 호스트로 라우팅하기 위해 다른 외부 포트를 제공하도록 라우팅을 설정할 수 있습니다. 예를 들어 포트 20021, 20022, 20080 및 23000을 사용합니다.

또는 터널링 솔루션(VPN)을 사용하여 휴대용 호스트가 로컬 네트워크에 액세스하도록 허용할 수 있습니다.

편집: 귀하가 제공한 포트 목록이 혼란스럽습니다. HTTP 및 HTTPS(일반적으로 포트 80 및 431)에만 관심이 있다면 대답은 "예"여야 하며 내 장황한 말은 무시해야 합니다.

관련 정보