Nginx 구성
이제 본격적으로 nginx를 설치하고 구성해보자
효율적이고 편리한 관리를 위해 NPM(Nginx Proxy Manager)를 설치할 계획이다.

nginx를 설치할 VM 서버 사양이다.
보시다시피 저사양 서버이며, 해당 서버로는 NPM과 NPM 구동을 위한 도커 컨테이너만 설치할 예정이다.
우선 Docker와 nginx 설정을 위한 방화벽 포트를 오픈한다.
sudo firewall-cmd --permanent --zone=public --add-port=443/tcp
sudo firewall-cmd --permanent --zone=public --add-port=80/tcp
sudo firewall-cmd --permanent --zone=public --add-port=81/tcp
sudo firewall-cmd --reload
그리고 Docker와 Docker Compose를 설치하고 동작을 확인해본다.
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo systemctl enable --now docker
docker version
docker compose version
만일 Docker Version을 실행할때 Permission 에러가 발생한다면 다음과 같이 진행한다.
sudo usermod -aG docker 계정명
newgrp docker
이제 저용량 서버를 위한 Docker 로그를 수정한다. 이를 서버 디스크 용량이 충분하다면 진행하지 않아도 된다.
sudo mkdir -p /etc/docker
sudo vi /etc/docker/daemon.json
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
sudo systemctl restart docker
이제 NPM 컨테이너 설치를 위한 경로와 docker compose 파일을 작성한다.
mkdir -p ~/npm
cd ~/npm
vi docker-compose.yml
services:
npm:
image: jc21/nginx-proxy-manager:latest
container_name: nginx-proxy-manager
restart: unless-stopped
ports:
- "80:80"
- "443:443"
- "81:81"
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
docker compose 파일을 작성하면 docker compose를 실행하고 구동 상태를 확인한다.
docker compose up -d
docker compose ps
서비스 동작이 확인되면 http://서버IP:81 주소로 NPM에 접속한다.
최초 접속 시 계정명과 이메일 그리고 패스워드를 설정해서 최초 관리자 계정을 등록한다.

위와 같이 접속이 되면 NPM 설치가 완료된 상태다.
본격적인 NPM 설정은 다음편에 계속…