2013-05-24 5 views
3

나는 여러 고객의 웹 사이트를 호스팅하는 호스팅 플랫폼을 운영하고 있습니다. 앱로드가 nginx에 뒤 이은 Catalyst입니다. 나는 각 클라이언트가 자신의 도메인에 그들 앞에 앞에 www이 있는지 또는 그 앞에 www이 없는지 선택할 수있는 능력을 갖기를 바란다. 그런 다음 적절하게 리디렉션 할 수 있기를 바란다. 제 질문은 nginx 레벨이나 Catalyst 레벨에서 이와 같은 것을 처리하는 것이 가장 좋은가요? 일반적으로 간단한 www에서 non-www으로 리디렉션되는 것은로드 밸런서 수준에서 처리되지만, 리디렉션하는 방식이 도메인별로 다를 수 있으므로 Catalyst 수준의 리디렉션을 처리하는 것이 더 바람직할까요? 그렇다면 에서 www에서 non-www (또는 viceversa)까지 리디렉션을 처리하는 가장 좋은 방법은 무엇입니까? 아니면 nginx이 더 좋을 것이라고 생각한다면, 이것을 사용하여 이것을 처리하는 가장 좋은 방법은 무엇입니까? 감사!perl 촉매제 www가 아닌 ​​www로 리디렉션

+0

여기서 몇 개의 도메인을 말하고 있습니까? 각 도메인에 가상 호스트가 있습니까? – innaM

+0

@innaM 현재 100 개의 도메인이 있습니다. 그리고 더있을 것입니다. 각 하나에 대한 유령이 아니므로, 나는 그것을 피하려고 노력했다. 그래서 나는 단지 nginx 서버에서 도메인을 가리킬 수 있었고 매회 설정을 망쳐 놓지 않고도 작동시킬 수 있었다. 현재 모든 도메인을 Catalyst 응용 프로그램 서버로 전달하는 서버 블록이 하나 있습니다. 가장 좋은 방법은 각 도메인에 대한 서버 블록을 갖는 것일 것이라고 생각하십니까? 그것은 많은 복사 및 붙여 넣기 일 것입니다! – srchulo

+0

복사 및 붙여 넣기는 생각하지 않았지만 프로세스를 자동화했습니다. 결국, 당신은 perl 프로그래머입니다 :-)하지만 이것이 여러분의 상황에서 옵션인지 아닌지 말할 수는 없습니다. – innaM

답변

1

고객의 DNS로 할 수 있습니다. 예를 들어 www.domain.com을 domain.com의 CNAME 별칭으로 설정하고 nginx를 사용하여 www.domain.com을 domain.com으로 다시 작성하는 경우. 나는 이것이 가장 간단한 방법이라고 생각한다. 촉매가 어떤 식 으로든 혼란 스럽습니까?

이렇게 CNAME 별칭을 사용하면 HTTPS에 사용할 수있는 SSL 인증서에주의해야한다는 점에 유의하십시오.

+0

하지만 nginx로 domain.com에 www.domain.com을 다시 작성하면 20 개의 다른 도메인이 nginx로 들어오는 경우 어떻게 도메인을 다시 작성해야하는지 알 수 있습니까? 예를 들어, domaina.com은 www.domaina.com으로 리디렉션되어야하며 domainb.com은 www.domainb.com으로 리디렉션되어야합니다. 아마 내가 당신의 솔루션을 오해하지만 수동으로 각 고유 도메인에 대한 nginx에 대한 설정 파일에 넣어하지 않을까요? – srchulo

+0

DNS 수준에서 발생하기 때문에 다시 작성하지 않아도됩니다. 촉매가 요청에 하나의 표준 도메인을 요구합니까? 나는 당신이보고있는 문제에서 나를 분리시킬 수 있도록 역방향 프록시도 사용한다. –

0

nginx와 같은 웹 서버는 간단한 URL 리디렉션을 처리하는 데 적합합니다. nginx를 사용하면 다음과 같은 리디렉션을 할 수 있습니다.

server { 
     listen  0.0.0.0:80; 
     server_name *.mydomain.com; 

     rewrite ^(.*) http://mydomain$1 permanent; 
} 
+0

www에서 non-www로 리디렉션하고 싶거나 각 도메인마다 viceversa를 리디렉션하고 싶습니다. 여기에있는 것은 지원하려는 각 도메인에 대한 서버 구성을 정의해야한다는 것입니다. 도메인을 적당히 지원하면, 매번이 지시어를 추가해야하는 번거 로움이 있습니다. – srchulo