[리눅스 한 학기 살기] #8 Nginx 설치

curric·2025년 6월 1일
post-thumbnail

Nginx란 무엇인가?


Nginx(엔진엑스)는 공식문서에서
"고성능, 확장성, 고가용성 웹서버, 역방향 프록시 서버 및 웹 가속기(HTTP 로드밸런서, 콘텐츠 캐시 등의 기능결합)이다." 라고 소개하고 있다.
즉, 트래픽이 많은 웹사이트의 서버(WAS)를 도와주는 비동기 이벤트 기반구조의 웹서버 프로그램이다.

Nginx의 특징

  • 가볍고 빠르다 : 비동기 이벤트 기반 구조로 고성능 처리 가능
  • 정적 파일 제공에 최적화 : HTML, 이미지, JS, CSS 파일을 매우 빠르게 제공
  • 리버시 프록시로 활용 가능 : 백엔드(Node.js, FastAPI 등) 서버 앞단에 두고 요청을 중계
  • 로드 밸런싱 지원 : 여러 서버로 트래픽을 분산할 수 있음

즉, Nginx는 단순한 웹 서버가 아니라 전체 아키텍처를 구성할 수 있는 핵심도구다.

Nginx 설치 (Ubuntu 24.04 기준)


sudo apt update
sudo apt install nginx -y
  • nginx를 설치한다. 설치후 바로 서비스가 실행되고, 설치가 완료되면 웹 서버가 자동으로 시작됨

Nginx 서비스 상태 확인

sudo systemctl status nginx
  • active (running) 상태이면 실행 중

웹 브라우저에서 테스트

터미널에서 자신의 ip 주소 확인

ip a

브라우저에서 자신의 ip 주소로 http 접속하면

이런 식으로 웹 페이지를 확인할 수 있다.

Nginx 기본 디렉토리 구조

conf.d/: 추가 설정 파일을 포함하는 디렉토리이다.
sites-available/ 또는 sites-enabled/: 가상 호스팅(Virtual Hosting) 설정 파일을 포함하는 디렉토리이다.
html/ 또는 www/: 웹 페이지 파일이 위치하는 디렉토리이다.
logs/: Nginx의 로그 파일이 위치하는 디렉토리이다.

간단한 HTML 페이지 서비스해보기


cd /var/www/html
sudo nano index.html
<h1>리눅스 한 학기 살기</h1>

저장한 후 브라우저에서 다시 접속하면, 위 html이 출력된다.
기본적으로 Nginx는 /var/www/html/index.html을 루트로 잡고 해당 정적 파일을 제공한다.

포트변경 및 설정 커스터마이징


sudo nano /etc/nginx/sites-available/default

예를 들어 포트를 8080으로 바구고 싶다면 다음 부분 수정

server {
    listen 8080 default_server;
    listen [::]:8080 default_server;

    root /var/www/html;
    index index.html;

    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }
}

수정후 저장하고 Nginx 재시작

sudo systemctl restart nginx

그리고 브라우저에서 http://ip주소:8080으로 접속하면 새로운 포트로 서비스된다.

마무리


Nginx는 단순한 정적 파일 제공 서버가 아니라,
다양한 백엔드 서버 앞단에서 요청을 중계하고 관리할 수 있는 중심도구다.
Node.js나 FastAPI 서버를 만들었다면,
Nginx를 앞단에 배치해 정적 파일 서비스, SSL 인증서 관리, 로드 밸런싱 등을 맡기는 구조로 확장할 수 있다.

앞으로 Docker Compose나 CI/CD와 연결할 때도 Nginx는 자주 사용된다.

profile
학생입니다

0개의 댓글