리눅스 서버 구축

리눅스 네트워크 서버 - Nginx 웹 서버 설치 및 가상 호스트 설정

ahhyun98 2025. 5. 28. 14:20

 

이번 실습에서는 Nginx 웹 서버리눅스에 설치하고, 가상 호스트와 location 블록 설정까지 실습하였다. 

성능이 뛰어난 웹 서버로 유명한 Nginx는 실제 서비스 환경에서 Apache를 대체하거나 보완하는 용도로 널리 사용된다.

 


1. Nginx란?

  • 가볍고 빠른 웹 서버 및 리버스 프록시 서버
  • 비동기 이벤트 기반 아키텍처로 높은 동시 접속 처리 가능
  • 리버스 프록시, 로드 밸런싱, 정적 파일 서빙, HTTP/HTTPS 지원

프록시의 종류

종류 설명
포워드 프록시 클라이언트 => 프록시 => 인터넷
리버스 프록시 인터넷(사용자) => 프록시 => 내부 서버 (Nginx 주 사용 방식)

 


2. Nginx 설치 및 실행

apt update
apt install nginx

 

설치 후 서비스 확인 및 시작 :

systemctl is-active nginx     # 상태 확인
systemctl start nginx         # 서비스 시작

 

웹 브라우저에서 http:// 서버 IP 접속하면 Nginx 기본 페이지가 표시된다.


3. Nginx 설정 파일 구조

위치 설명
/etc/nginx/nginx.conf 전체 기본 설정 파일
/etc/nginx/sites-available/ 개별 사이트(server block) 설정 파일
/etc/nginx/sites-enabled/ 실제 적용되는 심볼릭 링크
/etc/nginx/conf.d/ 추가 설정 포함 가능
/etc/nginx/modules-enabled/ 활성화된 모듈 목록

4. Nginx server block 

server block Apache의 VirtualHost와 유사하며, 도메인 또는 포트에 따라 다른 웹 서비스를 제공할 수 있다.

 

server {
    listen 80;
    listen [::]:80;

    server_name ahhyun.com;

    root /var/www/html;
    index index.html index.htm index.nginx-debian.html;

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

 

주요 지시어

항목 설명
listen 리스닝할 포트 지정 (ex. 80)
server_name 도메인 또는 서버명 지정
root 웹 루트 디렉터리 경로
index 기본 인덱스 파일 지정
location /  루트 경로 요청 처리 방식 지정
try_files 실제 존재하는 파일/ 디렉터리 우선 처리, 없으면 404 반환

5. 자동 설정 스크립트 작성

 

#!/bin/bash

apt update
apt install -y nginx

# 기존 default 설정 백업
mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak

# 새로운 server block 생성
cat <<EOF > /etc/nginx/sites-available/default

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

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

    server_name ahhyun.com;

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

# 설정 테스트 및 적용
nginx -t

service nginx restart

 

실행 권한 부여 및 실행 :

chmod +x nginx.sh
./nginx.sh

6. Location 블록 기능

location 블록 내부에서는 다음과 같은 고급 설정이 가능하다. 

지시자 기능
alias 요청 경로를 다른 경로로 매핑
rewrite URL 재작성
proxy_pass 리버스 프록시 설정
return  리다이렉트 처리 등

 

예시:

location /blog {
    proxy_pass http://localhost:8080;
}

 


7. 마무리

이번 실습에서는 Nginx 웹 서버 설치, server block 구성, location 블록 설정, 그리고 자동화 스크립트 작성까지 실습하였다. 

실습을 해보면서 Apache에 비해 빠르고 가볍다는 것도 체감할 수 있었다. 

실제 프록시 서버나 정적 리소스 처리에 자주 사용되는 Nginx를 경험해 볼 수 있어서 의미 있었던 것 같다.

 

 

 

 

이 블로그는 불법 해킹 및 악의적인 활동을 지양하며, 그런 행위는 절대 권장하지 않습니다.

모든 실습은 허가된 환경에서만 진행해야 하며, 법적 책임은 사용자 본인에게 있습니다.