Ubuntu 서버에 Nginx 설치 및 보안 설정 가이드 – 2025년 최신 기준
Nginx는 빠르고 가벼우며 안정성이 뛰어난 웹 서버 소프트웨어로, 전 세계에서 가장 많이 사용되는 웹서버 중 하나입니다. 이 글에서는 Ubuntu 서버에 Nginx를 설치하고, 보안 설정까지 마치는 전 과정을 상세히 안내합니다. AWS, GCP, Azure 등 어떤 클라우드 환경에서도 동일하게 적용할 수 있습니다.
1. 서버 사전 준비
Ubuntu 22.04 LTS 이상 버전의 서버 인스턴스가 준비되어 있어야 하며, SSH 접속이 가능한 상태여야 합니다.
ssh -i "my-key.pem" ubuntu@서버IP
2. Nginx 설치
APT 패키지 관리자를 사용하여 간단히 설치할 수 있습니다.
sudo apt update
sudo apt install nginx -y
설치 완료 후 웹 브라우저에서 서버의 퍼블릭 IP를 입력하면 기본 Nginx 환영 페이지가 표시됩니다.
3. Nginx 서비스 관리
sudo systemctl start nginx # Nginx 시작
sudo systemctl enable nginx # 부팅 시 자동 실행
sudo systemctl status nginx # 상태 확인
4. UFW 방화벽 설정 (Ubuntu 기본 보안 기능)
UFW 방화벽을 활성화하여 필수 포트만 개방합니다.
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable
sudo ufw status
이 설정은 포트 22(SSH), 80(HTTP), 443(HTTPS)를 허용합니다.
5. Nginx 설정 파일 위치 및 구조
/etc/nginx/nginx.conf
– 전체 설정 파일/etc/nginx/sites-available/
– 개별 사이트 설정/etc/nginx/sites-enabled/
– 실제 적용되는 설정
기본 설정 파일 편집 시:
sudo nano /etc/nginx/sites-available/default
6. HTTPS 보안 인증서 적용 (Let’s Encrypt)
Let's Encrypt를 통해 무료 SSL 인증서를 설정할 수 있습니다.
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example.com -d www.example.com
도메인 연결이 되어 있어야 하며, DNS 설정 완료 후 위 명령어를 실행합니다.
인증서 자동 갱신 설정:
sudo systemctl status certbot.timer
자동 갱신이 설정된 상태인지 확인 가능합니다.
7. 보안 강화를 위한 추가 설정
- 디렉터리 접근 제한: autoindex off
- 버전 숨기기:
server_tokens off;
- DDoS 완화: 요청 제한 설정
- 파일 업로드 제한: client_max_body_size 설정
예시:
server {
...
server_tokens off;
client_max_body_size 10M;
...
}
8. 설정 적용 및 테스트
sudo nginx -t # 설정 문법 검사
sudo systemctl reload nginx # 변경사항 적용
맺음말
Nginx는 설치와 설정이 비교적 간단하지만, 보안은 별도로 반드시 강화해야 합니다. 특히 UFW 방화벽 설정과 HTTPS 적용은 최소한의 필수 조치입니다. 위 과정을 차근히 따라 하시면 안전하고 효율적인 리눅스 웹 서버 환경을 구축할 수 있습니다.
이제 여러분의 서버는 외부 공격에 대비된, 안전한 웹 서비스 운영 환경이 되었습니다.
2025.05.02 - [분류 전체보기] - Ubuntu vs CentOS – 서버 운영체제의 차이점
Ubuntu vs CentOS – 서버 운영체제의 차이점
Ubuntu vs CentOS – 서버 운영체제의 차이점과 선택 기준 (2025년 최신)리눅스 서버를 구축할 때 가장 많이 고민하게 되는 것이 어떤 배포판을 사용할 것인가입니다. 대표적으로 사용되는 두 가지는
infopeople.kr
'공학' 카테고리의 다른 글
리눅스 서버 포트 차단·허용 및 외부 접근 제어 방법 – 보안 강화를 위한 실전 가이드 (0) | 2025.05.14 |
---|---|
Ubuntu 서버에서 UFW 방화벽 설정하는 방법 – 필수 보안 가이드 (2025년) (0) | 2025.05.13 |
Azure 가상 머신(VM) 설정 가이드 – 클라우드 서버 구축 첫걸음 (2025년 최신) (0) | 2025.05.11 |
.pem과 .ppk 파일 차이점과 변환 방법 – SSH 접속을 위한 필수 개념 (0) | 2025.05.10 |
SSH와 HTTPS의 차이점과 관계 (0) | 2025.05.09 |