mod_jk connect 설정

배찌 (배찌)·2023년 2월 21일
0

설치 기록

목록 보기
7/12

#### 이 설정은 아직 완료가 되지 않는 내용이다.
#### 제대로 연결이 되지않아서 고민이 많다...

문제가 해결 되었다.

아래는 필요한 설정만을 최소한을 덜어낸 설정값들이다.

mod_jk

mod_jk는 apache web server와 tomcat WAS와 통신하기 위해 사용하는 묘듈로, AJP 프로토콜을 사용한다.

mod_jk 설치

라이브러리 설치

yum -y install gcc gcc-c++ httpd-devel pcre-devel

mod_jk 설치

wget https://dlcdn.apache.org/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.48-src.tar.gz
tar -zxvf tomcat-connectors-1.2.48-src.tar.gz
cd ./tomcat-connectors-1.2.48-src/native
./configure --with-apxs=/usr/bin/apxs
make
make install

여기서 --with-apxs=/usr/bin/apxs Apache은 확장 기능 설치를 도와주는 유틸리티 경로이고, httpd-devel 패키지를 설치할 경우 기본적으로 /usr/bin/apxs에 있다.
./configure 전에 apxs가 있는지 꼭 확인하길 바란다.
rpm으로 설치한 경우 경로를 확인후 적용하면된다.

정상적으로 make make install이 되면 다음과 같은 결과가 나온다.


설치가 되었으니 최종확인

apache server로 이동하기 전 port가 열려 있는지 확인

netstat -nlp  |grep java
firewall-cmd --zone=public --add-port=8009/tcp --permanent 
firewall-cmd --reload

apache server

mod_jk 사용 정의

vi /etc/httpd/conf/httpd.conf
LoadModule jk_module modules/mod_jk.so
<IfModule mod_jk.c>
    JkWorkersFile conf/workers.properties
    JkShmFile run/mod_jk.shm
    JkLogFile logs/mod_jk.log
    JkLogLevel info
    JkLogStampFormat "[%y %m %d %H:%M:%S] "
</IfModule>

<VirtualHost *:80>
    JkMount /* tomcat
    ServerName localhost
</VirtualHost>

tomcat server정의

현 설정방법은 단일 tomcat설정 방법이다.
다수 tomcat의 경우 로드밸런서로 묶어서 하면된다.

vi /etc/httpd/conf/workers.properties
worker.list=tomcat
worker.tomcat.port=8009
worker.tomcat.host=<tomcat ip>
worker.tomcat.type=ajp13
worker.tomcat.lbfactor=1
AJP 연결 포트

내부 테스트용이였기에 기본값 포트를 사용하였지만 기본적으로는 다른 포트로 변경하는걸 추천한다.
그리고 tomcat에서 https를 구현할 예정이라면 리다이렉션 포트도 열어주는걸 추천한다

firewall-cmd --zone=public --add-port=8009/tcp --permanent 
firewall-cmd --reload

https로 추가할경우 다음과 같은 내용을 추가한다

<VirtualHost *:443>
    ServerName localhost.com

    #SSL설정
    #자신이 SSL발급 받은 사이트에 대부분 매뉴얼이 나와있다.
    #SSL파일의 경로 입력
    SSLEngine on
    SSLCertificateFile /etc/httpd/conf/cert/_wilidcard_test.crt
    SSLCertificateKeyFile /etc/httpd/conf/cert/_wildcard_test.key
    SSLCertivicateChainFile /etc/httpd/conf/cert/test.pem
    SSLCACertificateFile /etc/httpd/conf/cert/test.crt
</VirtualHost>

tomcat 설정

AJP 사용 선언

vi /opt/tomcat/conf/server.xml
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

보통 AJP로 검색해서 찾아보면 주석처리가 되어있을테니 주석을 지우고 하면된다.

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

tomcat의 경우 기본적으로 설치되어 있기 때문에 이것만 설정하면 완료된다.
변경 후 tomcat 재시작

systemctl stop tomcat
systemctl start tomcat

systemctl로 설정하면 restart명령이 안먹히는 경우가 있다.
systemd 등록 안했다면 다음명령어로 가능하다.

/tomcat/bin/shutdown.sh
/tomcat/bin/startup.sh

연결 확인

webip로 접속하면 다음과 같은 결과가 나온다


이 아래는 jsp파일을 사용하여 확인할수 있는 방법이다.

tomcat에서 jsp파일을 생성한다.

vi /opt/tomcat/webapps/myapp/hello.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
	<title>Hello JSP Page</title>
</head>
<body>
	<h1>Hello, JSP World!</h1>
</body>
</html>

apache jsMount 설정 추가

vi /etc/httpd/conf/httpd.conf
JkMount /myapp/* ajp13_worker

apache restart

systemctl restart httpd

페이지 확인
http://(web site address)/myapp/hello.jsp

profile
Never give up Impossible is nothing

1개의 댓글

comment-user-thumbnail
2023년 2월 24일

sudo su jenkins -s /bin/bash // jenkins 계정으로 로그인 하는 방법

답글 달기