본문 바로가기

리눅스

CentOS 7에 NGINX와 Tomcat 멀티 인스턴스를 설치하고 설정하는 방법

728x90
반응형

CentOS 7에 NGINX와 Tomcat 멀티 인스턴스를 설치하고 설정하는 방법

1. nginx 설치

필수 패키지 설치

yum install pcre-devel zlib-devel openssl-devel

디렉토리 생성 및 이동

mkdir /app
cd /app/

Nginx 소스 코드 압축 해제

tar xvfz nginx-1.10.3.tar.gz

Nginx 소스 디렉토리로 이동

cd nginx-1.10.3

Nginx 구성 설정

./configure --prefix=/app/nginx --with-http_ssl_module --with-http_gzip_static_module --with-http_stub_status_module

Nginx 컴파일 및 설치

make && make install

Nginx 실행 파일 디렉토리로 이동

cd /app/nginx/sbin/

Nginx 시작

/app/nginx/sbin/nginx

Nginx 프로세스 확인

ps -ef | grep nginx
$ ps -ef | grep nginx
root     12446     1  0 17:33 ?        00:00:00 nginx: master process /app/nginx/sbin/nginx
nobody   12447 12446  0 17:33 ?        00:00:00 nginx: worker process
root     12465  8135  0 17:33 pts/0    00:00:00 grep --color=auto nginx

Nginx 설정 파일 수정

vim /app/nginx/conf/nginx.conf
$ vim /app/nginx/conf/nginx.conf
...
 18
 19         upstream tomcat{
 20                 server 127.0.0.1:8081;
 21                 server 127.0.0.1:8082;
 22                 keepalive 10;
 23         }
 24
...
 49
 50         location / {
 51         #    root   html;
 52         #    index  index.html index.htm;
 53                 proxy_pass              http://tomcat;
 54                 proxy_redirect          off;
 55                 proxy_set_header        Host $host;
 56                 proxy_set_header        X-Real-IP $remote_addr;
 57                 proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
 58                 proxy_set_header        X-Forwarded-Proto $scheme;
 59         }
 60

2. java 설치

JDK 압축 해제

tar xvfz jdk-8u111-linux-x64.tar.gz

심볼릭 링크 생성

ln -s jdk1.8.0_111 java

tomcat 사용자로 전환

su - tomcat
vim .bashrc
# JAVA_HOME configuration
export JAVA_HOME="/app/java"
export PATH="$PATH:$JAVA_HOME/bin"

환경 변수 설정 적용

source .bashrc

3. tomcat 설치

Tomcat 압축 해제

tar xvfz apache-tomcat-8.0.38.tar.gz

Tomcat 디렉토리 이름 변경

mv apache-tomcat-8.0.38 was01

Tomcat 인스턴스 복제

cp -rf was01 was02

디렉토리 소유권 변경

chown -R tomcat.tomcat was01 was02

Tomcat 사용자로 전환

su - tomcat

Tomcat 인스턴스 설정 파일 수정

vim /app/was01/conf/server.xml
$ vi /app/was01/conf/server.xml
 21  -->
 22 <Server port="8501" shutdown="SHUTDOWN">
 23   <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
...
 68     -->
 69     <Connector port="8081" protocol="HTTP/1.1"
 70                connectionTimeout="20000"
 71                redirectPort="8443" />
...
 90     <!-- Define an AJP 1.3 Connector on port 8009 -->
 91     <Connector port="8901" protocol="AJP/1.3" redirectPort="8443" />
 92
vim /app/was02/conf/server.xml
$ vi /app/was02/conf/server.xml
 21  -->
 22 <Server port="8502" shutdown="SHUTDOWN">
 23   <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
...
 68     -->
 69     <Connector port="8082" protocol="HTTP/1.1"
 70                connectionTimeout="20000"
 71                redirectPort="8443" />
...
 90     <!-- Define an AJP 1.3 Connector on port 8009 -->
 91     <Connector port="8902" protocol="AJP/1.3" redirectPort="8443" />
 92
vim .bashrc
# JAVA_HOME configuration
export JAVA_HOME="/app/java"
export PATH="$PATH:$JAVA_HOME/bin"

# WAS startup/shutdown/log aliases
alias was01_startup="/app/was01/bin/startup.sh"
alias was01_shutdown="/app/was01/bin/shutdown.sh -force"
alias was01_log="tail -f /app/was01/logs/catalina.out"

alias was02_startup="/app/was02/bin/startup.sh"
alias was02_shutdown="/app/was02/bin/shutdown.sh -force"
alias was02_log="tail -f /app/was02/logs/catalina.out"

alias all_startup="was01_startup && was02_startup"
alias all_shutdown="was01_shutdown && was02_shutdown"
alias all_log="was01_log && was02_log"

환경 변수 설정 적용

source .bashrc
all_startup
$ all_startup
Using CATALINA_BASE:   /app/was01
Using CATALINA_HOME:   /app/was01
Using CATALINA_TMPDIR: /app/was01/temp
Using JRE_HOME:        /app/java
Using CLASSPATH:       /app/was01/bin/bootstrap.jar:/app/was01/bin/tomcat-juli.jar
Using CATALINA_PID:    /app/was01/logs/.tomcat_pid
Tomcat started.
Using CATALINA_BASE:   /app/was02
Using CATALINA_HOME:   /app/was02
Using CATALINA_TMPDIR: /app/was02/temp
Using JRE_HOME:        /app/java
Using CLASSPATH:       /app/was02/bin/bootstrap.jar:/app/was02/bin/tomcat-juli.jar
Using CATALINA_PID:    /app/was02/logs/.tomcat_pid
Tomcat started.

JSP 테스트 파일 생성

vim /app/was01/webapps/ROOT/index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>TOMCAT Instance1 - TOMCAT TEST</title>
</head>
<body>
    <h1>TOMCAT TEST</h1>
    <pre>
운영체제: <%= System.getProperty("os.arch") %>
데이터모델: <%= System.getProperty("sun.arch.data.model") %>
클래스경로: <%= System.getProperty("java.class.path", ".") %>
라이브러리경로: <%= System.getProperty("java.library.path", ".") %>
파라메터: <%= request.getParameter("param") %> ('한글'이라고 표기되어야 함)

파일인코딩: <%= System.getProperty("file.encoding") %>
시스템캐릭터셋: <%= java.nio.charset.Charset.defaultCharset().name() %>
페이지캐릭터셋: <%= response.getCharacterEncoding() %>

서블릿 경로: <%= application.getRealPath("") %>
    </pre>
</body>
</html>

 

반응형