본문 바로가기
서버/Linux

리눅스(Linux) 아파치 톰캣 연동(ajp방식)

by redbear0077 2022. 5. 21.
반응형

리눅스(Linux) 아파치 톰캣 연동(ajp방식)

<아파치 명령어>
service httpd start
service httpd stop
service httpd restart
service httpd status

<톰켓 명령어>
service tomcat start
service tomcat stop
service tomcat restart
service tomcat status

 

0.사전준비

*아파치(Apache), 톰캣(Tomcat), 자바홈(JAVA_HOME), 톰캣커넥터(Connectors)를 설치해야한다.

※sudo 명령어 먹통일 경우 sudo 명령어 설치해야한다

mod_jk설치전 (gcc, gcc-c++, httpd-devel)을 설치해야한다.

설치하지 않았다면 설치

따로 설치
[root@test]# yum -y install gcc
[root@test]# yum -y install gcc-c++
[root@test]# yum -y install httpd-devel
한번에 설치
[root@test]# yum -y install gcc gcc-c++ httpd-devel

  #톰캣 커넥터 다운로드(압출만 풀고 따로 설치는 하지 않는다.)

    -다운로드 이상시 다운로드 사이트 링크 주소 복사 하여 사용

다운로드
[root@test]# wget -c https://downloads.apache.org/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.48-src.tar.gz
위명령어 이상시 사용방법
[root@test]# wget -c 링크주소 붙여넣기( shify + insert)

 

  #톰캣 커넥터 압축풀기

압축 풀기
[root@test]# tar -zxvf tomcat-connectors-1.2.48-src.tar.gz
압출 풀기 이름 다른경우
[root@test]# tar -zxvf 해당 파일이름

(확실한게아니다)
파일이동(커넥터):파일위치가 다르면 아파치 안켜진다 
[root@test]# mv 커넥터 파일명 /usr/local/

1.mod_jk 생성

  #톰캣 커넥터 파일위치로 이동

구조
[root@test]# cd /파일경로/톰캣 커넥터/native
내가저장한 경로
[root@test]# cd /home/opc/tomcat-connectors-1.2.48-src/native

  #apxs찾기(아파치 파일위치 찾기)

[root@test]# find / -name apxs

  #Makefile생성(톰캣 커넥터 경로/native/ 에서 명령어를 실행해야 한다.)

구조
[root@test]# ./configure --with-apxs=/apxs파일 경로/apxs
내가 설정한 경로
[root@test]# ./configure --with-apxs=/usr/bin/apxs

  #make, make install실행(한번에 실행한다. 이상시 따로실행한다.)

한번에 실행
[root@test]# make && make install
따로 실행
[root@test]# make
[root@test]# make install

    -make 작동안할시(libtool, automake, makeinfo)설치해보자!

  #mod_jk생성 확인(해당 경로에 mod_jk가 있는지 어떤 방법으로든 확인가능)

[root@test]# ll /etc/httpd/modules/ | grep mod_jk

※찾지 못한다면 위의 내용을 하나하나 다시 해본다.

>>>>>사진처럼 나온다면 성공<<<<<<<

  #보안관련 설정 변경

[root@test]# chcon -u system_u -r object_r -t httpd_modules_t /etc/httpd/modules/mod_jk.so

2.아파치(Apache) 설정

(기본(yum) 설치 시 경로는 /etc/httpd 에 설치가 되며, 설정파일은 /etc/httpd/conf 경로의 httpd.conf 파일이 존재한다.)

  #httpd.conf파일 찾기

[root@test]# find / -name httpd.conf

두개의 경로 또는 그이상의 경로가 나올수 있다. 더 자세한 내용은 크롬 검색!!!!!!!!

  #httpd.conf 내용 수정

해당 경로에서 열기
vi httpd.conf
한번에 열기
vi /etc/httpd/conf/httpd.conf

    -최하단에 내용 추가

