개발/Linux
[Nginx] Nginx 의 개념 및 nginx.conf 설정에 대해 알아보기
yo.na
2024. 3. 27. 17:35
✔️ 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