728x90
아키텍처는 다음과 같습니다.
[사용자 브라우저]
↓
[도메인] - (Cloudflare CDN)
↓
[Nginx Proxy Manager (NPM) - 로컬서버]
↓
[Docker의 WordPress (localhost:9999)]
이 구조로 도메인을 통해 워드프레스에 외부 접속 가능하게 하려면, 아래 단계를 거치면 가능해집니다.
1. Cloudflare 설정 (도메인 관리)
- Cloudflare에 도메인 등록 및 DNS 레코드 설정
- A 레코드:
- 이름: @ 또는 원하는 서브도메인 (예: blog)
- 값: 내부 로컬서버의 외부 IP (예: 22.22.22.22)
- 프록시 상태: 주황색 구름 활성화 (CDN 적용)
- A 레코드:
- SSL/TLS > Full(또는 Full(strict)) 모드 설정
- Flexible은 워드프레스에서 문제 생길 수 있으니 Full 추천
2. Nginx Proxy Manager 설정
NPM은 로컬에서 Cloudflare → 워드프레스 도커까지 연결해주는 역할입니다.
- Proxy Host 생성
- Domain Names: example.com (또는 blog.example.com)
- Scheme: http
- Forward Hostname / IP: localhost
- Forward Port: 8000
- Block Common Exploits: 체크
- Websockets Support: 체크
- 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 |
---|