IncludeOptional conf/extra/*.conf

(아파치 최상위 설정 파일(httpd.conf)에서 앞으로 추가할 설정파일을 사용할 수 있도록 위의 내용을 추가해준다.)

  #workers.properties 파일 생성

    -경로

[root@test]# vi /etc/httpd/conf/workers.properties

    -작성내용(ip주소는 localhost(127.0.0.1)로 해준다)

worker.list=instance
worker.instance.port=8009
worker.instance.host=127.0.0.1
worker.instance.type=ajp13

  #mod_jk.conf 파일 생성(workers.properties, logging등을 설정)

    -경로

[root@test]# vi /etc/httpd/conf.modules.d/mod_jk.conf

    -작성내용

<ifModule jk_module>
        JkWorkersFile           conf/workers.properties
        JkLogFile               logs/mod_jk.log
        JkLogLevel              info
        JkShmFile               /var/log/httpd/jk-runtime-status
        JkWatchdogInterval      30
</ifModule>

  #default.conf 파일 생성

    -포인트

  • 해당 파일은 기본 Apache VirtualHost 설정파일로 신규 작성해주는것이고 ServerName은 임시로 localhost로 지정해주겠습니다.
  • JkMount /* instance 이부분은 도메인이 localhost인 모든 요청은 설정해준 ajp worker의 이름인 instance로 처리하겠다라는 설정
  • 보통 아파치에서 디렉토리 매칭, Port Forwardin설정시 사용하는 Location 설정과 비슷하다.

    -생성전 작업

해당 경로에 들어가서 mkdir extra를 해야한다.
cd /etc/httpd/conf
mkdir extra

    -경로

[root@test]# vi /etc/httpd/conf/extra/default.conf

    -작성내용

LoadModule jk_module modules/mod_jk.so

Include conf.modules.d/mod_jk.conf

<VirtualHost *:80>
        ServerName      localhost

        JkMount /*      instance
</VirtualHost>

  #아파치 재기동

재시작
systemctl restart httpd
종료
systemctl stop httpd
시작
systemctl start httpd

    -재기동중 애러발생(아래 내용의 애러 발생시 보안관련 설정 변경을 다시해본다)

     (아파치 로그 : tail -f /var/log/httpd/error_log)

     (chcon -u system_u -r object_r -t httpd_modules_t /etc/httpd/modules/mod_jk.so)

     (setenforce 0)

      systemctl 수정시 아래 명령어 실행 : (systemctl daemon-reload)

참조사이트(https://antdev.tistory.com/83)

    -로그파일 위치 : /var/log/httpd/error_log 

    -로그보기 : tail -200f /var/log/httpd/error_log 

Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.

  #톰캣 설정(AJP)

    -톰캣의 server.xml에 설정 변경(다운받아서 풀어둔 톰캣경로에서 수정)

구조
[root@test]# cd /톰캣 경로/conf
내 톰캣 경로
[root@test]# cd /home/opc/apache-tomcat-8.5.27/conf

한번에 실행
[root@test]# vi /home/opc/apache-tomcat-8.5.27/conf/server.xml

    -server.xml 에서 /Define an AJP 1.3 Connector on port 8009 찾아서 내용 추가/수정(내용이 있거나 동일하다면 따로수정하지 않는다.)

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

  #톰캣 재기동

구조
sh /톰캣 경로/bin/stop.sh

경로재시작
sh /home/opc/apache-tomcat-8.5.27/bin/shutdown.sh
sh /home/opc/apache-tomcat-8.5.27/bin/startup.sh

시스템에 등록한경우
systemctl stop tomcat
systemctl start tomcat

  #서버 IP로 접속

    -아래처럼 나타난다면 성공

systemctl 수정시 아래 명령어 실행

-systemctl daemon-reload

 

빠른 설정

빠른 설정

	1. [root@test]# yum -y install gcc gcc-c++ httpd-devel

	2. [root@test]# wget -c https://downloads.apache.org/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.48-src.tar.gz

	3. [root@test]# tar -zxvf tomcat-connectors-1.2.48-src.tar.gz

	4. [root@test]# cd /home/opc/tomcat-connectors-1.2.48-src/native

	5. [root@test]# ./configure --with-apxs=/usr/bin/apxs

	6. [root@test]# make && make install

	7.[root@test]# chcon -u system_u -r object_r -t httpd_modules_t /etc/httpd/modules/mod_jk.so

	8. [root@test]# vi /etc/httpd/conf/httpd.conf
		-최하단 추가 : IncludeOptional conf/extra/*.conf

	9. [root@test]# vi /etc/httpd/conf/workers.properties
		추가
		worker.list=instance
		worker.instance.port=8009
		worker.instance.host=127.0.0.1
		worker.instance.type=ajp13

    10. [root@test]# vi /etc/httpd/conf.modules.d/mod_jk.conf
        추가
        <ifModule jk_module>
            JkWorkersFile           conf/workers.properties
            JkLogFile               logs/mod_jk.log
            JkLogLevel              info
            JkShmFile               /var/log/httpd/jk-runtime-status
            JkWatchdogInterval      30
        </ifModule>


    11. [root@test]# cd /etc/httpd/conf
        [root@test]# mkdir extra
        [root@test]# vi /etc/httpd/conf/extra/default.conf
        추가
        LoadModule jk_module modules/mod_jk.so

        Include conf.modules.d/mod_jk.conf

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

	12. [root@test]# chcon -u system_u -r object_r -t httpd_modules_t /etc/httpd/modules/mod_jk.so [root@test]# setenforce 0


    13. [root@test]# systemctl stop httpd
        [root@test]# systemctl start httpd

    14. [root@test]# vi /home/opc/apache-tomcat-8.5.27/conf/server.xml
        검색 : Define an AJP 1.3 Connector on port 8009
        추가/변경 : <Connector protocol="AJP/1.3" address="localhost" port="8009"  redirectPort="8443"  secretRequired="false" />

    15. [root@test]# sh /home/opc/apache-tomcat-8.5.27/bin/shutdown.sh
        [root@test]# sh /home/opc/apache-tomcat-8.5.27/bin/startup.sh
반응형