멀티도메인 적용을 위한 선택은? xe와 라이믹스
CMS/프레임워크 | XE 1.x |
---|---|
개발 언어 | PHP 7.2 |
네이버와 같은 구조(메인사이트 아래 각자의 멀티도메인으로 구성)의 포탈사이트를 구상하고 있습니다.
xe 설치하여 멀티도메인으로 해보려고 vhost와 사이트메뉴추가(바로가기-URL링크) 등 여러가지 작업해보니 마지막 부분에서 성공적으로 적용되지 않습니다. 제가 완벽히 적용못한 부분이 있는 지 잘 모르겠습니다.
많은 노력과 시간을 들였는데 고민이 깊어집니다.
검색해보니 라이믹스에서는 멀티도메인 기능을 지원하는 것 같은데
네이버와 같은 포탈사이트를 만들기 위해서는 라이믹스(멀티도메인)로 운영해야 할 지? xe에서 더 연구해야 할 지?
고수님들 도움 부탁 드립니다.

hatali
Lv. 4
댓글 13
구체적으로 뭘 어떻게 해보셨고 어디까지 성공했고 어디가 안 되어서 막혔는지 말씀을 안 해 주시니, 완벽히 적용 못한 부분이 어디인지 제3자가 알 턱이 있나요. 예를 들어 만약 vhost 설정이 문제였다면 라이믹스가 아니라 라이믹스 할아버지가 와도 안 될 수도 있습니다.
아무래도 마지막에 멀티도메인 잘 연결 된 후 vhost에 rewrite 내용을 아래와 같이 추가한 게 이상한 것 같습니다.
메인사이트에 ssl 적용중인데, 멀티도메인 연결된 후 멀티도메인이 http로 나와서 ssl적용하려고 아래 적용했습니다.
추가전
<VirtualHost *:80>
ServerAdmin hatali@naver.com
DocumentRoot "/apm/apps/docs/job.aaa.com/"
ServerName job.aaa.com
ErrorLog "logs/job.aaa.com-error_log"
CustomLog "logs/job.aaa.com-access_log" common
</VirtualHost>
추가후
<VirtualHost *:80>
ServerAdmin hatali@naver.com
DocumentRoot "/apm/apps/docs/job.aaa.com/"
ServerName job.aaa.com
ErrorLog "logs/job.aaa.com-error_log"
CustomLog "logs/job.aaa.com-access_log" common
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>
Rewrite 추가전에는 xe 최초 설치하면 뜨는 레이아웃이 나왔는데,
Rewrite 추가 후 메인사이트(aaa.com)와 동일한 레이아웃과 메뉴가 나옴니다.
제가 원하는 건 멀티도메인(job.aaa.com)은 메인(aaa.com)과 다른 별개의 사이트를 만드는 것입니다.
SSL이 적용되지 않은 job.aaa.com 쪽의 vhost 설정은 보여주셨는데, SSL이 적용된 쪽이나 aaa.com 쪽은 어떻게 설정되어 있나요? 멀티도메인으로 사용할 모든 vhost의 DocumentRoot가 동일한 폴더로 연결되어야 합니다.
https가 적용되면서 멀티도메인 모듈이 헷갈려하고 있을 가능성도 있습니다.
메인사이트 vhost는 아래와 같습니다.
<VirtualHost *:80>
ServerAdmin hatali@naver.com
DocumentRoot "/apm/apps/docs/xe/"
ServerName aaa.com
ServerAlias www.aaa.com
ErrorLog "logs/aaa.com-error_log"
CustomLog "logs/aaa.com-access_log" common
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>
메인사이트 ssl은 let'sencrypt 와일드카드(*.aaa.com)로 적용해 놓아서 멀티도메인 추가되면 https가 자동 적용될 줄 알았는데 멀티도메인이 http로 나와 Rewrite 적용했었는데, let'sencrypt에 멀티도메인 추가를 해줘야 되는 지 모르겠어요.
인증서는 도메인이 안 맞으면 그냥 에러뿜습니다. 일단 어디라도 접속이 된다면 인증서 문제는 아닌 것 같습니다.
aaa.com와 DocumentRoot와 job.aaa.com의 DocumentRoot가 전혀 다르네요. 각 폴더에 XE가 하나씩 설치되어 있는 건가요? 100% 동일한 폴더, 동일한 XE, 동일한 DB, 멀티도메인 모듈, 이런 조합이어야 합니다. 그렇지 않다면 서로 전혀 무관한 사이트가 되니까 멀티도메인 기능을 쓰는 의미가 아예 없지요. (라이믹스를 쓰시더라도 마찬가지입니다.)
모든 vhost의 DocumentRoot는 동일해야 합니다. /apm/apps/docs/xe/와 /apm/apps/docs/job.aaa.com/ 둘 중 하나는 버리고, 나머지 한 쪽에서 멀티도메인 쓰세요. SSL 적용 및 443 포트 연결하신 vhost는 아직도 안 보여주셨는데, 안 봐도 비디오네요. DocumentRoot 모두 똑같이 통일하고, 나머지 하나는 버리세요.
저는 멀티도메인(서브도메인)은 메인도메인과 별개의 도메인이라 들어서 멀티도메인별 DB/XE core/폴더도 따로 만들려고 했습니다.
하부메뉴별 각각의 멀티도메인으로 DB(DB명)도 따로 관리하는 구조라 생각했는데 잘못 이해했었나 봅니다.
시도하시던 방식은 멀티도메인이 아니라 그냥 한 서버에 도메인 여러 개를 각각 따로 올려놓는 것입니다. 인증서도 멀티도메인이 아니라 그냥 와일드카드이니, 사실상 멀티도메인과는 아무 관련이 없는 거죠.
그런데 각각의 사이트를 그만큼 깔끔하게 분리하여 운영하셔도 된다면 (즉, 회원정보나 게시물 등을 전혀 공유하지 않아도 된다면) 괜히 멀티도메인도 아닌 멀티도메인을 시도하시느라 시간낭비하신 것 같네요. 굳이 하나로 합쳐서 멀티도메인 모듈에 의존하시지 말고 차라리 그렇게 따로따로 운영하는 것이 더 안정적일 수도 있습니다. 단, 이 경우에는 완벽하게 분리가 되어야 합니다. 폴더도 따로, XE도 따로, DB도 따로, vhost도 사이트마다 80포트 하나, 443포트 하나, 이렇게 각각 따로 만드셔야 합니다. 100% 분리하거나 100% 합치거나 둘 중 하나를 선택하세요.
(대형포탈사이트처럼 운영하려고 하는데 ) 멀티도메인이 아니었네요.
그런데, 사이트 분리식으로 운영하면 회원로그인은 공유할 수 있겠죠?(안되면 힘들어 져요ㅠㅠ)
예로 네이버 메인에서 로그인하면 뉴스,증권,부동산 ... 하부메뉴에서 로그인 유지되는 것처럼요.
말씀드렸듯이, 100% 분리하거나 100% 합쳐서 멀티도메인으로 처리하거나 둘 중 하나입니다.
분리하면 회원 로그인도 분리됩니다. DB를 따로 쓸 테니까요.
그럼 네이버의 경우, 도메인끼리 로그인이 유지시키는 기능은 멀티도메인으로 운영되는 건가요?(동일 DB 사용으로)
아니면 분리 운영식인데 로그인 유지(회원공유?)될 수 있는 다른 기능을 적용한 건지?
아니면 아예 다른 시스템인지요?(APM이 아닌 JAVA와 같은 건지?)
그러나 비슷한 기능을 소규모로 흉내낸다면 멀티도메인 방식에 더 가깝겠네요.
분리해서 적용해보니 원하는 구성은 잘 나왔는데 마지막 로그인 유지가 안되네요.
(좀 이상한 건 관리자로 로그인하니 로그인유지가 되는데, 일반회원으로 하니 로그인유지 안됩니다.)
멀티도메인을 공부해서 다시 해봐야 겠습니다.