Nginx 설치 가이드: 초보자를 위한 단계별 안내
고속 웹 서버의 초기 설정을 마스터하세요! 이 포괄적인 가이드는 초보자가 Debian/Ubuntu 및 CentOS/RHEL 시스템 모두에 Nginx를 정확하게 단계별로 설치하는 과정을 안내합니다. 서비스 시작, 중지 및 확인을 위한 필수 명령어와 즉각적인 접근성을 보장하기 위한 중요한 방화벽 구성을 배웁니다. Nginx 웹 서버를 몇 분 안에 가동하십시오.
Nginx 설치 가이드: 초보자를 위한 단계별 안내
Nginx를 웹 서버, 리버스 프록시, 로드 밸런서 또는 캐시로 사용하려면 먼저 Nginx를 설치하고 실행하며 접근 가능한 상태로 만들어야 합니다. 이 Nginx 설치 가이드는 Debian/Ubuntu 및 RHEL 스타일 Linux 시스템에서 기본 패키지 관리자 설정을 안내한 다음, 서비스를 확인하고 방화벽을 여는 방법을 보여줍니다.
아래 명령어는 systemd 기반 서버와 sudo 액세스 권한이 있는 사용자를 가정합니다.
사전 요구 사항
시작하기 전에 다음 사항을 확인하세요:
- Ubuntu, Debian, RHEL, CentOS Stream, Rocky Linux, AlmaLinux 또는 유사한 배포판을 실행하는 서버 또는 가상 머신
sudo권한이 있는 루트가 아닌 사용자- SSH 또는 로컬 터미널을 통한 셸 액세스
Debian/Ubuntu 시스템에 설치
Debian 기반 시스템에서 Nginx는 기본 리포지토리에서 사용할 수 있습니다. 먼저 패키지 인덱스를 업데이트하여 apt가 최신 패키지 메타데이터를 볼 수 있도록 합니다.
1단계: 패키지 목록 업데이트
다음 명령어를 실행하여 로컬 패키지 인덱스를 업데이트합니다:
sudo apt update
2단계: Nginx 설치
apt install 명령어를 사용하여 Nginx와 해당 종속성을 다운로드하고 설치합니다:
sudo apt install nginx
3단계: 설치 상태 확인
설치가 완료되면 일반적으로 서비스가 자동으로 시작됩니다. systemctl을 사용하여 상태를 확인할 수 있습니다:
sudo systemctl status nginx
서비스가 active (running) 상태임을 나타내는 출력이 표시되어야 합니다.
CentOS/RHEL 시스템에 설치
RHEL 스타일 시스템에서는 최신 릴리스에 dnf를 사용하고 이전 릴리스에는 yum을 사용합니다. 일부 배포판은 자체 리포지토리에 Nginx를 포함하고 있습니다. 다른 배포판은 EPEL 또는 공식 공급업체 리포지토리가 필요할 수 있습니다. dnf install nginx가 패키지를 찾을 수 없는 경우 EPEL을 활성화하거나 배포판의 Nginx 패키징 노트를 확인하세요.
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
# OR 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 허용
설치 후 방화벽이 웹 트래픽을 허용하는지 확인하세요. 서비스가 실행 중이지만 포트 80 또는 443이 차단된 경우 서버 외부에서 브라우저 확인이 실패합니다.
Ubuntu/Debian에서 UFW 사용
Ubuntu의 Nginx 패키지는 일반적으로 UFW 애플리케이션 프로필을 등록합니다. 곧 TLS를 추가할 계획이라면 HTTP와 HTTPS를 모두 여세요.
# 사용 가능한 애플리케이션 프로필 나열
sudo ufw app list
# 표준 웹 트래픽 허용 (HTTP/HTTPS)
sudo ufw allow 'Nginx Full'
# 변경 사항을 적용하기 위해 방화벽 다시 로드
sudo ufw reload
RHEL 스타일 시스템에서 Firewalld 사용
Firewalld는 영역을 사용하여 규칙을 관리합니다. 다음 명령어는 표준 http 및 https 서비스를 활성 기본 영역에 추가합니다.
# 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
성공하면 기본 Nginx 환영 페이지가 표시됩니다. 정확한 텍스트와 파일 경로는 배포판에 따라 다릅니다.
방법 2: 명령줄 확인
서버 자체에서 curl을 사용하여 로컬 리스너를 확인합니다:
curl http://localhost
이 명령어는 HTML을 반환해야 합니다. 로컬에서 실패하면 DNS 또는 클라우드 방화벽 규칙 문제를 해결하기 전에 systemctl status nginx 및 /var/log/nginx/error.log를 확인하세요.
필수 Nginx 관리 명령어
설치 후에는 일반적으로 systemctl로 Nginx를 관리합니다:
| 작업 | 명령어 |
|---|---|
| 시작 | sudo systemctl start nginx |
| 중지 | sudo systemctl stop nginx |
| 재시작 (중지 후 시작) | sudo systemctl restart nginx |
| 다시 로드 (중단 없이 구성 변경 적용) | sudo systemctl reload nginx |
| 상태 확인 | sudo systemctl status nginx |
| 부팅 시 자동 시작 비활성화 | sudo systemctl disable nginx |
다시 로드하기 전에 구성 구문을 테스트하세요:
sudo nginx -t
sudo systemctl reload nginx
이 습관은 트래픽을 중단하기 전에 누락된 세미콜론, 잘못된 include 경로 및 중복된 listen 충돌을 잡아냅니다.
다음 단계: 서버 블록 생성
기본 구성은 패키지에서 제공하는 환영 페이지를 제공합니다. Debian/Ubuntu에서 웹 파일은 일반적으로 /var/www/html 아래에 있습니다. RHEL 스타일 시스템에서 기본 루트는 종종 /usr/share/nginx/html입니다.
다음 단계는 도메인에 대한 서버 블록을 생성하는 것입니다. Debian/Ubuntu 레이아웃은 종종 /etc/nginx/sites-available/을 사용하고 /etc/nginx/sites-enabled/에 심볼릭 링크를 만듭니다. RHEL 스타일 레이아웃은 더 자주 /etc/nginx/conf.d/ 아래의 파일을 사용합니다.
그런 다음 TLS를 추가하고, 도메인의 DNS 레코드를 서버로 지정하고, 다시 로드하기 전에 sudo nginx -t를 실행하세요. 이 시점에서 Nginx 설치는 실제 사이트 구성을 위한 준비가 완료됩니다.