DevOps 환경에서 웹 서버를 구축하는 것은 매우 중요한 작업입니다. 이번 포스트에서는 Nginx를 사용해 Docker 컨테이너 내에서 간단한 반응형 웹 서버를 구축하는 방법을 소개하겠습니다. 이 과정을 통해 Nginx의 기본 설정과 Docker를 활용한 컨테이너 관리의 기초를 익힐 수 있습니다.
1. 사전 준비
먼저, Docker가 설치되어 있어야 합니다. Docker가 설치되어 있지 않다면, Docker 공식 사이트를 참고하여 설치해 주세요.
2. 프로젝트 구조 만들기
프로젝트를 시작하기 전에 디렉토리 구조를 만들어야 합니다. 아래와 같이 기본적인 파일 구조를 설정합니다:
mkdir nginx-reactive-server
cd nginx-reactive-server
mkdir html
위 명령어를 실행하면 nginx-reactive-server라는 디렉토리 안에 html이라는 서브 디렉토리가 생성됩니다. 이곳에 HTML 파일을 넣어 웹 페이지를 구성할 것입니다.
3. 간단한 HTML 파일 작성
html 디렉토리 내에 index.html 파일을 생성합니다. 아래와 같은 내용을 추가해 주세요:
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Nginx 반응형 웹 서버</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.3/css/bulma.min.css">
</head>
<body>
<section class="hero is-info">
<div class="hero-body">
<div class="container">
<h1 class="title">안녕하세요, Nginx 서버입니다!</h1>
<h2 class="subtitle">반응형 웹 서버를 성공적으로 구축했습니다.</h2>
</div>
</div>
</section>
</body>
</html>
위 코드는 Bulma CSS 프레임워크를 활용한 간단한 반응형 웹 페이지 예제입니다.
4. Nginx 설정 파일 만들기
이제 Nginx의 설정 파일을 작성해 보겠습니다. 프로젝트 루트 디렉토리에 nginx.conf 파일을 생성하고 아래 내용을 추가합니다:
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html;
try_files $uri $uri/ =404;
}
}
이 설정 파일은 Nginx가 80 포트를 감지하고 html 디렉토리 내의 index.html 파일을 기본 페이지로 제공합니다.
5. Dockerfile 작성
이제 Nginx와 위에서 작성한 HTML 파일을 Docker 컨테이너에서 사용할 수 있도록 Dockerfile을 작성합니다. 루트 디렉토리에 Dockerfile을 만들어 아래 내용을 추가하세요:
FROM nginx:alpine
# 설정 파일을 컨테이너에 복사합니다.
COPY nginx.conf /etc/nginx/nginx.conf
COPY html /usr/share/nginx/html
# 80 포트를 개방합니다.
EXPOSE 80
6. Docker 이미지 빌드 및 실행
이제 모든 준비가 완료되었습니다. 다음 단계로 Docker 이미지를 빌드하고 실행해 보겠습니다. 루트 디렉토리에서 아래 명령어를 차례로 실행하세요:
# Docker 이미지 빌드
docker build -t nginx-reactive-server .
# Docker 컨테이너 실행
docker run -d -p 8080:80 nginx-reactive-server
위 명령어를 실행하면 nginx-reactive-server라는 이름의 Docker 이미지가 생성됩니다. 이후 Docker 컨테이너가 백그라운드에서 실행되고, 호스트의 8080 포트에서 접근할 수 있습니다.
7. 웹 서버 확인
웹 브라우저를 열고 http://localhost:8080에 접속해 보세요. "안녕하세요, Nginx 서버입니다!"라는 메시지와 함께 반응형 웹 페이지가 나타날 것입니다.
마무리
이번 포스트에서는 Nginx를 사용하여 Docker 컨테이너 내에서 간단한 반응형 웹 서버를 구축하는 방법을 살펴보았습니다. 이 과정을 통해 Nginx의 기본적인 설정과 Docker를 활용한 컨테이너 관리의 기초를 이해할 수 있었을 것입니다. 앞으로는 이 기본 구조를 바탕으로 더욱 복잡한 웹 애플리케이션을 개발해 보세요. DevOps 환경에서의 지속적인 배포와 운영에 큰 도움이 될 것입니다.