*웹서버와 WAS 연동방식

1. ISAPI

단점: 속도 느리다 회사가 다른 제품일 때 보통 쓴다

2. 라이브러리

같은 회사 것만 사용 가능(아파치-톰캣 등) 속도가 빠르다

 

 

0. 웹서버와 WAS 비교


서버 웹서버 WAS(Web Application Server)

프로그램 아파치 톰캣
포트 80 8080
  정적 동적

1. 아파치-톰캣 연동 설명


참고 사이트

AJP, mod_jk 설명 사이트

https://noobnim.tistory.com/26

아파치, 톰캣 설명 참고 사이트

https://byul91oh.tistory.com/65

1-1. APJ, mod_jk

(1) APj

웹서버 뒤에 있는 어플리케이션 서버로부터 웹서버로 들어오늘 요청을 위임할 수 있는 바이너리 프로토콜이다.

(2) mod_jk

아파치, 톰캣 연동을 위해 mod_jk 라는 모듈을 사용하는데, 이는 AJP프로토콜을 사용하여 톰캣과 연동하기 위해 만들어진 모듈이다. mod_jk는 톰캣의 일부로 배포되지만, 아파치 웹서버에 설치하여야 한다.

1-2. 동작 방식

https://madplay.github.io/post/apache-tomcat-modjk

 

  1. 아파치 웹서버의 httpd.conf에 톰캣 연동을 위한 설정을 추가하고 톰캣에서 처리할 요청을 지정한다.
  2. 사용자의 브라우저는 아파치 웹서버(보통 포트80)에 접속해 요청한다.
  3. 아파치 웹서버는 사용자의 요청이 톰캣에서 처리하도록 지정된 요청인지 확인 후, 톰캣에서 처리해야 하는 경우 아파치 웹서버는 톰캣의 AJP포트(보통 8009포트)에 접속해 요청을 전달한다.
  4. 톰캣은 아파치 웹서버로부터 요청을 받아 처리한 후, 처리 결과를 아파치 웹서버에 되돌려 준다.
  5. 아파치 웹서버는 톰캣으로부터 받은 처리 결과를 사용자에게 전송한다. 출처: https://noobnim.tistory.com/26 [공부하는 블로그:티스토리]

2. 아파치와 톰캣 연동 설정


참고 사이트

아파치 톰캣 연동하기(apache, tomcat, mod_jk)

아파치 톰캣 연동

2-1. Apache 설정하기

(1) 라이브러리 다운 및 폴더 디렉토리 설정

라이브러리 다운

https://www.apachelounge.com/download/ 에서 다운로드 파일 다운

zip 파일 안의 mod_jk.so 파일을 $Apache_Home > modules 폴더 안에 위치시킴

(2) workers.properties 추가

 

📢 workers.properties 파일은 Apache HTTP Server에서 연결하고자 하는 Tomcat에 대한 정의 및 설정 파일이다. workers는 back-end에 위치한 각 Tomcat 인스턴스들을 가리킨다.

[worker.properties 설명 출처]

(https://sarc.io/index.php/httpd/259-workers-properties-1#:~:text=이 workers.properties 파일은,정의 및 설정 파일이다.&text=worker.tomcat1%2C worker.tomcat2,값과 동일해야 한다.)

[Apache_Home] > conf 폴더에 텍스트 파일을 생성한다. 텍스트 파일을 [worker.properties] 이라고 제목을 수정하고 다음의 코드를 추가한다.

  • worker.properties 추가 코드
worker.list=study
worker.study.type=ajp13
worker.study.host=localhost
worker.study.port=8009

(3) AJP 옵션 활성화

$Apace_Home > conf 폴더의 httpd.conf파일에서 AJP 옵션을 활성화 해야 한다.

맨 아래에 다음의 코드를 추가한다 (아마도 한글 설정하는 코드 아래일 것임 )

  • httpd.conf 수정 코드 (AJP 옵션 활성화)
#mod_jk 모듈 설정
     LoadModule jk_module modules/mod_jk.so
     JkworkersFile conf/workers.properties
     JkMount /* study
 # log 파일 만들기
     JkLogFile logs/mod_jk.log
     JkLogLevel info
     JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
     JkRequestLogFormat "%w %V %T"

2-2. 톰캣 설정하기

(1) AJP 활성화

%Tomcat_Home > conf 폴더에서 server.xml 파일을 수정한다.

주석 처리되있다면 해제하고, 포트 등이 맞는지 확인 한다

  • server.xml 코드
<!-- Define an AJP 1.3 Connector on port 8009 -->

    <Connector protocol="AJP/1.3"
               address="127.0.0.1"
               port="8009"
               redirectPort="8443"
	secretRequired="false"
    />

2-3. 가상 호스트 설정

📢 동일한 서버 내에 여러 도메인을 가진 웹서버를 구축해서 서비스를 할 때 사용
www.plc1.com
www.plc2.com 등
아파치 입장에서는 톰캣이 가상 호스트임

[Apache_Home]\conf\extra\httpd-vhosts.conf 에 다음의 코드 추가

<VirtualHost *:8009>    
      ServerAdmin admin    
      DocumentRoot "C:/webroot"
      ErrorLog "logs/example-project-error.log"
      CustomLog "logs/example-project-access.log"
</VirtualHost>

3. 결과

*** MachineInfo.java 파일의 서브렛을 ("/dbconnection")으로 바꾼 상태임(컴파일도 해둠)

톰캣, 아파치 서버를 전부 끄고, 톰캣 → 아파치 순서대로 실행한다. (아파치는 윈도우 서비스이므로 관리자 권한 실행)

이후에는 포트번호(8080)이 없이 서브렛만 입력해도 된다.

http://127.0.0.1/dbconnection

속도가 빠르다

 

'JAVA > 웹서버' 카테고리의 다른 글

아파치 Servlet 만들기  (0) 2022.05.30
아파치 톰캣 만들기  (0) 2022.05.27
아파치 서버 만들기  (0) 2022.05.27

+ Recent posts