본문 바로가기
서버 운영/Linux

Nginx 설정 - Proxy 설정, SSL 설정, 로드밸런싱 설정

by Infralabs 2024. 8. 1.
반응형

Nginx 프록시 서버 설정

Nginx는 높은 성능과 확장성을 가진 강력한 웹 서버이자, 유연한 프록시 서버로 활용할 수 있습니다. 이 게시글에서는 기본적인 Nginx 프록시 설정 과정에 대해 설명합니다.

1. 설치 환경
- OS : Rocky Linux 8.8
- nginx 설치 버전 : 1.24.0

2. 경로
- 엔진 : /app/nginx
- 데이터 : /data/nginx
- 로그 : /log/nginx
 

0. Nginx 설치 

Nginx 설치 과정은 아래 게시글에 설명하였습니다.

2024.03.22 - [서버 운영/Linux] - Rocky Linux 8.X 에서 Nginx 컴파일 설치 (Nginx 1.24)

 

1. Nginx 설정 - 프록시 설정 (Proxy)

  • Nginx 설정 파일은 /etc/nginx/nginx.conf 파일 또는 /etc/nginx/sites-available/default 등을 활용할 수 있습니다. 
  • 예시로 /etc/nginx/nginx.conf 파일을 수정하도록 하겠습니다. 
server {
    listen 80; # Nginx가 80 Port에서 요청을 수신하도록 설정

    server_name example.com; # 도메인 이름 설정

    location / {
        proxy_pass http://backend_server; # 백엔드 서버로 요청 전달
        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_set_header X-Forwarded-Proto $scheme;
    }
}

 

2. Nginx 설정 - 여러 대의 백엔드 서버 연결하기 (LoadBalancing, LB)

  • 백엔드 서버를 도메인 또는 IP 주소로 지정할 수 있으며, 여러 개의 백엔드 서버를 연결하여 로드 밸런싱할 수 있습니다. 
upstream backend_servers { # 백엔드 서버의 IP와 Port 추가를 통해 로드밸런싱 구성
    server 127.0.0.1:8080;
    server 127.0.0.1:8081;
    server 127.0.0.2:8080;
}

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://backend_servers;
        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_set_header X-Forwarded-Proto $scheme;
    }
}

 

3. Nginx 설정 - SSL 설정

  • SSL을 사용하여 보안을 강화할 수 있습니다. 
server {
    listen 443 ssl; # SSL을 사용하여 443Port에서 요청을 수신
    server_name example.com;

    ssl_certificate /etc/nginx/ssl/example.com.crt; # SSL 인증서 파일 경로 지정
    ssl_certificate_key /etc/nginx/ssl/example.com.key; # 키 파일 경로 지정

    location / {
        proxy_pass http://backend_server;
        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_set_header X-Forwarded-Proto $scheme;
    }
}

 

반응형