본문 바로가기

지식인/리눅스 :: Linux

[리눅스] Nginx 설치 가이드

개요

이 문서는 Debian 시스템에서 Nginx 웹 서버를 설치하고 설정하는 방법을 설명합니다.


사전 준비

시스템 업데이트

설치 전에 시스템 패키지를 최신 상태로 업데이트합니다.

sudo apt update
sudo apt upgrade -y

Nginx 설치

1. 패키지 설치

sudo apt install nginx -y

2. 설치 확인

# 버전 확인
nginx -v

# 서비스 상태 확인
sudo systemctl status nginx

서비스 관리

기본 서비스 명령어

# 서비스 시작
sudo systemctl start nginx

# 서비스 중지
sudo systemctl stop nginx

# 서비스 재시작
sudo systemctl restart nginx

# 서비스 다시 로드 (설정 변경 시)
sudo systemctl reload nginx

# 부팅 시 자동 시작 설정
sudo systemctl enable nginx

# 자동 시작 해제
sudo systemctl disable nginx

설정 파일 검증

# 설정 파일 문법 검사
sudo nginx -t

# 설정 파일 문법 검사 및 출력
sudo nginx -T

방화벽 설정

UFW를 사용하는 경우

# Nginx Full 프로필 허용 (HTTP + HTTPS)
sudo ufw allow 'Nginx Full'

# 또는 개별 포트 허용
sudo ufw allow 80      # HTTP
sudo ufw allow 443     # HTTPS

# 방화벽 상태 확인
sudo ufw status

주요 디렉터리 및 파일

설정 파일

  • 메인 설정: /etc/nginx/nginx.conf
  • 사이트 설정: /etc/nginx/sites-available/
  • 활성 사이트: /etc/nginx/sites-enabled/
  • 스니펫: /etc/nginx/snippets/

콘텐츠 디렉터리

  • 기본 웹 루트: /var/www/html/
  • 사용자 정의 사이트: /var/www/

로그 파일

  • 액세스 로그: /var/log/nginx/access.log
  • 에러 로그: /var/log/nginx/error.log

기본 설정

기본 사이트 설정

# 기본 사이트 설정 편집
sudo nano /etc/nginx/sites-available/default

새 사이트 추가 예시

# 새 사이트 설정 파일 생성
sudo nano /etc/nginx/sites-available/example.com

# 심볼릭 링크 생성 (사이트 활성화)
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

# 설정 테스트 후 재로드
sudo nginx -t
sudo systemctl reload nginx

동작 확인

웹 브라우저 테스트

  • 로컬: http://localhost
  • 원격: http://서버IP주소

명령줄 테스트

# curl을 이용한 테스트
curl http://localhost

# wget을 이용한 테스트
wget -O - http://localhost

일반적인 명령어

프로세스 관리

# Nginx 프로세스 확인
ps aux | grep nginx

# 포트 사용 확인
sudo netstat -tlnp | grep nginx
# 또는
sudo ss -tlnp | grep nginx

로그 모니터링

# 실시간 액세스 로그 확인
sudo tail -f /var/log/nginx/access.log

# 실시간 에러 로그 확인
sudo tail -f /var/log/nginx/error.log

문제 해결

일반적인 문제

  1. 설정 파일 문법 오류: sudo nginx -t로 확인
  2. 포트 충돌: sudo netstat -tlnp | grep :80으로 확인
  3. 권한 문제: 웹 루트 디렉터리 권한 확인

로그 확인

# 최근 에러 로그 확인
sudo tail -20 /var/log/nginx/error.log

# 시스템 로그에서 nginx 관련 확인
sudo journalctl -u nginx

보안 권장사항

기본 보안 설정

  • 불필요한 모듈 비활성화
  • 적절한 파일 권한 설정
  • 정기적인 업데이트 수행
  • SSL/TLS 인증서 설정 (HTTPS)

업데이트

# 패키지 업데이트 확인
sudo apt list --upgradable | grep nginx

# Nginx 업데이트
sudo apt update
sudo apt upgrade nginx

제거

완전 제거

# 서비스 중지
sudo systemctl stop nginx
sudo systemctl disable nginx

# 패키지 제거
sudo apt remove nginx nginx-common -y

# 설정 파일까지 완전 제거
sudo apt purge nginx nginx-common -y

# 종속 패키지 정리
sudo apt autoremove -y