서비스를 하다보면 도메인 여러개를 쓸 때가 있다. https 가 없던 시절에는 아무 도메인으로 접속해도 보안문제라든가 여러 문제가 없었는데, https 설정 문제와 아울러 "브랜드" 문제 그리고 "외부 노출 채널" 문제가 있어서 희망하는 도메인으로 계속 접속을 시켜야 한다. 그래서 무슨 도메인으로 접속을 해도 내가 원하는 도메인으로 접속할 수 있는 방법을 알아 보자.
http://7-star.net 으로 접속했을때 https://www.7-star.net 으로
1. httpd 이전 단계
이 단계는 웹 캐시 프로그램으로 접속 위치를 바꿀 수 있다. 아래 항목이 예제이다.
sub vcl_recv { # Happens before we check if we have this in cache already. # # Typically you clean up the request here, removing cookies you don't need, # rewriting the request, etc. if (client.ip != "127.0.0.1" && req.http.X-Forwarded-Proto !~ "https" && ( req.http.host ~ "도메인1" || req.http.host ~ "도메인2" || req.http.host ~ "도메인3" )) { set req.http.x-redir = "https://" + req.http.host + req.url; return (synth(850, "")); } # https://stackoverflow.com/questions/63039697/varnish-conflicts-with-lets-encrypt-certificate-renewal if (req.url ~ "^/\.well-known/acme-challenge/") { set req.backend_hint = certbot; return (pipe); } } |
2. httpd 에서 이동
이 경우는 httpd.conf 의 virtualhost 설정을 통해서 바꿀 수 있다.
<VirtualHost ip:8080> ServerName 도메인1 ServerAlias 도메인2 도메인3 Redirect / 이동하려는도메인/ </VirtualHost> |
위에서 보면 ip 옆에 8080 포트가 있는데 이 경우는 1에서 varnish를 통해 넘어온 경우이다. 만약 varnish 없이 하겠다면 80 포트만 해야 한다.
그리고 위와 같이 쓰면 https 의 경우 적용이 안된다. 그래서 아래 경우도 하나 더 넣어준다.
<VirtualHost ip:443> ServerName 도메인1 ServerAlias 도메인2 도메인3 Redirect / 이동하려는도메인/ </VirtualHost> |
이때 "이동하려는도메인" 뒤에는 "/"를 붙여주는 것이 좋다.
httpd.conf 에 추가를 했으면 재시작을 한다.
3. 웹 사이트 내에서 변경하기
이건 제일 간단하다. 1과 2 설정을 하지 않고 80 혹은 443 포트만 열려 있는 경우라면 웹 페이지 소스에서 홈 버튼이나 로고에 아래와 같이 링크를 단다.
<a href=이동하려는도메인>Home (내지는 로고파일)</a> |
이 외에 방법이 있으면 제보 바람.