본문 바로가기
Java

자바 톰캣 + 아파치 설정

by NaHyungMin 2020. 7. 23.

윈도우 환경 iis 설정만 하다가 리눅스 테스트 서버 설정을 하며 하루정도 헤매고 설정을 끝냈다.

 

처음 톰캣을 설정하고 설치하는 사람들에게는 도움이 되지 않을 수 있으나, 한번 해본 사람에겐 도움이 되기를 바란다.

 

아파치는 httpd 서비스를 사용하는 iis로 따지면 접속 포트 설정을 하는 곳이다.

톰캣은 iis로 따지면 디렉토리? 서버 컨테이너이다.

 

사용자 -> dns -> ip -> 리눅스 -> 아파치 -> 톰캣(코드) 정도로 사용된다고 생각하면 될 듯.

 

내가 했던 방법은 yum에서 톰캣을 받은게 아니라 포터블 식으로 톰캣을 다운 받아 설치했다.

테스트서버에 누가 톰캣 + 아파치는 설치해놨고, 기본적인 mod_jk 형식만 설치되어 있는 상태.

 

아파치와 톰캣을 연동하는 방법은 3가지가 있다고 하는데, 안타깝게도 구식이라는 mod_jk를 사용했다.

만약 mod_jk를 사용하지 않아도 되는 상황이라면 최신으로 설정하기를 바란다.

 

아파치를 설치하면 /etc/httpd에 conf 디렉토리가 보인다.

여기서 workers.workers.properties가 있는데 vi 명령어로 안에 설정을 보면 로드밸런스 및 에러 같은 설정 정보가 있는데

일단 여기서는 접속 정보만 하기로 한다.

 

# Second member is "restapi", most
# attributes are inherited from the
# template "worker.template".
worker.list=restapi
worker.restapi.reference=worker.template
worker.restapi.host=localhost
worker.restapi.port={port}
worker.restapi.activation=A

list : 이름

reference : 기본 설정(접속 풀, 타임아웃 등 가지고 있는 정보) worker.template.type=ajp13 (톰캣과 통신하는 아파치 프로토콜)

activation=A :

# A: active (use node fully)
# D: disabled (only use, if sticky session needs this node)
# S: stopped (do not use)

 

다음은 mod_jk로 간다.

만약 mod_jk가 없으면 만드는 방법을 찾아서 설정해줘야 한다. -..- 거기까지 찾기엔 귀찮아서 넘긴다.

 

dns로만 접속할 수 있게 설정했다.

<VirtualHost *:80>
    ServerAdmin {관리자}
    DocumentRoot /usr/local/{디렉토리}/restapi
    ServerName restapi.test.{네이밍서버}
    ErrorLog logs/restapi-error_log
    TransferLog logs/restapi-access_log
    JkMount /* restapi
</VirtualHost>

 

톰캣을 사이트에서 받아서 압축 해제해야 한다.

나같은 경우 /usr/local/server에 apache-tomcat-8.5.54.tar.gz를 압축 해제 하고 /usr/local/server/conf  서버 설정 파일 server.xml 을 수정했다.

 

<server port="{port} shutdown="SHUTDOWN"> 톰캣을 내릴 수 있게 접속하는 포트 중복 안되게 설정하면 된다.

<Connector port="{외부 접근 Port} protocol="HTPP/1.1" ....  외부에서 접근하는 http 포트

<Connector protocol="AJP/1.3" address="0.0.0.0" port="{port:workers에 만든 있는 포트} 톰캣과 아파치가 통신하는 ajp 포트 workers에서 설정한 포트 번호를 넣어주면 된다.

 

<Host name="localhost" appbase="webapps" unpackWars="true" autoDeploy="true">
<Context docBase="/usr/local/{디렉토리}/restapi" path="/" reloadable="true" /> 코드가 위치할 경로

 

이제 톰캣이 있는 폴더에서 bin으로 가서 ./shutdown.sh 후 ./startup.sh를 실행하면 된다.

톰캣 위치에 logs에 catalina.out에 실행할 때 로그가 쌓인다.

로그가 많을 때 지우는 명령어는 cat /dev/null>catalina.out

 

톰캣을 설치하고 chown -R tomcat:tomcat {톰캣} 으로 권한을 톰캣에게 넘겨줬다.

그리고 코드가 있는 경로에서도 chown -R {user}:tomcat 넘겨줬다.

war 파일을 옮기고 압축 풀 때 해보니, 루트가 실행해서 권한 변경 없이도 실행은 된다.

 

war 파일을 옮기고 unzip 명령어를 통해 압축을 풀어줬다.

 

테스트서버가 카페24로 되어 있길래, 계정 정보를 물어 dns를 추가한 후, ping을 통해 주소가 입력된걸 확인하고 해보니 다행히 테스트서버 세팅이 되었다.

'Java' 카테고리의 다른 글

자바 스프링 구조  (0) 2020.07.23
인텔리제이 Rest api 프로젝트 배포  (0) 2020.07.23
자바 스프링 기본 구조  (0) 2020.07.16
자바 Rest api3  (0) 2020.07.16
자바 Rest api2  (0) 2020.07.16