본문 바로가기
OS/Ubuntu

Ubuntu에서 Nginx 설치 및 기본 설정

by yazasus 2025. 7. 7.
728x90

Ubuntu에 Nginx 설치 및 기본 설정

Nginx는 가벼우면서도 고성능을 자랑하는 웹 서버입니다. Ubuntu 환경에서 빠르게 설치하고 기본 설정을 적용하는 과정을 단계별로 정리했습니다.

1. 패키지 업데이트 및 Nginx 설치

먼저 시스템 패키지를 최신 상태로 업데이트한 뒤 Nginx를 설치합니다. 안정적인 버전의 Nginx를 기본 리포지토리에서 가져옵니다.

sudo apt update
sudo apt install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx

2. UFW 방화벽에서 HTTP/HTTPS 허용

UFW를 사용 중이라면 웹 서비스 포트(80, 443)를 허용해 외부 요청을 받을 수 있도록 설정합니다.

sudo ufw allow 'Nginx HTTP'
sudo ufw allow 'Nginx HTTPS'
sudo ufw status verbose

3. 기본 문서 루트 확인 및 권한 설정

/var/www/html이 기본 문서 루트입니다. 프로젝트 폴더를 생성하고 소유권을 웹 서버 사용자로 변경하여 권한 문제를 예방합니다.

sudo mkdir -p /var/www/my_site/html
sudo chown -R $USER:www-data /var/www/my_site/html
sudo chmod -R 750 /var/www/my_site/html
echo "

It works!

" | sudo tee /var/www/my_site/html/index.html

4. 서버 블록(Server Block) 구성

가상 호스트와 유사한 서버 블록을 설정해 여러 사이트를 운영할 수 있습니다. example.com을 자신의 도메인으로 교체하세요.

sudo nano /etc/nginx/sites-available/example.com
# server {
#     listen 80;
#     server_name example.com www.example.com;
#     root /var/www/my_site/html;
#     index index.html index.htm;
#     location / {
#         try_files $uri $uri/ =404;
#     }
# }
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

5. SSL 인증서(HTTPS) 설정

보안을 위해 Let’s Encrypt 무료 SSL 인증서를 적용합니다. Certbot을 이용해 자동 갱신도 함께 설정하세요.

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example.com -d www.example.com
sudo systemctl status certbot.timer

마무리 및 실무 팁

설정 완료 후 정기적으로 sudo apt update && sudo apt upgrade로 패치하고, /var/log/nginx/ 로그를 통해 에러를 모니터링하세요.

실무 팁: gzip 압축, 캐시 헤더, 연결 제한(workers, connections)을 /etc/nginx/nginx.conf에 추가하면 전송 속도와 안정성을 더욱 높일 수 있습니다.

728x90