이번 실습에서는 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를 경험해 볼 수 있어서 의미 있었던 것 같다.
이 블로그는 불법 해킹 및 악의적인 활동을 지양하며, 그런 행위는 절대 권장하지 않습니다.
모든 실습은 허가된 환경에서만 진행해야 하며, 법적 책임은 사용자 본인에게 있습니다.
'리눅스 서버 구축' 카테고리의 다른 글
리눅스 네트워크 서버 - VSFTPD 설치 및 보안 설정 실습 (0) | 2025.05.28 |
---|---|
리눅스 네트워크 서버 - MariaDB 설치 및 사용자 권한 설정 실습 (2) | 2025.05.28 |
리눅스 핵심 네트워크 서버 - Apache 설치 및 SSL 인증서 자동 설정 실습 (2) | 2025.05.27 |
리눅스 핵심 네트워크 서버 - BIND DNS 구축 실습 (0) | 2025.05.27 |
리눅스 Application 네트워크 서버 - Tomcat 설치 및 자동 실행 설정 (4) | 2025.05.27 |