개발자의 노트
반응형

먼저 tomcat (http://tomcat.apache.org/) 을 설치하자.


톰캣 7버전을 다운로드 후 압축 해제

# cd /usr/local/src
# wget http://apache.tt.co.kr/tomcat/tomcat-7/v7.0.27/bin/apache-tomcat-7.0.27.tar.gz
# tar zxvf apache-tomcat-7.0.27.tar.gz
# cp -Rf apache-tomcat-7.0.27 /usr/local/tomcat
# cd /usr/local/tomcat/
# ll
total 116
drwxr-xr-x 2 root root 4096 Jun 19 07:44 bin
drwxr-xr-x 2 root root 4096 Jun 19 07:44 conf
drwxr-xr-x 2 root root 4096 Jun 19 07:44 lib
-rw-r–r– 1 root root 56797 Jun 19 07:44 LICENSE
drwxr-xr-x 2 root root 4096 Jun 19 07:44 logs
-rw-r–r– 1 root root 1192 Jun 19 07:44 NOTICE
-rw-r–r– 1 root root 8826 Jun 19 07:44 RELEASE-NOTES
-rw-r–r– 1 root root 10597 Jun 19 07:44 RUNNING.txt
drwxr-xr-x 2 root root 4096 Jun 19 07:44 temp
drwxr-xr-x 7 root root 4096 Jun 19 07:44 webapps
drwxr-xr-x 2 root root 4096 Jun 19 07:44 work


GET 통해 한글 데이터를 받을때 서버에서 URL을 UTF-8로 인코딩하도록 설정


# vi conf/server.xml

<Connector port="8080" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443"

               maxThreads="150"

               minSpareThreads="25"

               maxSpareThreads="75"

               enableLookups="false"

               acceptCount="100"

               disableUploadTimeout="true"

               URIEncoding="UTF-8" />

# 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

# source /etc/profile


톰캣 실행

# bin/startup.sh

종료는

# bin/shutdown.sh

확인은

http://XXX.XXX.XXX.XXX:8080


 



다음으로 nginx (http://nginx.org/) 를 설치해보자.


현재 안정버전은 1.2.1, 개발버전은 1.3.1

# wget http://nginx.org/download/nginx-1.2.1.tar.gz
# tar zxvf nginx-1.2.1.tar.gz
# cp -Rf nginx-1.2.1 /usr/local/nginx
# cd /usr/local/nginx/
# ll
total 560
drwxr-xr-x 6 root root 4096 Jun 19 08:22 auto
-rw-r–r– 1 root root 207988 Jun 19 08:22 CHANGES
-rw-r–r– 1 root root 317085 Jun 19 08:22 CHANGES.ru
drwxr-xr-x 2 root root 4096 Jun 19 08:22 conf
-rwxr-xr-x 1 root root 2345 Jun 19 08:22 configure
drwxr-xr-x 3 root root 4096 Jun 19 08:22 contrib
drwxr-xr-x 2 root root 4096 Jun 19 08:22 html
-rw-r–r– 1 root root 1365 Jun 19 08:22 LICENSE
drwxr-xr-x 2 root root 4096 Jun 19 08:22 man
-rw-r–r– 1 root root 49 Jun 19 08:22 README
drwxr-xr-x 8 root root 4096 Jun 19 08:22 src


컴파일 옵션을 참조 (http://nginx.org/en/docs/install.html)
–with 옵션에 ssl, pcre, zlib 가 등장하므로. 이것들을 미리 설치해주자.

# yum install openssl openssl-devel
# yum install pcre pcre-devel
# yum install zlib zlib-devel


아래 *-path= 옵션들의 경로는 입력하지 않을 경우 nginx의 기본값이기도 하다.

# ./configure –-prefix=/usr/local/nginx \
> –-sbin-path=/usr/local/nginx/sbin/nginx \
> –-conf-path=/usr/local/nginx/conf/nginx.conf \
> -–pid-path=/usr/local/nginx/logs/nginx.pid \
> -–error-log-path=/usr/local/nginx/logs/error.log \
> -–http-log-path=/usr/local/nginx/logs/access.log \
> -–with-http_ssl_module
# make && make install


nginx 구동은

 # sbin/nginx


별다른 메시지가 없다면 정상 구동이 된것이다.

브라우저에서 http://XXX.XXX.XXX.XXX 를 하면 썰렁한 “Welcome to nginx!” 가 보인다.



종료는 # sbin/nginx -s stop 혹은 # sbin/nginx -s quit
설정파일 등의 수정 후 재적용은 # sbin/nginx -s reload
로그파일을 다시 열려면 # sbin/nginx -s reopen



이제, tomcat과 nginx를 연동해보도록 하자.


정적 자원(html, js, css, image 등)은 기본적으로 nginx 를 이용하고,
동적 처리되는 부분에서는 tomcat를 사용하도록 하는 proxy 설정 방식이다.


# vi conf/nginx.conf

.
.
http {
.
.
.
    upstream backend {
        server  localhost:8080 
    }
.
.
.
    server {
        listen       80;
        server_name  localhost;
.
.
.
        location / {
            root   html;
            index  index.html index.htm;
        }
.
.
.
        location /servlet {
            proxy_pass      http://backend/servlet;
            index           index.jsp;
        }

        location /manager {
            proxy_pass      http://backend/manager;
            index           index.jsp;
        }
    }
.
.
. 

}


저장하고 설정정보를 다시 적용..


# sbin/nginx -s reload


이 경우, http://localhost/servlet/ 으로 들어오는 요청을 http://localhost:8080/servlet/ 으로 가도록 한다.

자세한 설정은 http://nginx.org/en/docs/ 와 http://wiki.nginx.org/Configuration 를 참고할 수 있다.


profile

개발자의 노트

@곽코딩

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!