2009-05-18 5 views
1

지금 방화벽 (iptables, Apache, Squid, DNS가 설치됨)과 방화벽 뒤에있는 응용 프로그램 서버가 있습니다.도메인 이름을 기반으로 특정 서버에 들어오는 요청을 라우팅

방화벽의 포트 443 (HTTPS)에서 들어오는 트래픽이 앱으로 리디렉션됩니다. iptables에 의해 서버. 기본적으로 방화벽이나 Apache의 다른 응용 프로그램은 HTTPS 트래픽을보고 있지 않습니다. 방화벽에서 직접 제공하는 웹 콘텐츠가 있습니다. 아파치는 80 개까지 도달합니다.

이제 추가 서버를 추가하고 다른 웹 서비스에 설치하고 싶습니다.

방화벽 컴퓨터가 도메인 이름을 기반으로 들어오는 트래픽을 필수 호스트로 라우팅하도록 구성하려면 어떻게해야합니까?

일반적인 관행, 기술 및 도구는 무엇입니까? 그들은 포트 443를 통해 온다면 나는 그들의 이름에 관계없이, 동일한 서버로 이동합니다 자신의 현재 설정 모든 도메인에서

은 그래서 서버 1로 이동 FOO.COM 예를 들어 원하는 bar.com 제공 할 수 서버 2에 의해; 포트에 관계없이.

대단히 감사합니다!

답변

4

더 많은 IP 주소가 필요합니다.

HTTPS의 문제는 클라이언트가 요청 된 도메인 이름이 포함 된 Host : 헤더를 보내기 전에 인증서 (도메인 이름 포함)가 전송된다는 것입니다.

https://foo.comhttps://bar.com이 있고 foo.com과 bar.com이 동일한 IP 상에있는 경우 bar.com을 탐색하면 foo.com 인증서가 발급되고 인증서 확인 오류로 실패합니다.

일단 방화벽에 여러 개의 IP 주소가 있으면 각각을 다른 서버로 라우팅하는 것이 간단합니다.

0

나는 실제로이 똑같은 일을 실제로보고있었습니다. mod_proxy를 사용하여 아파치를 다른 서버를위한 리버스 프록시로 설정하는 것은 내가 본보다 나은 옵션 중 하나였다. 나는 다른 사람들이 생각해 낼 수있는 것이 궁금하다.

그러나 pjc50은 HTTPS의 여러 도메인에서는 작동하지 않습니다.

0

DNS 서버에서 SRV reccord를 사용합니다. 예를 들어

:이 도메인 서버 1에 들어오는 모든 트래픽을 매핑합니다

10 10 1337 domain.com :

SUBDOMAIN TTL 데이터 (우선)

server1.domain.com : 3600. domain.com에서 domain.com의 1337 번 포트로

마찬가지로 쉽습니다.