2011-10-22 3 views
2

Windows 2008R2 (64Bit) 상자에 RhodeCode 1.2.2가 설치되었습니다.IIS 7이 프록시하는 RhodeCode

127.0.0.1:5000에서 실행되는 RhodeCode에 대해 IIS 7을 프록시 서버 (응용 프로그램 요청 라우팅 + URL 다시 쓰기)로 설정했습니다.

저장소에 "https://subdomain.domain.de"를 통해 접근 할 수 있습니다.

저장소 요약에서

, 복제 URL 포인트 : 은 https : // [사용자 이름] @ 127.0.0.1 : 클라이언트 측에서/SomeProject

5000의 를 교체 할 때 내가 저장소를 복제 할 수 있습니다 " 127.0.0.1:5000 "with"subdomain.domain.de ". 내가 위아래로 웹을 검색

내가로드 코드가 프록시 URL ("subdomain.domain.de")를 표시하도록하겠습니까 대신 127.XXX를 들어

... 그리고 유일한 I 그게 아파치에 트릭을하는 "ProxyPreserveHost On"설정이 있음을 발견했습니다. 그러나 IIS와 같은 것을 찾지 못했습니다.

어딘가에 "production.ini"내의 설정이 있습니까? 프록시 URL을 정의 할 수 있습니까? 누군가 IIS에서 잘 숨겨진 설정을 찾았습니까?

어떤 도움이 많이 답변에 대한


감사 :-) 감사합니다! 이미 ARR을 사용하고 역방향 프록시를 설정하면 프록시를 통해 RhodeCode에 액세스 할 수 있습니다. 그러나 HTTP_HOST 값이 paster로 전달되지 않는 것처럼 보입니다. 는 IIS 내에서

, I 설치 다음 서버 변수 및 역방향 프록시 규칙 내에서 설정 :

<set name="HTTP_HOST" value="[subdomain.domain.de]" /> 
<set name="HTTP_X_FORWARDED_SERVER" value="[subdomain.domain.de]" /> 
<set name="HTTP_X_ORIGINAL_HOST" value="[subdomain.domain.de]" /> 
<set name="HTTP_X_HTTP_HOST" value="[subdomain.domain.de]" /> 
<set name="HTTP_X_URL_SCHEME" value="https" /> 

하지만를 전혀 전혀 영향을 미치지했다.

링크 된 이전 답변에서 그는 이러한 변수 값을 HTTP_HOST (내 경우에는 톰캣 내에서 복사해야 함)로 다시 복사 할 것을 제안했습니다. 아파치 내에서 간단한 "ProxyPreserveHost On"을 사용하여 나에게 너무 과장된 것 같습니다. 나는 여기서 뭔가를 놓친 느낌이 들었다.

건배 Sörnt 아파치

답변

1

I'm working on out reverse proxying over https for rhodecode with apache on centos6 right now.

configuration noted by marcin of rhodecode fame는 : ProxyPreserveHost의 IIS의 equivilent 들어

<VirtualHost *:80> 
    ServerName hg.myserver.com 
    ServerAlias hg.myserver.com 

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

    #important ! 
    #Directive to properly generate url (clone url) for pylons 
    ProxyPreserveHost On 

    #rhodecode instance 
    ProxyPass/http://127.0.0.1:5000/ 
    ProxyPassReverse/http://127.0.0.1:5000/ 

    #to enable https use line below 
    #SetEnvIf X-Url-Scheme https HTTPS=1 
</VirtualHost> 

, Application Request Routing 참조 a previously answer by a MSFT MVP 제공 하였다.

http 서버는 실제로 파이썬 붙여 넣기의 httpserver이므로 referring to the python paste documentation for httpserver (egg#Paste:http)은 프록시 구성이 없습니다.reverse proxy in IIS (source)

marcin이 https에 대한 paste의 httpserver 지원을 사용하는 대신 reverse proxy 설정을 권장하는 이유가 확실하지 않습니다. 하지만 IIS 필드를 요청하고 붙여 넣기의 httpserver를 127.0.0.1로 바인딩하는 것이 가장 좋은 방법입니다.

1

방금 ​​RhodeCode 1.3.3을 설치했고이 문제가 발생했습니다. 구성 파일에서이 행을 편집하여 작동하게 할 수 있습니다.

## overwrite schema of clone url 
## available vars: 
## scheme - http/https 
## user - current user 
## pass - password 
## netloc - network location 
## path - usually repo_name 

#clone_uri = {scheme}://{user}{pass}{netloc}{path} 

clone_uri = {scheme}://{user}{pass}yourdomain.com{path} 
+1

버전 1.3.6에서 작동 당신은 어떤 부분을 수정 했습니까? 이것들은 기본적으로 주석 처리되어 있습니다. – metasim

+0

@SimeonFitch 죄송합니다. 오랜 시간이되었지만 전자 메일 알림이 없으므로 귀하의 질문을 볼 수 없었습니다. 나는 대답을 명확하게 업데이트했다. – ltvan

2

Itvan이 맞습니다.

clone_uri의 주석 처리를 제거하면 기본 clone_uri가 그대로 유지됩니다.

clone_uri = {scheme}://{user}{pass}[subdomain.domain.de]{path} 

PS : 당신은 그 라인을함으로써 도메인을 사용하도록 clone_uri을 강제 할 수

+0

담당자를 얻은 후에는 다른 대답에 답하기 위해 주석을 사용하십시오.) –

관련 문제