새소식

반응형
Nginx

[Nginx] Nginx 설정(server, location..)

  • -
반응형

이전에 학습했던 설정 이외에 server, location, evnets에 해당하는 설정 값들을 더 알아보도록 합시다.

( https://kkang-joo.tistory.com/31

server 블록

user  nginx;         
worker_processes  2; 
...

http { 
    include       mime.types;
    ...
    
    server {
        listen 80;
        server_name localhost;
        
        ssl_certificate      cert/example.chained.crt;
        ssl_certificate_key  private/example.key;
        ssl_session_timeout  5m;


        location / {
            ...
        }
    }
}

server 블록은 하나의 웹 사이트를 선언하는 데 사용됩니다.

 

listen

이 웹 사이트가 바라보는 포트를 의미합니다

 

server_name

클라이언트가 접속하는 서버( 도메인 ) 

웹서버에 요청이 들어오면 request header에 해당 값과 일치하는지 확인하고 server를 분기한다.

 

ssl 관련 설정

인증서와 private key와 timeout 등등을 설정해 줄 수 있습니다.

 

location 블록

user  nginx;         
worker_processes  2; 
...

http { 
    include       mime.types;
    upstream back-server {
        server 127.0.0.1:3000;
        keepalive 32;
    }
    ...
    
    server {
        ...

        location / {
            proxy_pass         http://back-server;
            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;
        }
    }
}

proxy_pass

ngx_http_proxy_module에 정의되어 있습니다.

nginx가 proxy로서 동작할 때, request를 중계받는 서버의 protocol과 address 그리고 location에 매핑될 URI를 설정합니다.

(protocol : http or https)

(address : domain name or ip:port)

위의 예시에서는 upstream에서 정의한 서버로 매핑하였습니다.

 

proxy_set_header

nginx가 proxy로 중계할 때,

중계받는 서버에 request header를 다시 재정의해서 전달할 때 사용합니다.

(X-Forwarded-For는 proxy 환경에서, HTTP Server에 요청한 clinet의 IP를 식별하기 위한 헤더

X-Real-IP를 사용하기도 합니다.)

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.