1. 미들웨어이야기/04. Nginx

Nginx JBoss 연동(Reverse Proxy 사용)

알 수 없는 사용자 2014. 5. 7. 17:12

Nginx는 이벤트 구동 구조와 C코드베이스 특성 때문에 다른 웹서버 솔루션에 비해 CPU, Memory등의 시스템 자원을 훨씬 적게 사용합니다. 이러한 특성을 살려 Nginx는 기본적인 형태로 reverse proxy용도로 가장 많이 사용을 하고 있습니다.

 

다음과 같은 간단한 설정만으로 Nginx를 Reverse Proxy 서버로 사용을 하여 유입되는 요청에의한 부하를 여러개의 백엔드 서버에 분산시키거나 동적파일 및 정적파일의 캐시를 제공함으로써 사용자에게 쾌적한 웹 환경을 제공을 할 수 있습니다.

 

예) 확장자 .jsp, context가 /hello 에대해, was에서 처리 하도록 다음과 같이 설정.

설정파일 : /nginx/nginx/conf/nginx.conf

server {
    listen 80
    server_name  localhost;

    location ~ \.jsp$ {
        include proxy.conf       

        proxy_pass http://127.0.0.1:8080/hello;
        index index.jsp;
    }

    location /hello {

        include proxy.conf
        proxy_pass http://127.0.0.1:8080/hello;

        index index.jsp;
    }

}

 

proxy.conf를 정의한 다음, include하여 사용을 합니다.

설정파일 : /nginx/nginx/conf/proxy.conf

proxy_redirect   off;
proxy_set_header  Host   $host;
proxy_set_header  X-Real-IP  $remote_addr;
proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size  10m;
client_body_buffer_size  128k;
proxy_connect_timeout  90;
proxy_send_timeout  90;
proxy_read_timeout  90;
proxy_buffers   32 4k;

 

※ proxy_read_timeout : 프록시되는 서버 응답에 대한 읽기 타임아웃 설정으로 엔진엑스가 보낸 요청에 대한 응답을 얼마나 오랫동안 기다릴 것인가에 대한 설정


호출한 결과 다음과 같이 백엔드의 was에서 처리하는것을 확인할 수 있습니다.

호출 URL : http://localhost/index.jsp 

 

 

자주쓰는 지시어 정리

 : proxy_pass 지시어

   설명 : 서버(backend)로 전달되게 위치 지정.

   syntax : proxy_pass URL;

   사용 예) proxy_pass http://hostname:port/uri/;    // TCP  소켓을 사용할때의 구문

               proxy_pass http://unix:/tmp/backend.socket:/uri/;   // 유닉스 도메인 소켓을 사용할 때의 구문

               proxy_pass https://hostname:port/uri/;   // http요청을 https로 변경할때의 구문

               #업스트림 블록 사용예

               upstream ktdsoss {

                   server ktdswas1:7001;

                   server ktdswas2:7001;

               }

               location ~* \.jsp$ {

                   proxy_pass http://ktdsoss;

               }

   context : locaion, if in location, limit_except

 

 : proxy_method 지시어

   설명 : 백엔드 서버에 전달되는 요청의 HTTP 메소드에 대한 재정의

   syntax : proxy_method method;

   사용 예) proxy_method POST;      // 백엔드 서버로 전달되을 요청을 POST메소드로 변경하는 설정.


by 김현수

 

'1. 미들웨어이야기 > 04. Nginx' 카테고리의 다른 글

Nginx 다중 백엔드 설정  (0) 2014.07.28
Nginx Reverse Proxy cache 설정  (0) 2014.05.13
Nginx 설치 / -configure 옵션  (0) 2014.05.07
Nginx 설치  (0) 2014.04.23
Nginx 소개  (0) 2014.04.23