공인 아이피 1개, 포트 1개, 도메인으로 여러 대의 웹서버를 운영하는 방법입니다.
공인 아이피가 1개 있는 상태에서 웹서버를 여러 대 운영하려면 보통 포트 번호를 달리하는 방법을 사용합니다.
아래처럼 말이죠..
https://isulnara.com:8080/
https://isulnara.com:8081/
그런데 사용할 수 있는 포트가 1개 밖에 없다면 어떻게 해야 할까요?
저같은 경우 회사 네트웍 관리자에게 부탁해 제가 사용하는 NAS의 80, 2222번 포트를 오픈할 수 있었습니다.
현재 웹서버 운영을 위해 추가 포트를 열어달라고 할 수 없는 상황입니다. 이런 상황에서 80포트 하나를 이용하여 사내의 여러 웹서버를 외부에서도 접속할 수 있는 방법이 필요했습니다.
넷하드 카페의 키리님의 도움으로 아파치 Proxy 모듈이 있다는 것을 알았습니다.
Proxy라는 이름에서도 알 수 있듯이.. HTTP 요청을 받으면 Proxy 모듈에서 해당 서버로 요청(request)을 하고 응답(response)을 받은 후 다시 클라이언트에게 그 응답(response)을 넘겨주는 방식입니다.
아파치 설정
1. 모듈 설정
– 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/)
2. 가상 호스트 설정
– ds209+II의 경우: /usr/syno/apache/conf/extra/httpd-vhosts.conf
<VirtualHost *>
ServerName s1.isulnara.comProxyPass / http://192.168.0.2:8080/
ProxyPassReverse / http://192.168.0.2:8080/
</VirtualHost>
3. 아파치 재시작
– ds209+II의 경우: /usr/syno/etc/rc.d/S97apache-user.sh restart
이제 http://s1.isulnara.com으로 접속하면 공유기 또는 방화벽 내의 외부로 오픈되지 않은 웹서버에 접근할 수 있습니다.
*. ds106e의 가장 최신 펌웨어를 설치한 PPC 계열의 CPU를 사용하는 ds101g+(Apache/2.2.8)에서도 동작됨을 확인하였습니다.
DSM 2.2버전으로 펌업했는데 proxy 모듈등 필요한 모듈은 전부 설치되있네요.
bash설치하다가 root를 날려서리, 펌웨어 리셋하고 2.2버전으로 새로 셋팅했는데, 이번엔 잘됩니다 ^^
괜히 저때문에 고생하셨네요..
설정 완료 후 현재 접속을 끊지 말고, 새로 연결하여 테스트 후 정상 동작을 확인하라고 표기에 두어야 겠네요..
저도 오늘 밤에 어제 올라온 최신 펌웨어로 업데이트하려구요..
안녕하세요.. 시놀로지 카페에서 검색하다가 들어오게 됐습니다..ㅈㅓ런 경로 자체가 없는데.. 혹시 tomcat이라는걸 설치하는건지..가상호스팅과의 차이점이 무엇인지 궁금해서요.. 옛날 글인 것 같아서 따라하지를 못하겠네요… 꼭 원하는 기능인데…그런데 참 사이트를 오랫동안 유지하시는군요 최근글이 2016년인걸 보니..대단하십니다.. ^^
안녕하세요.
나스에 적용하려는 것인가요?
만약 그렇다면 사용하는 모델이 어떻게 되는지요?
제가 이 팁을 작성한지가 오래되어서 최근에 나오는 나스 모델과는 파일의 경로가 서로 맞지 않습니다.
아래 경로를 수정해야 됩니다.
/usr/syno/apache/conf/ -> /etc/httpd/conf/
그리고, 아파치 재시작 명령은 아래 명령으로 변경하여 사용하시기 바랍니다.
initctl restart http-user
만약 특정 도메인을 나스에 설치된 tomcat으로 연결하고자 한다면 tomcat을 설치하면 되겠죠.. 그렇지 않다면 설치할 필요는 없습니다.
이 방법이 가상호스팅을 이용한 방법입니다.
제가 작성한 방법 외에도 HAProxy라는 패키지 프로그램을 이용하여 동일한 효과를 낼 수 있는 방법이 있습니다.
설정 UI가 존재하기 때문에 어렵게 각종 설정과 명령을 직접 내리지 않아도 됩니다.
아래 “시놀로지 NAS 순수 사용자 모임” 카페의 “하얀전쟁”님의 팁을 참고해보세요.
http://cafe.naver.com/synol/3138