리눅스에서 가상화 서버로 포트포워딩과 서비스 연결
좀더 빡세게 서버를 돌리기 위해 리눅스 서버 위에 윈도우 2008 서버를 가상화로 설치하여 사용 중이다.
문제는 이 리눅스 서버에는 이미 다양한 서버가 설치되어 있었는데 그중에는 웹서버도 포함되어 있었다. 또한 수십여개의 도메인도 연결되어 있었다. 기존에 사용하던 IP, 도메인 등은 그대로 둔채 특정 도메인이나 특정 포트만 가상화 서버로 연결해주려면 다음과 같이 한다.
특정 포트만 가상화 서버로 포트포워딩하여 연결하고 싶은 경우
iptables를 이용한다. 내 서버의 경우에는 윈도우 2008 가상화 서버에 192.168.122.95 라는 아이피가 부여되어 있었다.
특정 도메인만 가상화 서버로 연결하고 싶은 경우
이건 꽤 문제가 되는데 내 경우에는 HTTP 웹서비스를 담당하는 80번포트만 윈도우 서버에 따로 연결하고 싶었다.
아파치 서버의 conf 파일에서 Virtual Host를 하나 만들고 Server Name으로 원하는 도메인을 적은 다음과 같이 ProxyPass를 잡아준다.
ProxyPass / http://192.168.122.95/
ProxyPassReverse / http://192.168.122.95/
이렇게 하면 일단 해당 도메인으로 오는 요청을 리눅스 서버의 아파치 서버가 받은 다음 프록시 모듈을 이용해서 윈도우 서버로 통신을 넘겨준다.