본문 바로가기
NGINX

Nginx 이해하기

by SAMSUNG CLOUD-OKY 2021. 4. 23.
반응형

icarus8050.tistory.com/57

 

[Nginx] Nginx 이해하기

Nginx?  Nginx는 간단하게 말씀드리자면 경량 웹 서버입니다. 클라이언트로부터 요청을 받았을 때 요청에 맞는 정적 파일을 응답해주는 HTTP Web Server로 활용되기도 하고, Reverse Proxy Server로 활용하여

icarus8050.tistory.com

 

 

 

 

 

 

 

http 블록

 http 블록은 HTTP 부분과 관련된 모듈의 지시어와 블록을 정의하며, server와 location의 루트 블록이라고 할 수 있습니다. http, server, location 블록은 계층 구조를 가지고 있습니다. 많은 지시어가 각 블록에서 동시에 사용될 수 있는데, http 블록의 내용은 server 블록의 기본값이 되고, server 블록의 내용은 location 블록의 기본값이 됩니다. 만약 상위 블록에서 선언된 지시어를 하위 블록에서 다시 선언하면 상위의 지시어는 무시됩니다. http 블록 안에 한 개 이상의 server 블록을 선언할 수 있습니다.

server 블록

 server 블록은 하나의 호스트를 선언하는데 사용하며, http 블록 안에서만 사용할 수 있습니다. server 블록에는 한 개 이상의 location 블록을 선언할 수 있습니다.

location 블록

 location 블록에는 server 블록 안에 정의되며, 특정 URL을 처리하는 방법을 정의합니다. 예를 들면 http://example.com/hello/1http://example.com/world/1 접근하는 요청을 다르게 처리하고 싶을 때 사용합니다.

events 블록

 events 블록은 네트워크의 작동 환경을 설정하는 지시어를 제공합니다. 이벤트 블록의 지시어는 이벤트 블록에서만 사용할 수 있고, http, server, local 블록과는 상속 관계를 갖지 않습니다. 아래의 지시어들은 반드시 events 블록 안에서만 사용해야 합니다.

 

1. accept_mutex

accept_mutex on;

 LISTEN 소켓을 오픈하기 위한 accept 뮤텍스의 사용/해제를 설정합니다.

 

2. accept_mutex_delay

accept_mutex_delay 500ms;

 자원 획득을 다시 시도하기 전에 작업자 프로세스가 기다려야 하는 시간을 정의합니다. accept_mutex 지시어가 off 로 설정되어 있으면 이 값은 사용되지 않습니다.

 

3. worker_connections

worker_connections 1024;

 Worker Process 가 동시에 처리할 수 있는 접속자 수를 정의합니다. worker_processes * worker_connections = 최대 접속자 수

 

Reverse Proxy

 Nginx는 리버스 프록시로도 활용할 수 있습니다. 리버스 프록시란 외부 클라이언트에서 서버로 접근 시, 중간에서 중개자 역할을 하여 내부 서버로 접근할 수 있도록 도와주는 서버입니다. 리버스 프록시를 활용했을 때 얻을 수 있는 장점은 아래와 같습니다.

  • 보안 : 외부 사용자로부터 내부망에 있는 서버의 존재를 숨길 수 있습니다. 모든 요청은 리버스 프록시 서버에서 받으며, 매핑되는 내부 서버로 요청을 전달합니다. 또한 Nginx는 SSL 설정도 가능합니다.
  • 로드밸런싱 : 리버스 프록시 서버가 내부 서버에 대한 정보를 알고 있으므로, 각 서버의 상태에 따라 부하를 분산시키며 요청을 전달할 수 있습니다.

Reverse Proxy 설정하기

http {
    server {
        listen 80;
        location / {
            proxy_pass http://127.0.0.1:8081;
        }
    }
}

 만약 listen 지시어를 선언하지 않으면 default 값인 80 port 로 설정됩니다.

 

 

 

 

 

 

## Nginx 구조

http {

        upstream tomcat {

         }

 

         server {

                   location / {

                   }

         }         

}

 

 

 

 

반응형

댓글