Nginx 설치 가이드: 초보자를 위한 단계별 안내
고성능 웹 서버의 세계에 오신 것을 환영합니다! Nginx(엔진엑스라고 발음)는 정적 콘텐츠 제공, 리버스 프록시, 로드 밸런싱 및 HTTP 캐싱을 위한 사실상의 표준이 되었습니다. 초보자에게 있어, 초기 설치를 올바르게 하는 것이 Nginx의 속도와 효율성을 활용하기 위한 가장 중요한 첫걸음입니다.
본 가이드는 가장 일반적인 Linux 배포판(Debian/Ubuntu 및 CentOS/RHEL)에 Nginx를 설치하기 위한 명확하고 실행 가능한 단계별 지침을 제공합니다. 또한 웹 서버가 올바르게 실행되고 트래픽을 처리할 준비가 되었는지 확인하기 위한 필수적인 설치 후 검증 단계도 다룰 것입니다.
전제 조건
설치 프로세스를 시작하기 전에 다음 사항을 확인하십시오.
- 지원되는 Linux 배포판(Ubuntu/Debian 또는 CentOS/RHEL)이 설치된 서버 또는 가상 머신.
- 관리 작업을 위해
sudo권한이 구성된 비루트 사용자. - Linux 명령줄 인터페이스(CLI)에 대한 기본적인 숙지.
Debian/Ubuntu 시스템에 설치하기
Debian 기반 시스템에서는 Nginx가 기본 패키지 저장소에서 쉽게 사용할 수 있습니다. 최신 사용 가능한 버전을 가져오려면 먼저 패키지 목록을 업데이트하는 것이 좋습니다.
1단계: 패키지 목록 업데이트
로컬 패키지 인덱스를 업데이트하려면 다음 명령을 실행하십시오.
sudo apt update
2단계: Nginx 설치
apt install 명령을 사용하여 Nginx 및 해당 종속성을 다운로드하고 설치합니다.
sudo apt install nginx
3단계: 설치 상태 확인
설치가 완료되면 서비스는 일반적으로 자동으로 시작됩니다. systemctl을 사용하여 상태를 확인할 수 있습니다.
sudo systemctl status nginx
서비스가 active (running)임을 나타내는 출력이 표시되어야 합니다.
CentOS/RHEL 시스템에 설치하기
Red Hat Enterprise Linux(RHEL) 파생 제품(CentOS 또는 Fedora 등)에서는 일반적으로 yum 또는 dnf 패키지 관리자를 사용하여 Nginx를 설치합니다. Nginx가 기본 베이스 저장소에 없을 수 있으므로, 최신 안정 버전의 경우 공식 EPEL(Extra Packages for Enterprise Linux) 저장소에서 설치하는 것이 종종 권장됩니다.
1단계: EPEL 저장소 설치
먼저, 표준 저장소에는 포함되어 있지 않지만 일반적으로 사용되는 고품질 패키지를 많이 포함하고 있는 EPEL 저장소를 설치합니다.
CentOS/RHEL 7의 경우:
sudo yum install epel-release
CentOS/RHEL 8/9의 경우 (DNF 사용):
sudo dnf install epel-release
2단계: Nginx 설치
이제 yum 또는 dnf를 사용하여 Nginx를 설치합니다.
# yum 사용 (이전 시스템)
sudo yum install nginx
# 또는 dnf 사용 (최신 시스템)
sudo dnf install nginx
3단계: Nginx 서비스 시작 및 활성화
Debian/Ubuntu와 달리 RHEL 기반 시스템에서는 설치 후 Nginx가 자동으로 시작되지 않을 수 있습니다. 수동으로 시작하고 부팅 시 실행되도록 활성화해야 합니다.
# 즉시 서비스 시작
sudo systemctl start nginx
# 재부팅 시 시작되도록 설정
sudo systemctl enable nginx
# 상태 확인
sudo systemctl status nginx
방화벽 구성: HTTP/HTTPS 트래픽 허용
설치 후 중요한 단계는 방화벽이 웹 서버에 도달하는 외부 연결을 허용하는지 확인하는 것입니다. 이 단계를 건너뛰면 외부 사용자는 사이트를 볼 수 없습니다.
UFW 사용 (Uncomplicated Firewall - Ubuntu/Debian에서 일반적)
Nginx는 설치 중에 UFW에 특정 프로필을 등록합니다. 포트 80(HTTP)과 선택적으로 포트 443(HTTPS)을 여는 것이 좋습니다.
# 사용 가능한 애플리케이션 프로필 나열
sudo ufw app list
# 표준 웹 트래픽(HTTP/HTTPS) 허용
sudo ufw allow 'Nginx Full'
# 변경 사항을 적용하기 위해 방화벽 다시 로드
sudo ufw reload
Firewalld 사용 (CentOS/RHEL에서 일반적)
Firewalld는 구역(zone)을 사용하여 규칙을 관리합니다. 일반적으로 public 구역에 서비스를 추가합니다.
# HTTP 트래픽 허용 (포트 80)
sudo firewall-cmd --permanent --add-service=http
# HTTPS 트래픽 허용 (포트 443)
sudo firewall-cmd --permanent --add-service=https
# 방화벽 규칙 다시 로드
sudo firewall-cmd --reload
검증: Nginx 작동 확인
설치가 완료되고 방화벽이 구성되었으므로 Nginx가 콘텐츠를 올바르게 제공하고 있는지 확인할 수 있습니다.
방법 1: 웹 브라우저 확인
선호하는 웹 브라우저를 열고 서버의 IP 주소 또는 도메인 이름으로 이동합니다.
http://YOUR_SERVER_IP_ADDRESS
성공하면 일반적으로 "Welcome to nginx!"라고 표시되는 기본 Nginx 환영 페이지가 표시되어야 합니다.
방법 2: 명령줄 확인
curl 명령을 사용하여 서버의 로컬호스트에서 기본 인덱스 페이지 콘텐츠를 직접 검색합니다.
curl http://localhost
이 명령은 환영 페이지의 HTML 소스 코드를 반환해야 합니다.
필수 Nginx 관리 명령어
설치 후 Nginx 프로세스를 관리하기 위해 systemctl을 자주 사용하게 됩니다. 가장 일반적인 명령어는 다음과 같습니다.
| 작업 | 명령어 |
|---|---|
| 서버 시작 | sudo systemctl start nginx |
| 서버 중지 | sudo systemctl stop nginx |
| 재시작 (중지 후 시작) | sudo systemctl restart nginx |
| 다시 로드 (다운타임 없이 구성 변경 적용) | sudo systemctl reload nginx |
| 상태 확인 | sudo systemctl status nginx |
| 부팅 시 자동 시작 비활성화 | sudo systemctl disable nginx |
모범 사례 팁: 구성 파일(예:
/etc/nginx/nginx.conf)을 변경할 때는 항상 다시 로드하기 전에 구문을 테스트하십시오. 오류가 있는지 테스트하려면sudo nginx -t를 사용하십시오. 테스트에 통과하면sudo systemctl reload nginx를 사용하여 변경 사항을 원활하게 적용하십시오.
다음 단계: 초기 구성
축하합니다. Nginx가 설치 및 실행 중입니다! 기본 구성은 /var/www/html/index.nginx-debian.html(Debian/Ubuntu의 경우) 또는 /usr/share/nginx/html/index.html(CentOS/RHEL의 경우)에서 콘텐츠를 제공합니다.
다음 단계는 실제 웹 사이트 파일의 위치와 Nginx가 도메인 요청을 처리하는 방법을 정의하기 위해 서버 블록(가상 호스트라고도 함)을 만드는 것입니다.
이러한 블록에 대한 구성 파일은 일반적으로 /etc/nginx/sites-available/에 저장되며 /etc/nginx/sites-enabled/에 심볼릭 링크됩니다.
이 초기 설치는 고성능 호스팅 환경, 로드 밸런싱 솔루션 및 보안 프록시 설정을 구축할 수 있는 기반을 제공합니다.