본문 바로가기
Project/3-Tier Architecture

[3-Tier] WEB↔ WAS 연동 확인

by ganyga 2024. 2. 22.

WEB(WAS 서버에 전달할 것을 작성)

vi /etc/httpd/conf/httpd.conf

  • ProxyPassMatch 부분에 WAS 사설 IP 넣어주기
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so


<VirtualHost *:80>
        ProxyRequests On
        ProxyPreserveHost On

        <Proxy *>
                Order Deny,allow
                Allow from all
                SetEnv force-proxy-request-1.0.1
                SetEnv proxy-nokeepalive 1
                SetEnv proxy-initial-not-pooled 1
        </Proxy>

        ProxyPassMatch "^/.*\.(jsp|do)$" "http://10.100.3.16:8080"

        Timeout 120
</VirtualHost>

ProxyPassMatch

  • ProxyPassMatch는 웹 서버에서 요청된 특정 URL 패턴에 대해 지정된 WAS 서버로 프록시하는 역할
  • Apache HTTP Server는 웹 서버에서 .jsp 또는. do 확장자를 가진 요청을 받을 때 해당 요청을 WAS 서버로 프록시하여 처리함

⇒ 따라서, WEB 서버에서 WAS 서버로 프록시 해야 하기 때문에 WAS 서버 주소를 넣어야 함

 

변경사항 적용

  • systemctl restart httpd 했을 때 에러 코드가 뜬다면 다시 수정하고 재시작하면 됨
[root@web-a ~]# systemctl restart httpd
# 여기서 아무것도 안떠야함

WAS

/tomcat/webapps/ROOT/ 에 .jsp 파일 생성

[root@was-a ~]# cd /root/tomcat/webapps/ROOT/
[root@was-a ROOT]# ls
asf-logo-wide.svg  bg-nav.png    index.jsp          tomcat.css
bg-button.png      bg-upper.png  RELEASE-NOTES.txt  tomcat.svg
bg-middle.png      favicon.ico   test.jsp           WEB-INF

 

현재 시간을 보여주는 내용 추가

[root@was-a ROOT]# vi test.jsp

<%@ page contentType="text/html; charset=UTF-8"%>
<html>
    	<head><title>hello world</title></head>
    	<body>
            	tomcat test
            	now_time : <%= new java.util.Date()%>
    	</body>
</html>

 

WAS Server에서 확인 → curl localhost:8080/test.jsp

  • 현재 시간을 보여주는 내용을 추가했을 때 잘 동작하는지 확인
[root@was-a ROOT]# curl localhost:8080/test.jsp

<html>
    	<head><title>hello world</title></head>
    	<body>
            	tomcat test
            	now_time : Sat Jan 20 11:41:45 UTC 2024
    	</body>
</html>

WAS 보안 그룹 인바운드 규칙 추가

  • WEB 서버에서 들어오는 요청을 처리해야 하므로, WAS서버에서 WEB 서버 Private IP로 접속하는 8080을 뚫어줘야 함
  • WEB 서버에서 .jsp 확장자를 가진 URL로 접속하면 WAS서버로 프록시

 

WEB↔ WAS 연동 확인

WEB Server에서 확인 → curl localhost/test.jsp

  • 여기서 curl이 안간다면 WAS 보안그룹에 WEB 사설 IP : 8080 인바운드 허용을 제대로 해줬는지 확인하기
[root@web-a ~]# curl localhost/test.jsp

<html>
    	<head><title>hello world</title></head>
    	<body>
            	tomcat test
            	now_time : Sun Jan 21 03:16:47 UTC 2024
    	</body>
</html>