환영합니다, Rolling Ress의 카루입니다.
Ubuntu에서 NginX를 사용하여 웹 서버를 구성하는 방법을 알아보겠습니다. 사용한 OS는 Ubuntu 24.04 LTS입니다. 우리가 웹 페이지를 만들고 싶다면 웹 페이지를 보여주는 컴퓨터(=서버)가 한 대 있을 것이고, 그 컴퓨터에서는 접속자(=클라이언트)에게 화면을 그려서 표시하고 상호작용해야 할 겁니다. 사용자에게 화면을 표시하고 상호작용하는 일, 이것이 바로 웹 서버 프로그램이 하는 일입니다. 주로 아파치(Apache), NginX 등이 있는데 여기선 NginX를 사용하겠습니다. 가벼우면서도 강력해서 좋아요.
$ sudo apt update && sudo apt install nginx -y
$ sudo systemctl enable --now nginx

이후 브라우저를 켜서 localhost 또는 127.0.0.1로 접속해보면 페이지가 하나 뜰 겁니다. 이 페이지는 /var/www/html 안에 있는 html 파일입니다. 이제 이 파일을 수정하거나, 기존에 만들어둔 페이지를 가져와 이 폴더로 옮겨야 합니다.
그 전에, 제가 사용하는 환경에서는 homepage라는 그룹에 속한 사람들이 홈페이지를 제작하므로 권한을 좀 변경해주겠습니다. 다른 분들은 넘어가시면 됩니다.
$ sudo chgrp -R homepage /var/www/html
$ sudo chmod -R 775 /var/www/html
$ sudo chmod g+s /var/www/html
HTTPS 설정
HTTPS란 HTTP에 TLS/SSL 암호화가 적용된 보안 프로토콜입니다. 이제는 HTTP 사이트에만 들어가도 크롬에서 경고 표시를 할 정도로 HTTPS는 선택이 아닌 필수가 되었습니다. HTTPS 연결을 위해서는 우리 사이트는 안전하다는 인증서가 필요한데, Let's Encrypt의 Certbot을 사용하여 인증서를 만들어봅시다.
$ sudo apt install certbot python3-certbot-nginx -y
$ sudo nano /etc/nginx/sites-available/<별칭>
default에 해도 되는데, 사이트를 어떤 걸 만들지 몰라서 따로 설정파일을 만들었습니다. 여기선 rollingress라고 합시다.
server {
server_name www.rollingress.com;
root /var/www/html;
index index.html;
}
여기서는 도메인이 필요합니다. 내가 소유하고 있는 도메인이 있다면 도메인을 넣어줍니다. root에는 index.html 파일이 들어있는 폴더를 지정해줍니다. 환경에 (홈 디렉토리에서 git clone을 한 경우) 따라 /home에 있을 수도 있습니다. 마지막으로 index.html이 진입점이라는 것까지 정의해주면 끝납니다.
$ sudo nginx -t # 여기서 오류가 나면 문법 에러가 발생한 겁니다.
$ sudo systemctl reload nginx
NginX 파일의 문법 오류를 검사한 뒤, 서비스를 다시 시작합니다.
$ sudo certbot --nginx -d <사이트 이름>
자, 이제 Certbot이 알아서 내 사이트의 인증서를 발급하게 합니다. 이렇게 하면 /etc/nginx/sites-available/rollingress에 몇 줄이 추가됩니다. SSL 연결 및 80 -> 443 리다이렉션 과정입니다.
$ sudo ln -s /etc/nginx/sites-available/rollingress /etc/nginx/sites-enabled/
마지막으로, 바로가기(심볼릭 링크)를 통해 sites-enabled에 등록해두어 NginX가 우리 사이트를 알아보고 표시할 수 있게 해줍니다.
인증서 갱신
인증서는 90일 동안만 유효합니다. 그렇지만 Certbot은 이 모든 걸 자동화해주기 때문에, 90일이 지나면 인증서를 갱신해줄 수 있어요.
$ sudo systemctl status certbot.timer
● certbot.timer - Run certbot twice daily
Loaded: loaded (/usr/lib/systemd/system/certbot.timer; enabled; preset: enabled)
Active: active (waiting) since Fri 2026-02-20 20:26:17 KST; 3h 42min ago
Trigger: Sat 2026-02-21 01:16:00 KST; 1h 7min left
Triggers: ● certbot.service
Feb 20 20:26:17 UBUNTU-Server systemd[1]: Started certbot.timer - Run certbot twice daily.
위 명령어를 입력하여 확인해보면 Certbot 타이머가 정상적으로 동작함을 확인할 수 있습니다. 여러분만의 웹 서버를 구축하신 걸 축하드립니다.
'Linux' 카테고리의 다른 글
| Arch Linux 설치 가이드 4: 개발 환경 설정하기 (1) | 2026.03.04 |
|---|---|
| Arch Linux 설치 가이드 3: LTS 커널과 기타 설정 마무리 (2) | 2024.09.30 |
| Arch Linux 설치 가이드 2: Wayland GUI 환경설정과 드라이버 설치 (2) | 2024.09.30 |
| Arch Linux 설치 가이드 1: 파티션 분할과 부트로더 설치까지 (5) | 2024.09.30 |