2013-11-24 2 views
0

Synology DSM을 홈 호스팅 용으로 설정했으며 주변에서 놀려고했습니다. 현재 목표는 하위 서비스를 특정 서비스에 할당하는 것입니다. DSM 관리자 패널, SickBeard 등Apache mod_rewrite - 하위 도메인에 포트 다시 쓰기

유일한 문제는 Synology가 서비스를 관리하는 방법입니다. 그들 중 일부는 웹 호스트 기반이며 자신의 하위 폴더에/var/services/web/폴더에 저장됩니다. 일부 포트는 별도의 포트에서 실행됩니다 (예 : Sickbeard는 포트 8083에서 실행되며 관리자 패널은 실행됩니다). 포트 5000).

결과는 매우 간단합니다. 포트를 표시하지 않고 하위 도메인 (아래 참조)을이 포트로 리디렉션합니다.

admin.fonix232.net -> fonix232.net:5000
sb.fonix232.net -> fonix232.net:8083
home.fonix232.net -> fonix232.net:8085

나는 (아파치 - vhost.conf 사용자에) 다음과 같은 방법으로, 하위 도메인 admin.fonix232.net에 대한 간단한 mod_rewrite는 규칙을 설정 한 : 그렇지 않은 것을 제외하고는, 잘 작동

<VirtualHost *:*> 
ServerName admin.fonix232.net 

RewriteEngine on 
RewriteCond %{HTTP_HOST} admin\.fonix232\.net [NC] 
RewriteRule ^/(.*)$ http://fonix232.net:5000/$1 [P,QSA,L] 
</VirtualHost> 

포트를 다시 작성하십시오 - 적어도 5000은 유지되지만 적어도 하위 도메인에는 남아 있습니다.
어떻게 제거 할 수 있습니까?

+0

이 줄 : _it는 the_port를 다시 쓰지 않습니다 - 그것은 5000으로 유지되며 _는 모순 된 것처럼 보입니다. http://admin.fonix232.net을 방문하면 포트 80이 표시되므로 "5000으로 유지"한다고 할 때 무엇을 의미합니까? – TecBrat

+0

admin.fonix232.net을 방문하면 포트 80에 머 무르지 않을 것입니다. admin.fonix232.net:5000에 나를 버리고 모든 호출을 리디렉션합니다. 직접 포트 호출 (* .fonix232.net : [*] [*] [target] .fonix232.net)이 각각의 대상과 일치하지 않는 경우에도 리디렉션하는 것이 좋습니다. – fonix232

답변

0

솔루션은 매우 간단했고 mod_proxy 및 mod_proxy_http를 사용해야했습니다.

Synology가 Apache 시스템 (system/webman, user 및 webdav에 대해 세 가지 개별 서비스)을 구축 한 방식 덕분에 가장 좋은 해결책은 새 구성 파일을 만들고 가져 오기 시작 스크립트를 약간 수정하여 기존 구성을 확장하는 것이 었습니다 그것도 (일부 신비한 이유로 누군가가 webman에서 설정을 편집하자마자 설정 파일에 어떤 종류의 수동 추가도 지워진다).

그래서 그 후, 나는, 다음과 같은 방법을 리디렉션하고 싶은 별도의 서비스에 대해 별도의에서 VirtualHost를 작성했다 :

<VirtualHost *> 
    ServerName [full subdomain you want to redirect to] 
    ProxyRequests On 
    ProxyPreserveHost On 

    <Proxy *> 
      Order deny,allow 
      Allow from all 
    </Proxy> 

    ProxyPass/[target address and port you want to reach] 
    ProxyPassReverse/[target address and port you want to reach] 

    <Location /> 
      Order allow,deny 
      Allow from all 
    </Location> 

튜토리얼의 대부분이 ProxyRequests가 꺼져있는 것을 볼하지만, 저를 위해, 그것을 가능하게해서 그 방법으로 결코 작동하지 않았다.

이제 정확한 사실이 남아 있습니다. 포트 X가 * .domain.tld에서 호출 된 경우 어떤 하위 도메인이 할당되었는지에 관계없이 의미합니다 .domain.tld. 균열에 더 단단한 견과는, 그러나 도착하고있다.

관련 문제