Nginx 설정 가이드, 기본부터 최적화까지

2025. 2. 1. 02:53·운영체제 (OS)/리눅스 (Linux)

Nginx 설정 가이드, 기본부터 최적화까지

Nginx는 가볍고 빠른 성능을 제공하는 웹 서버로, 많은 사이트에서 활용되고 있습니다.
특히 정적 콘텐츠 제공, 리버스 프록시, 로드 밸런싱 등의 기능을 통해 서버 성능을 최적화할 수 있습니다.
이 글에서는 Nginx의 기본 설정부터 고급 최적화 방법까지 상세히 설명하겠습니다.

 

Nginx 개요와 주요 기능

Nginx는 비동기 이벤트 기반 아키텍처를 채택하여 높은 성능과 확장성을 제공하는 웹 서버입니다.
기존의 Apache 서버보다 적은 리소스로 더 많은 요청을 처리할 수 있으며, 대규모 트래픽을 감당할 수 있습니다.

Nginx의 주요 기능

  • 정적 파일 제공 속도가 빠르고 효율적입니다.
  • 리버스 프록시 및 로드 밸런서 역할을 수행할 수 있습니다.
  • 다중 연결을 효율적으로 처리하는 이벤트 기반 구조를 가집니다.
  • SSL/TLS 및 보안 설정이 용이합니다.
  • 캐싱을 활용하여 웹사이트 로딩 속도를 최적화할 수 있습니다.

Nginx 설치 및 기본 설정

운영체제별로 Nginx를 설치하는 방법을 살펴보겠습니다.

Ubuntu/Debian 설치

sudo apt update  
sudo apt install nginx -y  

