본문 바로가기
개발/Linux

[Nginx] Nginx 의 개념 및 nginx.conf 설정에 대해 알아보기

by yo.na 2024. 3. 27.

✔️ Nginx 간단 설명

reverse proxy

nginx 는 클라이언트와 어플리케이션 서버 사이에 위치해 있다.

nginx 는 api Server 에게 Load Balancing(부하 분산) 을 할 수 있다.

client 의 요청을 어떤 서버로 보낼지 reverse proxy가 결정 

쉽게 말해서 요청과 응답을 서버 앞에서 흘려보내주는 역할.

 

✔️ 흐름

(client --> Db 방향)

-> upstream 

client -> nginx -> api Server  - Database

<- downstream

(client <-- Db 방향) 

 


1. 서버 접속

ssh username@서버주소

 

2. nginx.conf 파일 찾기 및 설정

2-1. events 블록

# events 블록
events {
	# 하나의 프로세스가 처리할 수 있는 커넥션의 숫자
  worker_connections  4096;  ## Default: 1024 
}

 

 

2-2. http 블록

# http 블록
http {
  include    conf/mime.types;
  include    /etc/nginx/proxy.conf;
  include    /etc/nginx/fastcgi.conf;
  index    index.html index.htm index.php;

	# 옥텟 스트림 기반의 http를 사용한다는 지시어
  default_type application/octet-stream;

# upstream 블록
# nginx가 받은 요청을 어느 서버로 보내줄지 결정
  upstream big_server_com(원하는 이름) {
  	# big_server_com 이라는 이름으로 8000 포트를 연결해줌.
    server 127.0.0.3:8000 weight=5;
    server 127.0.0.3:8001 weight=5;
    server 192.168.0.1:8000;
    server 192.168.0.1:8001;
  }

# server 블록
  server { # simple load balancing
  
 	# http로 들어오는 url 을 https 로 이동시킨다.
    listen          80;
    server_name     big.server.com; # 도메인
    return      301 https://$server_name$request_uri;

    location / {
      proxy_pass      http://big_server_com;
    }
  }
}

 

2-3 http server 블록 ssl 설정

server {
	# hppts 의 기본 포트번호 443
    listen       443 ssl http2;
    server_name  도메인;

    	ssl_certificate      경로\파일명_crt.pem;
        ssl_certificate_key  경로\파일명_key.pem;

        ssl_session_timeout  5m;

        ssl_protocols  TLSv1.2;

        return 301 https://www.$server_name$request_uri;
}

 

 

참고
nginx.conf 설정 파일 full example https://www.nginx.com/resources/wiki/start/topics/examples/full/#nginx-conf