미분류

워드프레스 다중 사이트 이미지 고유 서버 구축 성공기

? media.panchock.net 공유 이미지 서버 구축 성공기

워드프레스 사이트들의 이미지 용량을 줄이고, 관리 효율을 높이기 위해 공통 이미지 서버(media.panchock.net)를 구축하고,
다른 워드프레스 사이트(panchokmool.co.kr)와 공유하는 데에 성공했습니다.
아래는 이 과정 중 성공한 단계들을 순서대로 상세하게 정리한 기록입니다.


1. 서브도메인용 공용 이미지 서버 media.panchock.net 구축

  • 경로: /home/media.panchock.net/public_html/uploads
  • 인증서 발급: certbot --webroot 방식으로 SSL 인증서 정상 발급 완료
  • Apache 가상 호스트 설정:
<VirtualHost *:443>
ServerName media.panchock.net
DocumentRoot /home/media.panchock.net/public_html

<Directory /home/media.panchock.net/public_html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/media.panchock.net/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/media.panchock.net/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/media.panchock.net/chain.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>

2. 디렉토리 설정 (.htaccess)

/home/media.panchock.net/public_html/uploads/.htaccess에 다음 설정을 적용하여 보안 및 웹P 최적화 반영:

# 디렉토리 리스트 방지
Options -Indexes

# CORS 허용 (cross domain 이미지 호출 허용)
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>

# WebP MIME 타입 등록
<IfModule mod_mime.c>
AddType image/webp .webp
</IfModule>

3. 워드프레스 사이트에 심볼릭 링크로 공유 폴더 연결

예: panchokmool.co.kr의 업로드 디렉토리를 공유 폴더로 연결

rm -rf /home/panchokmool.co.kr/public_html/wp-content/uploads
ln -s /home/media.panchock.net/public_html/uploads /home/panchokmool.co.kr/public_html/wp-content/uploads

4. 워드프레스 functions.php 수정으로 공유 이미지 경로 매핑

function custom_upload_paths($uploads) {
$uploads['baseurl'] = 'https://media.panchock.net/uploads' . $uploads['subdir'];
$uploads['basedir'] = '/home/media.panchock.net/public_html/uploads' . $uploads['subdir'];
return $uploads;
}
add_filter('upload_dir', 'custom_upload_paths');
  • 결과적으로 모든 워드프레스 이미지 업로드가 media.panchock.net/uploads로 저장됨
  • 이미지는 다른 도메인에서도 잘 표시됨

5. 업로드 및 이미지 표시 테스트 완료

  • https://media.panchock.net/uploads/test-image.jpg → 정상 출력
  • 워드프레스에서 이미지 업로드 성공 확인
  • 미디어 라이브러리에 등록된 이미지들 정상 출력됨

? 기타 성공 항목

  • .htaccessAccess-Control-Allow-Origin "*" 설정을 통해 타 도메인에서 이미지 불러오기 문제 해결
  • Options -Indexes로 디렉토리 노출 차단
  • media.panchock.net의 SSL 인증 및 리디렉션 정상 처리

? 문제점 및 향후 해결 과제 (기록용)

❗ 1. 기존 이미지 미디어 라이브러리 미표시 문제

  • hongbomool.panchock.net에서 복사해온 uploads 폴더의 이미지 파일들은 media.panchock.net/uploads에는 존재하지만, panchokmool.co.kr/wp-admin/upload.php 미디어 라이브러리에는 나타나지 않음.
  • 원인: 워드프레스는 DB에 등록된 항목만 미디어로 인식하며, 단순히 파일이 존재한다고 자동 인식하지 않음.

❗ 2. 미디어 라이브러리 동기화 플러그인 문제

  • Media Sync, Media from FTP 등 대표 플러그인 테스트했으나, 일부는 작동 불가, 일부는 유료 제한 또는 개발 중지 상태.
  • 미디어 등록을 수동으로 처리하거나 커스텀 플러그인 개발이 필요함.

⛳ 다음 단계

  • 기존 복사한 이미지들을 워드프레스 미디어 라이브러리에 등록 (Media Sync 대안 고려)
  • 다양한 사이트에 같은 방식 적용
  • 캐시 설정 재점검 (현재 비활성화 상태)

이런 식으로 설정하면 워드프레스 사이트 간 이미지 중복 저장 없이 효율적으로 관리할 수 있습니다.
필요 시 추가적인 동기화 도구를 만들어 확장도 가능합니다.


? 결론 및 앞으로의 계획

  • 현재 구조는 이미지가 media.panchock.net에서만 관리되고, 여러 사이트(예: panchokmool.co.kr, hongbomool.panchock.net)에서 공유해서 불러오는 방식
  • 이미지 용량 절감 및 중앙 관리가 매우 용이함
  • 실시간 이미지 동기화 플러그인을 통해 기존 이미지도 점차 워드프레스 미디어 라이브러리에 등록할 예정

? TIP

  • 캐시 플러그인 사용 시 혼선 방지를 위해 테스트 중에는 WP Super Cache 및 Redis Cache 플러그인을 모두 비활성화했습니다.
  • 업로드 경로를 변경할 때는 upload_dir 필터만 사용하고 UPLOADS 상수는 설정하지 않는 게 좋습니다.
SEO 백서

Recent Posts

Smush Image Optimization 이미지 최적화 플러그인

✅ Smush란? Smush Image Optimization은 워드프레스에서 이미지 용량을 자동으로 줄여주고, 사이트 속도를 개선하는 데 도움을…

8개월 ago

WP Super Cache 플러그인 최적화 가이드

✅ WP Super Cache 최적화 가이드 1. 캐시 모드 설정 설정 > WP Super Cache…

8개월 ago

CentOS 방화벽(Firewalld)에 IP 화이트리스트 등록하는 법

"접속 차단? 걱정 마세요! 믿고 따라오면 됩니다 ?" 서버 작업을 하다가 갑자기 내가 접속이 안…

8개월 ago

Max button – 워드프레스에 버튼을 달아보자!

Max button - 워드프레스에 버튼을 달아보자! 워드프레스에서 버튼을 만드는 것이 어려우신가요? 워드프레스는 편집기에서 일반 텍스트…

1년 ago

Bing 검색 결과에서 파비콘이 안보이는 현상

Bing 검색 결과에서 파비콘이 안보이는 현상 파비콘(favicon)은 'favorite icon'의 약자로, 브라우저 주소 표시줄에 나타나는 작은…

1년 ago

워드프레스 500 에러 – 500 Internal Server Error 해결 방법

WordPress 웹사이트에서 오류가 발생하는 데 좋은 시기는 없습니다. 관리자 페이지든 프론트엔드에서든, 사이트 오류는 정말 짜증나죠.…

1년 ago