설치 후 실행 및 부팅 시 자동 시작 설정:  
```bash
sudo systemctl start nginx  
sudo systemctl enable nginx  

CentOS/RHEL 설치

sudo yum install epel-release -y  
sudo yum install nginx -y  

설치 후 실행:

sudo systemctl start nginx  
sudo systemctl enable nginx  

설치가 완료되면 웹 브라우저에서 http://localhost로 접속하여 Nginx 기본 페이지를 확인할 수 있습니다.

주요 설정 파일과 구조

Nginx의 설정 파일은 /etc/nginx/nginx.conf이며, 주요 파일 구조는 다음과 같습니다.

디렉터리 구조

  • /etc/nginx/nginx.conf → 메인 설정 파일
  • /etc/nginx/sites-available/ → 가상 호스트 설정 파일
  • /etc/nginx/sites-enabled/ → 활성화된 사이트 설정 파일
  • /var/www/html/ → 기본 웹 페이지 디렉터리
  • /etc/nginx/conf.d/ → 추가 설정 파일 저장

기본 설정 예제

worker_processes auto;  
events {  
    worker_connections 1024;  
}  

http {  
    include /etc/nginx/mime.types;  
    server {  
        listen 80;  
        server_name example.com;  
        root /var/www/html;  
        index index.html index.htm;  
    }  
}

설정을 적용한 후, Nginx를 재시작해야 합니다.

sudo systemctl restart nginx  

정적 파일 캐싱 및 성능 최적화

Nginx는 정적 파일을 빠르게 제공하는 기능을 갖추고 있습니다.
아래 설정을 적용하면 정적 파일 요청 속도를 향상시킬 수 있습니다.

server {  
    location /static/ {  
        root /var/www/html;  
        expires 30d;  
        add_header Cache-Control "public, max-age=2592000";  
    }  
}

설정 설명

  • expires 30d → 정적 파일을 30일 동안 캐싱합니다.
  • Cache-Control → 브라우저 캐싱을 최적화하여 로딩 속도를 개선합니다.

캐싱을 적절히 활용하면 서버 부하를 줄이고 응답 속도를 향상할 수 있습니다.

리버스 프록시 설정과 활용법

Nginx는 리버스 프록시로도 활용할 수 있으며, 백엔드 서버(예: Node.js, Python, PHP)와 연동하여 요청을 처리할 수 있습니다.

server {  
    listen 80;  
    server_name mysite.com;  

    location / {  
        proxy_pass http://127.0.0.1:3000;  
        proxy_set_header Host $host;  
        proxy_set_header X-Real-IP $remote_addr;  
    }  
}

설정 설명

  • proxy_pass → 요청을 내부 서버(127.0.0.1:3000)로 전달합니다.
  • proxy_set_header → 클라이언트의 원본 IP를 유지합니다.

이 설정을 적용하면 Nginx가 백엔드 서버와 연동하여 웹 요청을 처리할 수 있습니다.

보안 강화 설정 및 실용 팁

웹 서버 보안 강화를 위해 다음과 같은 설정을 적용할 수 있습니다.

SSL/TLS 활성화

server {  
    listen 443 ssl;  
    server_name mysite.com;  
    ssl_certificate /etc/nginx/ssl/mysite.crt;  
    ssl_certificate_key /etc/nginx/ssl/mysite.key;  
}

서버 정보 숨기기

server_tokens off;  

IP 기반 접근 제한

location /admin {  
    allow 192.168.1.100;  
    deny all;  
}

이 설정을 적용하면 특정 IP에서만 /admin 경로에 접근할 수 있습니다.

성능 최적화를 위한 고급 기법

Nginx의 성능을 극대화하는 몇 가지 추가 설정을 살펴보겠습니다.

Gzip 압축 활성화

gzip on;  
gzip_types text/plain text/css application/json application/javascript;  

Keep-Alive 설정 최적화

keepalive_timeout 65;  
keepalive_requests 1000;  

Worker 프로세스 최적화

worker_processes auto;  
worker_connections 2048;  

이 설정을 적용하면 성능이 더욱 향상될 수 있습니다.



'운영체제 (OS) > 리눅스 (Linux)' 카테고리의 다른 글

Nginx 캐싱 설정 완벽 가이드: 웹사이트 속도 200% 향상시키는 법  (2) 2025.02.02
Nginx Reverse Proxy 설정 가이드  (1) 2025.02.01
리눅스 서버 구축, 따라 하면 완성되는 설정법  (1) 2025.01.31
우분투 22.04 LTS 설치 후 꼭 해야 할 기본 설정  (1) 2025.01.29
우분투에서 FTP 서버 설정하기: vsftpd 설치부터 Nginx 가상 호스팅까지  (0) 2025.01.29
'운영체제 (OS)/리눅스 (Linux)' 카테고리의 다른 글
  • Nginx 캐싱 설정 완벽 가이드: 웹사이트 속도 200% 향상시키는 법
  • Nginx Reverse Proxy 설정 가이드
  • 리눅스 서버 구축, 따라 하면 완성되는 설정법
  • 우분투 22.04 LTS 설치 후 꼭 해야 할 기본 설정
체리모찌
체리모찌
inknotes 님의 블로그 입니다.
  • 체리모찌
    모먼트로그
    체리모찌
    • 분류 전체보기 (32)
      • 일상 이야기 (6)
        • 영화 리뷰 (2)
        • 드라마 리뷰 (4)
      • 운영체제 (OS) (14)
        • 윈도우 (Windows) (1)
        • 리눅스 (Linux) (13)
      • 파이썬 (Python) (9)
      • 정보나눔 (3)
  • 최근 글

  • 최근 댓글

  • 인기 글

  • 태그

    눅스서버
    nginx캐싱
    프로그래밍
    파이썬 기초
    서버관리
    개발
    스터디그룹3화
    웹툰원작
    웹사이트속도개선
    김호민
    스터디그룹리뷰
    nginx
    청춘드라마
    코딩
    중증외상센터리뷰
    파이썬
    스터디드라마
    스터디그룹
    스터디그룹4화
    황민현
    서버최적화
    python
    우분투
    웹서버
  • 전체
    오늘
    어제
  • hELLO· Designed By정상우.v4.10.3
체리모찌
Nginx 설정 가이드, 기본부터 최적화까지
상단으로

티스토리툴바