Hello WP

🛠️ 설치 순서

1. proxy 네트워크 생성 (단 한 번만)

bash

복사편집

docker network create proxy


2. nginx-proxy + acme-companion 실행

yaml

복사편집

version: '3.8' services: nginx-proxy: image: nginxproxy/nginx-proxy container_name: nginx-proxy restart: always ports: - "80:80" - "443:443" volumes: - ./certs:/etc/nginx/certs - ./vhost.d:/etc/nginx/vhost.d - ./html:/usr/share/nginx/html - /var/run/docker.sock:/tmp/docker.sock:ro networks: - proxy acme-companion: image: nginxproxy/acme-companion container_name: acme-companion restart: always volumes: - ./certs:/etc/nginx/certs:rw - ./vhost.d:/etc/nginx/vhost.d - ./html:/usr/share/nginx/html - /var/run/docker.sock:/var/run/docker.sock:ro depends_on: - nginx-proxy networks: - proxy networks: proxy: external: true

bash

복사편집

docker-compose -f nginx-proxy.yml up -d


3. WordPress 1개 구성 예시 (blog1)

yaml

복사편집

version: '3.8' services: wp1-db: image: mariadb:10.11 container_name: wp1-db restart: always environment: MYSQL_ROOT_PASSWORD: example MYSQL_DATABASE: wp1db MYSQL_USER: wpuser MYSQL_PASSWORD: wppass volumes: - ./db:/var/lib/mysql networks: - proxy wp1: image: wordpress:php8.2-fpm container_name: wp1 restart: always environment: WORDPRESS_DB_HOST: wp1-db:3306 WORDPRESS_DB_NAME: wp1db WORDPRESS_DB_USER: wpuser WORDPRESS_DB_PASSWORD: wppass VIRTUAL_HOST: blog1.super-keyword.com LETSENCRYPT_HOST: blog1.super-keyword.com LETSENCRYPT_EMAIL: your@email.com volumes: - ./html:/var/www/html networks: - proxy networks: proxy: external: true

wp2, wp3는 위 구성에서 이름과 포트, VIRTUAL_HOST, LETSENCRYPT_HOST만 다르게 복제해서 만들면 됩니다.


🔐 SSL 인증 확인

https://blog1.super-keyword.com 에 접속하면 자동으로 인증서가 발급되고 HTTPS로 접속됩니다. 발급까지 수 분 정도 소요될 수 있습니다.


🧼 기존 WordPress (패키지 설치 버전) 정리

  • DSM 패키지에서 설치한 WordPress는 삭제해도 됩니다.
  • 기존에 사용하던 포트 (예: 5000, 5001)는 무관합니다. Docker nginx-proxy가 직접 80/443 포트를 차지하기 때문에 충돌 주의!

🔁 요약 정리

항목설명
리버스 프록시nginx-proxy
SSL 인증acme-companion
WordPress각 wp 컨테이너 + DB 컨테이너
네트워크모두 proxy 라는 docker network에 연결
도메인가비아 DNS에서 blog1, blog2, blog3 A 레코드 등록
인증서자동 발급 (Let’s Encrypt)

💬 다음 단계로 확인해볼 것들

  • NAS 포트 포워딩: 공유기에서 NAS로 80/443 포트 열려 있는지 확인
  • Docker 컨테이너 로그 확인 (특히 acme-companion 로그)
  • certs/, html/, vhost.d/ 볼륨에 권한 문제 없는지 확인

필요하시면 blog2, blog3도 Compose 구성 예시 드릴게요.
진행하면서 문제 생기면 바로 알려줘요.