여기에는 몇 가지 개념이 있다고 생각합니다. 첫째, 일반적으로 IP 주소 당 하나의 포트에 하나의 응용 프로그램 만 가질 수 있습니다. 다른 서버로 물건을 전달하는 것을 처리 할 수있는 소프트웨어가 있습니다.
처음부터 시작하겠습니다
가장 간단한 지형은 다음과 같습니다
Internet+-----------> consumer router +----------> Host+--------------> VM
인터넷 연결을 위해 라우팅 가능한 IP 주소 (NAT가 아님)가 필요하며 일반적으로 라우터에서 확인할 수 있습니다. 이것에 당신의 ipv4 A 기록을 지적하십시오.
호스트와 VM을 설정하는 방법에는 NAT (호스트에서 VM으로 포트를 전달해야 함) 또는 VM이 별도의 물리적 시스템으로 작동하는 '브리지'라는 두 가지 옵션이 있습니다. 나는 다리를 선호합니다.
VM의 NAT를 사용하려면 라우터에서 호스트로, 호스트에서 VM으로 두 번 포트 포워딩해야합니다.
브리지 된 네트워크로 사용하려면 사용하려는 포트를 VM으로 전달하면됩니다.
일반적으로 웹 서버는 포트 80을 사용하지만 때로는 해당 포트가 차단됩니다.
이제 2 대의 웹 서버에서는 복잡해집니다. 두 개의 분리 된 웹 서버를 갖는 가장 좋은 방법 은 프록시로 실행 되는 세 번째 서버 를 갖는 것입니다.
ngnix는 이에 대한 대중적인 옵션입니다.이 serverfault 질문 은 프로세스 를 다루지 만 기본적으로 세 번째 서버는 도메인 이름을 기준으로 올바른 서버로 트래픽을 전달합니다. 이것은 가상 호스트를 사용하며 ngnix는 리버스 프록시로 매우 효율적으로 작동합니다.
다른 루트 디렉토리와 하나의 웹 서버로 두 개의 가상 호스트를 설정할 수도 있습니다. 데이터베이스를 공유 할 필요는 없습니다 (자체 VM에있을 수 있음). 이것이 현명한 방법 일 것입니다.