[설치 환경]

- OS : Debian GNU/Linux 10 (buster)

- java : openjdk version "11.0.14"

- nginx 1.14.2

- Tomcat 10.0.17

 

[구성도]

 

우선 nginx에 대해 기본 사항들을 알아본다.

/etc/nginx/nginx.conf 파일은 어플리케이션의 기본 환경 설정 파일이다.

파일은 아래 내용으로 구성되어 있다.

 

Http 블록

http 블록은 웹 트래픽을 처리하는 디렉티프블을 담고 있으면서 Universal블록이라고도 하더라.

그리고 http 블록에서 사용되는 모든 디렉티브들은 nginx 문서에서 볼 수 있다.

/etc/nginx/nginx.conf 파일의 http 블럭에 보면 include 구문이 있는데 이 경로에 conf 파일을 생성하게 되면 환경파일로 인식한다. tomcat 과 연동하기 위해 이곳에 환경파일을 구성할 수 있다.

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;

 

Server 블록

하나의 웹 사이트를 선언하는데 사용되고, 가상 호스팅의 개념이고 하나의 서버로 두 개를 동시에 운영하고 싶을 때 사용한다.

location 블록

server 블록 안에서 나오면서 특정 url을 처리하는 방법을 정의한다.

예를 들어서 http://localhost:80/login 과 http://localhost:80/join으로 접근을 다르게 하고싶을 때 사용되는데 이는 로드밸런싱에서도 나오니 주의깊게 봐두자.

events 블록

주로 네트워크의 동작 방법과 관련된 설정값들을 갖는다.

 

 

nginx 환경파일들에 대한 설명이다.

 

nginx와 tomcat 연동 방법을 설명한다.

 

 

1방법) nginx 의 include 파일 설정

 

/etc/nginx/sites-enabled/default 설정 파일을 연다. default 파일에 아래 내용을 추가한다.

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
            try_files $uri $uri/ =404;
        	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 서비스를 재기동한다.

$ sudo systemctl restart nginx

 

2방법) nginx 의 conf.d 디렉토리의 파일 설정

/etc/nginx 디렉토리 밑에

nginx.conf 파일의 내용 중 include /etc/nginx/sites-enabled/*; 부분을 #으로 주석 처리한다.

 

아래처럼 conf.d 경로에 환경파일을 정의할 내용을 추가한다.

본 문서에서는 tomcat.conf 파일 이름으로 생성했다.

 

$ sudo vi /etc/nginx/conf.d/tomcat.conf

 

upstream tomcat {
        ip_hash;
        server 127.0.0.1:8080;
}

server {
        listen  80;
        server_name localhost;

        location / {
                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;

                proxy_pass http://tomcat;
                proxy_redirect off;
                charset utf-8;
        }
}

 

 

* 참고 *

nginx 역할 구성

+ Recent posts