
Nginx(엔진엑스)는 공식문서에서
"고성능, 확장성, 고가용성 웹서버, 역방향 프록시 서버 및 웹 가속기(HTTP 로드밸런서, 콘텐츠 캐시 등의 기능결합)이다." 라고 소개하고 있다.
즉, 트래픽이 많은 웹사이트의 서버(WAS)를 도와주는 비동기 이벤트 기반구조의 웹서버 프로그램이다.
Nginx의 특징
즉, Nginx는 단순한 웹 서버가 아니라 전체 아키텍처를 구성할 수 있는 핵심도구다.
sudo apt update
sudo apt install nginx -y
sudo systemctl status nginx
터미널에서 자신의 ip 주소 확인
ip a
브라우저에서 자신의 ip 주소로 http 접속하면

이런 식으로 웹 페이지를 확인할 수 있다.
conf.d/: 추가 설정 파일을 포함하는 디렉토리이다.
sites-available/ 또는 sites-enabled/: 가상 호스팅(Virtual Hosting) 설정 파일을 포함하는 디렉토리이다.
html/ 또는 www/: 웹 페이지 파일이 위치하는 디렉토리이다.
logs/: Nginx의 로그 파일이 위치하는 디렉토리이다.
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는 자주 사용된다.