공인 아이피 1개, 포트 1개, 도메인으로 여러 대의 웹서버를 운영하는 방법입니다.
공인 아이피가 1개 있는 상태에서 웹서버를 여러 대 운영하려면 보통 포트 번호를 달리하는 방법을 사용합니다.
아래처럼 말이죠..
https://isulnara.com:8080/
https://isulnara.com:8081/
그런데 사용할 수 있는 포트가 1개 밖에 없다면 어떻게 해야 할까요?
저같은 경우 회사 네트웍 관리자에게 부탁해 제가 사용하는 NAS의 80, 2222번 포트를 오픈할 수 있었습니다.
현재 웹서버 운영을 위해 추가 포트를 열어달라고 할 수 없는 상황입니다. 이런 상황에서 80포트 하나를 이용하여 사내의 여러 웹서버를 외부에서도 접속할 수 있는 방법이 필요했습니다.
넷하드 카페의 키리님의 도움으로 아파치 Proxy 모듈이 있다는 것을 알았습니다.
Proxy라는 이름에서도 알 수 있듯이.. HTTP 요청을 받으면 Proxy 모듈에서 해당 서버로 요청(request)을 하고 응답(response)을 받은 후 다시 클라이언트에게 그 응답(response)을 넘겨주는 방식입니다.
아파치 설정
- 모듈 설정
– ds209+II의 경우: /usr/syno/apache/conf/httpd.conf-user
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so….
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
당연히 아파치 modules 폴더에 mod_proxy.so와 mod_proxy_http.so가 있어야 됩니다.
ds209+II의 경우 제가 컴파일한 파일이 있으니 받아서 사용하면 됩니다.
– ds209+II용(Apache/2.2.8) 모듈 받기: mod_proxy.so, mod_proxy_http.so
– 다른 모듈도 함께 올려두었습니다(https://nas.fft.kr/bloc/DS-209plusII/apache/modules/)
- 가상 호스트 설정
– ds209+II의 경우: /usr/syno/apache/conf/extra/httpd-vhosts.conf
ServerName s1.isulnara.comProxyPass / http://192.168.0.2:8080/
ProxyPassReverse / http://192.168.0.2:8080/
- 아파치 재시작
– ds209+II의 경우: /usr/syno/etc/rc.d/S97apache-user.sh restart
이제 http://s1.isulnara.com으로 접속하면 공유기 또는 방화벽 내의 외부로 오픈되지 않은 웹서버에 접근할 수 있습니다.
*. ds106e의 가장 최신 펌웨어를 설치한 PPC 계열의 CPU를 사용하는 ds101g+(Apache/2.2.8)에서도 동작됨을 확인하였습니다.