단일 고정 IP에서 여러 도메인(3)을 위한 DIY VPS 호스팅

단일 고정 IP에서 여러 도메인(3)을 위한 DIY VPS 호스팅

귀하의 의견에 감사드립니다.

내가 하고 싶은 것: 예를 들어, 저는 하나의 고정 IP 주소에서 저 자신과 두 명의 클라이언트를 위해 일부 응용 프로그램 웹 및 이메일을 호스팅하고 싶습니다. 주로 학습하고 소수의 사용자가 있는 두 명의 장기 클라이언트에 대한 일부 제한된 호스팅을 고려할 수도 있습니다.

내가 가진 것 저는 32GB RAM이 있는 XenServer Xeon, 100MB 연결, 단일 고정 IP를 사용하여 실행 중입니다.

내가 알아내려고 하는 것 예를 들어 IBM Lotus Domino(여러 포트 사용) 80, 25, 1352를 실행하는 xenserver에 몇 개의 가상 머신을 설정하여 실험하고 싶습니다. 그래서 도메인 이름을 기반으로 적절한 서버로 트래픽을 전달하는 방법을 알아내야 합니다. 예를 들어

단일 외부 WAN IP -> domain1.com:80 -> VM1:80 단일 외부 WAN IP -> domain1.com:1352 -> VM1:1352

단일 외부 WAN IP -> domain2.com:80 -> VM2:80 단일 외부 WAN IP -> domain2.com:1352 -> VM2:1352

단일 외부 WAN IP -> domain3.com:80 -> VM3:80 (웹 호스팅을 위해 Cpanel 실행)

역방향 프록시가 도움이 될 수 있다는 것을 이해합니다. NGINX 또는 POUND이지만 웹 애플리케이션에만 해당되고 다른 애플리케이션에는 해당되지 않는 것 같습니다. 저도 Citrix Netscaler를 우연히 발견하고 완전히 혼란스러워졌습니다. 나는 또한 DD-WRT의 iptables 등을 사용하는 것을 보았습니다. 이를 수행할 수 있는 방법이 있어야 합니다. 누구든지 의견을 보내 주시면 감사하겠습니다. 분명히 누군가가 어딘가에서 이런 일을 하고 있을 것입니다.

저는 라우터, 맞춤식이든 아니든, 가상 어플라이언스나 기타 어플라이언스에 개방적이지만 가상 어플라이언스 같은 소프트웨어 기반을 좋아합니다. 어떤 아이디어가 있나요?

감사해요

셰인

답변1

그래서 도메인 이름을 기반으로 적절한 서버로 트래픽을 전달하는 방법을 알아내야 합니다.

이는 애플리케이션 계층 사양(예: HTTP의 호스트 헤더)이 없으면 불가능합니다. 해당 IP가 없으면 DNS에 대해 아무것도 모르므로 이를 기반으로 전달할 수 없습니다.

지난번과 상당히 유사한 질문을 참조하세요.개인 NAT 주소로 DNS를 사용할 수 있나요?

답변2

우선 IPv6를 설정하고 /60을 각 VM에 라우팅하는 것이 좋습니다. 이렇게 하면 IPv6을 사용하는 사용자는 트래픽이 원하는 호스트로 직접 라우팅되기 때문에 진행 중인 프록시와 관련된 문제를 경험하지 않을 것입니다.

또한 VM에 IPv6을 사용하면 트래픽을 프록시할 주소가 제공됩니다. 프록시가 DNS를 사용하여 백엔드를 찾을 수 있기 때문에 일부 설정에서는 더 쉬울 것입니다.

역방향 프록시는 HTTP 트래픽을 위한 방법입니다. 역방향 프록시는 클라이언트와 프록시가 모두 SNI를 지원하는 한 HTTPS 트래픽을 처리할 수도 있습니다. 이는 웹 서버가 SNI를 지원하지 않는 경우에도 작동합니다. 이는 포트 80 및 443으로 제한될 필요는 없습니다. 임의의 포트에서 트래픽을 수신하도록 프록시를 구성할 수 있습니다.

IPv4 주소에 메일 릴레이를 설치하면 SMTP를 처리할 수 있습니다. 스팸을 전달하는 데 악용되지 않도록 주의해야 합니다. 릴레이가 외부 SMTP 서버에 연결할 수 없도록 방화벽 규칙을 설정하는 것이 좋습니다. 방화벽은 외부에서 릴레이로, IPv6를 통한 릴레이에서 VM으로, VM에서 외부 세계로의 IPv6 또는 IPv4(분명히 NAT를 거쳐야 함)로의 SMTP 연결을 허용할 수 있습니다.

DNS는 원칙적으로 지원될 수 있지만 아직 이를 지원하는 사람이 있는지는 모르겠습니다.

다른 특정 프로토콜을 염두에 두고 계시다면 해당 프로토콜이 어떻게 지원될 수 있는지 제안해 드리겠습니다. 도메인 이름을 기반으로 해당 프런트엔드를 디스패치할 수 있을 만큼 일찍 도메인 이름을 보내는 다른 프로토콜은 모르지만 다른 프로토콜에 대해 알아보고 싶습니다.

나는 구현했다하나그런 프런트엔드는 나 자신이지만 지금은 지원하기 가장 쉬운 프로토콜인 HTTP와 HTTPS만 있습니다.

관련 정보