태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

작성일 : 2014 / 10 / 14


목표 : 아파치(Apache) vhost의 ProxyPass 를 이용해서 하나의 서버에 접속하면 다른 서버들로 연결 해주는 기능 구현


방화벽이나 보안 기타 등등의 이유로 중간에 서버를 하나 두고, 실제 서비스를 하는 서버는 그 아래 둘 때 아파치를 이용해서 연결을 해줄 수 있다.


1. 아파치(Apache) 웹서버 다운로드 및 설치

  1) http://www.apache.org/dyn/closer.cgi 에서 미러 사이트로 접속

  2) 가장 위에 있는 http://apache.tt.co.kr/ 에 접속 (아무데나 해도 된다)

  3) http://apache.tt.co.kr/httpd/binaries/win32/ 에 들어가서 httpd-2.2.25-win32-x86-no_ssl.msi 다운로드 (64비트는 없나..;;)

  4) 설치는 쭉 넥스트, 넥스트......


2. 아파치 시작/중지

  - 트레이에 있는 아파치 아이콘을 이용해서 시작/중지


3. 윈도우 방화벽에 아파치 추가

  1) 제어판 / Windows 방화벽 / 고급 설정 / 인바운드 규칙

  2) 새 규칙

  3) 프로그램 형태로 방화벽 규칙을 만들고,

      C:\Program Files\Apache Software Foundation\Apache2.2\bin\httpd.exe 선택

  4) 모든 설정을 허용으로 해주면 설치된 서버가 아닌 외부 PC에서도 아파치에 접근이 가능


4. httpd.conf 설정

  □ C:\Program Files\Apache Software Foundation\Apache2.2\conf 에 있는 httpd.conf 를 열어서 편집

    1) Include conf/extra/httpd-vhosts.conf 를 찾아서 주석 제거

    2) 아래 부분을 찾아서 변경


<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all => Allow from all
</Directory>


    3) ServerName 부분을 찾아서 기존에 있던 도메인 형태를 주석처리하고

          ServerName localhost

       한줄 추가


    4) 아래의 내용을 추가하거나 해당하는 행을 찾아서 주석 해제


LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so


5. httpd-vhosts.conf 설정

  □ C:\Program Files\Apache Software Foundation\Apache2.2\conf\extra 에 있는 httpd-vhosts.conf 를 열어서 편집

    1) 원래 있던 것 중 NameVirtualHost *:80 부분만 남기고 전부 삭제

    2) 아래의 내용 추가


Listen 8400


<VirtualHost *:80>

  ProxyPass /T http://192.168.110.111:8080/Test/
  ProxyPassReverse  /T http://70.130.150.14:8080/Test/


  ProxyPass /B http://192.168.110.122:8080/BB/
  ProxyPassReverse  /B http://70.130.150.14:8080/BB/


</VirtualHost>


<VirtualHost *:8400>

  ProxyPass /a http://192.168.110.111:8080/Test/
  ProxyPassReverse  /a http://70.130.150.14:8080/Test/

</VirtualHost>


   주소 표시줄 마지막에 / 를 써주면 "이 웹페이지에 리디렉션 순환 오류가 있습니다" 가 안나오는 것 같긴 한데................

   httpd.conf 에 없는 포트를 쓸려면 vhost 파일 윗쪽에 Listen 포트번호 를 적어준다. 정석은 httpd.conf 에 적는 것 같다;;;



6. 테스트

  1) 아파치가 설치된 서버를 192.168.110.222 이라고 가정했을 때 브라우져에서 아래와 같이 연결이 된다.

    http://192.168.110.222:80/T => http://192.168.110.111:8080/Test

    http://192.168.110.222:80/B => http://70.130.150.14:8080/BB

    http://192.168.110.222:8400/a => http://192.168.110.111:8080/Test


    http://192.168.110.222:80 => 아파치에 htdocs에 올라와있는 소스

    http://192.168.110.222:8400 => 아파치에 htdocs에 올라와있는 소스









Posted by 인터돌

댓글을 달아 주세요