*웹서버와 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
- 아파치 웹서버의 httpd.conf에 톰캣 연동을 위한 설정을 추가하고 톰캣에서 처리할 요청을 지정한다.
- 사용자의 브라우저는 아파치 웹서버(보통 포트80)에 접속해 요청한다.
- 아파치 웹서버는 사용자의 요청이 톰캣에서 처리하도록 지정된 요청인지 확인 후, 톰캣에서 처리해야 하는 경우 아파치 웹서버는 톰캣의 AJP포트(보통 8009포트)에 접속해 요청을 전달한다.
- 톰캣은 아파치 웹서버로부터 요청을 받아 처리한 후, 처리 결과를 아파치 웹서버에 되돌려 준다.
- 아파치 웹서버는 톰캣으로부터 받은 처리 결과를 사용자에게 전송한다. 출처: 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)이 없이 서브렛만 입력해도 된다.
속도가 빠르다
'JAVA > 웹서버' 카테고리의 다른 글
아파치 Servlet 만들기 (0) | 2022.05.30 |
---|---|
아파치 톰캣 만들기 (0) | 2022.05.27 |
아파치 서버 만들기 (0) | 2022.05.27 |