리눅스 서버에서 Apache/Tomcat mod-proxy 방식 연동

탄력이·2023년 2월 21일
1

리눅스 서버

목록 보기
1/1
post-thumbnail

시나리오 :

Apache-Tomcat 연동으로 사용자의 요청을 80포트로 받아 동일 서버 tomcat의 서비스 포트 (tomcat의 server.xml 에 있는 port설정)(8080) 으로 보내려 한다.

준비물

apache는 2.4 이상으로 할 것
-> 그래야 mod-proxy 방식이여도 속도 저하 현상 없음.

  • Tomcat
  • Apache(httpd)
  • jdk

apache :80으로 오는 요청 tomcat :8080으로 보내기

  • OS 및 설치 방법에 따라 apache(httpd) 의 설치 경로는 상이할 수 있다.
  • apache의 httpd.conf 를 수정하여 아래 소스코드를 주입해주자.
수정 : vi /etc/httpd/conf/httpd.conf
  • 먼저 위 파일에 Listen 80 이란 코드가 잘 있는지 확인한다.
Listen 80
  • 아래 주석 바로 밑에 아래 코드를 넣어주자. (apache 일정 버전 이상에서는 LoadModule 3줄은 사실 안넣어도 된다고 한다 기동시 apache 로그 참고)
# Example:
# LoadModule foo_module modules/mod_foo.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
Include conf/extra/httpd-vhosts.conf
  • httpd-vhosts.conf를 만들어주자 (폴더가 없다면 폴더도 만들자)
수정 : vi /etc/httpd/conf/extra/httpd-vhosts.conf
  • httpd-vhosts.conf 에 아래 코드를 작성해주자.
<VirtualHost *:80>
    ServerName 127.0.0.1:8080
    ProxyRequests Off
    ProxyPreserveHost On
    ProxyPass / http://127.0.0.1:8080/
    ProxyPassReverse / http://127.0.0.1:8080/
</VirtualHost>
  • apache 재기동 후 http://서버IP:80 으로 접속해서 tomcat이 띄운 화면이 뜨는지 확인해보자.

  • 해당 profile의 storage.server.port, cyberdigm.masterStorageServer 값의 포트를 변경해주자.
storage.server.port=80
cyberdigm.masterStorageServer=서버IP:80
  • 추후 사용자의 8080 포트로의 직접 접속은 방화벽으로 막던지, 방화벽을 사용하지 않는다면 8080이 아닌 아무도 접속 안할 포트로 tomcat을 띄우고 연동을 해주자.

profile
결국 해내고야 마는 개발자

0개의 댓글