nginx + tomcat 톰캣 설치

2017. 8. 9. 00:41

nginx + tomcat 톰캣 설치



○ 설치환경

- Linux centos

- nginx

- tomcat 9.0.0.M22





톰캣 다운로드 및 압축해제

# wget http://apache.tt.co.kr/tomcat/tomcat-9/v9.0.0.M22/bin/apache-tomcat-9.0.0.M22.tar.gz
# tar zxf apache-tomcat-9.0.0.M22.tar.gz




톰캣 설치

# cp -Rf apache-tomcat-9.0.0.M22 /usr/local/tomcat




톰캣 설정

# cd /usr/local/tomcat/
# vi conf/server.xml




톰캣 PATH 등록

# vi /etc/profile
아래 내용을 추가한다

CATALINA_HOME=/usr/local/tomcat
export CATALINA_HOME

PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin export PATH CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$CATALINA_HOME/lib export CLASSPATH




톰캣 PATH 적용

# source /etc/profile




톰캣 실행

# bin/startup.sh

아래와 같이 표시된다

톰캣 실행모습


참고로 종료 명령어는 아래와 같다.

# bin/shutdown.sh



nginx 연동 설정 방법

# vi /usr/local/nginx/conf/nginx.conf

아래 내용 적용

location ~ \.(jsp|do)$ {
    proxy_pass http://localhost:8080;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
}




nginx 설정 적용

# service nginx reload




이후 아래와 같이 엔진엑스 주소에 jsp 확장자파일로 정상 동작 여부를 확인하면 된다.


톰캣 동작여부 확인


이미지가 안나오는것은 jsp는 톰캣 컨텐츠 경로를 찾고. 그외 파일은 nginx 컨텐츠 경로에서 찾기때문에.

이미지등을 모두 nginx로 옮기면 된다.




*** 2017/11/17 추가 시작 ***

마지막 이미지가 나오지 않는것은

nginx 연동설정에서 "location ~ \.(jsp|do)$" 에 의해 .jsp, .do 만 tomcat에 연동설정을 했기 때문이다

그래서 톰캣 원본 index.jsp 파일 내에 이미지 경로는 톰캣설치 폴더 아래에서 있는데. nginx 가 중간에서 이미지위치를 nginx 자신의 경로에서 찾아 주려고 하기 때문에 이미지가 나오지 않는 것이다.

따라서, 이런 설정을 했다면 톰캣이 사용하는 이미지 파일들을 nginx아래로 옮겨줘야 한다.


톰캣 서비스경로: /usr/local/tomcat/webapps/ROOT/

엔진x 서비스경로: /usr/local/nginx/


방법은 아래와 같다.

#cp /usr/local/tomcat/webapps/ROOT/tomcat.png /usr/local/nginx/html/


와 같이 옮기면 된다

자.. 여기서 주의하자. 본인의 tomcat과 nginx 설정에 따라 "cp 옮길파일 옮길위치" 명령은 달라진다.

본인 서버 설정에 맞게 "옮길위치"를 정하는 것이다.

물론 tomcat.png은 옮기는 수고를 하면서 봐야 할 이유는 없다.

*중요한 것은* 개발하는 jsp에 이미지 위치가 nginx에 의해 결정된 곳에 두어야 한다는 것이다.

nginx를 손대지 않았다면 기본 폴더인 /usr/local/nginx/html/ 아래가 jsp와 do 파일을 제외한 모든 파일이 있어야 할 위치다


예를들어

memo.jsp에 <a href="memo.htm"><img src="memo.png"></a> 와 같은 명시를 했다면

memo.jsp는 /usr/local/tomcat/webapps/ROOT/ 아래에

memo.htm 과 memo.png 은 /usr/local/nginx/html/ 아래에 있어야 한다는 것이다.



이러한 설정은 장점이 있다. *.gif, *.jpg, *.htm 같은 파일은 nginx에 의해 처리되기 때문에 상대적으로 무거운 자바 컨테이너에 무리를 주지 않게 된다. (=성능이 좋아진다)


** 2017/11/17 추가 끝 **



문서 끝