CyberPanel 서브도메인 워드프레스 블로그 설치하기 (도커, 리버스 프록시 설정)
이 내용은 아직 번역본이 없습니다.
빠르게 사이버 패널에서 워드프레스 도커 컨테이너 리버스 프록시를 설정해 보겠습니다. (rewrite rule)
아래의 빠른 요약을 참고해 주세요. (기타의 mixed contents 오류 해결 포함)
[toc]
빠른 요약
구분 | 내용 |
---|---|
필요한 것 | 이미 설치된 워드프레스 도커, |
PHP 파일 편집을 위한 도구 (글에서는 SSH 사용) | |
글에서 사용한 이미지 | Bitnami Wordpress Nginx |
Bitnami Wordpress Nginx 포트 | 2500 |
원하는 경로 | "/blog" 라고 가정 |
Step 1. Cyberpanel 로그인
CyberPanel
에서 Website
- List website
로 이동합니다.
rewite rules
를 설정할 도메인에 Manage
를 클릭합니다.
Step 2. “Rewrite Rules” 작성하기
순서대로 1. Rewrite Rules
을 클릭하고 2. 아래의 코드를 편집하여 붙여넣습니다.
example.com
으로 하면 헷갈리니, 제가 설정한 규칙을 설명하겠습니다.
빠른 요약에서 말씀드린 것과 같이 워드프레스 도커이미지는 Bitnami Wordpress Nginx
를 사용하였습니다. 내부망의 리버스 프록시이므로, 2500 포트는 외부는 안열려있고 Docker Compose 에서 Ports “2500:8080” 옵션만 주었습니다. (따라서 워드프레스 컨테이너의 주소는 http://[내부망IP]:2500이 됨)
저는 총 3개의 도커 컨테이너를 실행중이어서 묶음이 3개입니다.
간략하게 설명하겠습니다.
줄 1번 RewriteEngine On
으로 RewriteEngine 옵션을 활성화 합니다.
줄 3번 RewriteCond %{HTTP_HOST} ^navystack\.com$ [NC]
옵션은 해당 도메인 이름이 “navystack.com”과 정확하게 일치하는지를 검사하는 옵션입니다.
여기서 사용된 [NC]
는 조건에 대한 옵션을 지정하는 것으로, NC는 “No Case”의 약어로 대소문자를 구분하지 않고 일치 여부를 판단하도록 지시합니다.
줄 4번 RewriteRule ^blog(.*)$ http://172.26.6.6:2500/$1 [P,L,E=PROXY-HOST:navystack.com]
은 줄 3번과 일치하는 주소로 들어오는 경로 중에서 뒤에 blog 문자열과 일치하면 줄 3번의 $앞에서 끊고 blog
문자열을 유지한 채로 http://172.26.6.6:2500/$1
에서 $1자리에 넣어줍니다.
(172.26.6.6은 저의 내부망의 아이피입니다.)
[P]
: 이 부분은 URL을 리버스 프록시로 전달하도록 지시하는 플래그입니다.
프록시를 사용하고 있다고 알립니다.[L]
: 이 부분은 “Last”의 약어로, 현재 규칙을 실행하고 난 후 다음 규칙을 무시하도록 지시합니다.
따라서 이 규칙이 매치되면 더 이상의 규칙은 처리되지 않습니다.[E=PROXY-HOST:navystack.com]
: 이 부분은 환경 변수를 설정하는 지시문입니다.
PROXY-HOST라는 환경 변수를 선언하고 값을 navystack.com으로 설정하고 있습니다.
호스트를 알려주어 제대로 된 처리를 할 수 있게 합니다.
마찬가지로 67번은 다른 컨테이너로 보내고 있으며, 910 번은 나머지 요청에 대해서는 Ghost CMS로 떨어지게 설정하였습니다. (Rewrite Rule은 순서에 따라 사용되므로 마지막에 작성)
Step 3. “wp-config.php” 파일 수정하기
SSH 접속이나 기타의 방법으로 wp-config.php
파일을 수정합니다.
혹시 저와 같이 Bitnami Wordpress Nginx 이미지를 사용하시는 경우, Bitnami의 이미지는 non-root container이므로, 파일 권한을 수정해야 합니다.
따라서 chmod -R 775 옵션을 주었습니다.
명령어 입력하시면 위와 같이 되어있을 건데, 아래와 같이 바꿔줍니다.
꼭 뒤에 경로에 /
를 넣어 주어서 리버스 프록시가 알아서 처리하도록 만들어줍니다.
(트레일링 슬래시)
이제 자신의 "[자신의 도메인]/blog"
경로로 이동하면 워드프레스 블로그 화면이 나올겁니다.
고생많으셨습니다.
(기타 1) mixed contents 오류 해결하기
혹시 일부 CSS나 JS가 로딩되지 않거나 오류가 뜬다면 https 옵션을 켜주세요
(wp-config.php파일 수정 $_SERVER['HTTPS'] = 'on';
를 추가)
이렇게만 되어있다면 아래의 줄을 추가
이렇게 만들어주시면 됩니다.
수고 많으셨습니다. 감사합니다.
Askfront.com (에스크프론트)
에스크프론트
에서는 NavyStack 가이드뿐만 아니라, 궁금한 모든 질문을 환영합니다. 😊