워드프레스에 도메인 연결한 뒤, 외부 접속 방법

728x90

아키텍처는 다음과 같습니다.

[사용자 브라우저]
    ↓
[도메인] - (Cloudflare CDN)
    ↓
[Nginx Proxy Manager (NPM) - 로컬서버]
    ↓
[Docker의 WordPress (localhost:9999)]

이 구조로 도메인을 통해 워드프레스에 외부 접속 가능하게 하려면, 아래 단계를 거치면 가능해집니다.


1. Cloudflare 설정 (도메인 관리)

  1. Cloudflare에 도메인 등록DNS 레코드 설정
    • A 레코드:
      • 이름: @ 또는 원하는 서브도메인 (예: blog)
      • 값: 내부 로컬서버의 외부 IP (예: 22.22.22.22)
      • 프록시 상태: 주황색 구름 활성화 (CDN 적용)
  2. SSL/TLS > Full(또는 Full(strict)) 모드 설정
    • Flexible은 워드프레스에서 문제 생길 수 있으니 Full 추천

2. Nginx Proxy Manager 설정

NPM은 로컬에서 Cloudflare → 워드프레스 도커까지 연결해주는 역할입니다.

  1. Proxy Host 생성
    • Domain Names: example.com (또는 blog.example.com)
    • Scheme: http
    • Forward Hostname / IP: localhost
    • Forward Port: 8000
    • Block Common Exploits: 체크
    • Websockets Support: 체크
  2. SSL 탭
    • SSL 인증서: Let's Encrypt
    • 이메일: 적절히 입력
    • Force SSL: 체크
    • HTTP/2 Support: 체크

 3. 워드프레스 주소 설정 (wp-config.php 또는 관리자 페이지)

워드프레스는 기본적으로 설치 당시의 주소(localhost:8000)로 고정되므로, 도메인으로 강제 지정해야 합니다.

wp-config.php 직접 수정

다른 방법도 가능하지만 제 경우에는 이게 가장 안정적이였습니다.

define('WP_HOME', 'https://example.com');
define('WP_SITEURL', 'https://example.com');

도커 명령어로 수정:

docker exec -it wordpress-web bash
vi /var/www/html/wp-config.php

4. 워드프레스 Mixed Content 이슈 방지

Cloudflare + SSL 환경에서 http 리소스를 로드하면 Mixed Content 오류가 발생할 수 있습니다.

해결 방법:

  • 플러그인 설치: Really Simple SSL
  • 또는 .htaccess에 아래 리디렉션 추가:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

정리

구성 요소 예시 설정

도메인 https://example.com
Cloudflare DNS A 레코드 → 외부 IP (CDN 켜기)
NPM localhost:8000 프록시 설정
워드프레스 내부주소 https://example.com 으로 설정 (wp-config.php or 관리자)

 

300x250

'IT > Docker' 카테고리의 다른 글

Docker Desktop 컨테이너 백업 방법  (0) 2025.05.27