2009-07-10 3 views
7

2 개의 서버가 있습니다. 웹에서 하나의 역방향 프록시와 WebDAV를 제공하는 개인 링크에서 하나.역방향 프록시가있는 WebDAV

부스 서버는 apache httpd v2입니다. 프록시에

나는이 :

 
    ProxyRequests Off 

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

    ProxyPass   /repo/ http : //share.local/repo/ 
    ProxyPassReverse /repo/ http : //share.local/repo/ 

내가 가지고있는 DAV 서버에서 :

 
<Location /repo/> 
    DAV on 
    Order allow,deny 
    allow from all 
</Location> 

역방향 프록시는 https를 통해 액세스하고 개인 서버가 http를 통해 액세스 할 수 있습니다. 그리고 거기에 문제가 있습니다!

읽기 전용 명령이 정상적으로 작동합니다. 그러나 무언가를 옮기고 싶을 때 나는 502 Bad gateway이된다. 리버스 프록시가 확장 된 dav 요청 내에서 URL을 다시 쓰지 않기 때문입니다.

원본 URL은 헤더 안에 있으며 정확히 http://share.local/file1으로 변환됩니다. 대상 URL은 아파치가 제대로 요청을 변환 할 수있는 표준 방법이 있나요 이해하지 않는 일부 XML 조각 내부와 https://example.com/file1 :(

을 유지? 당신의 노력

감사합니다.

+0

스택 오버플로가 하나의 URL 만 게시 할 수 있다고했는데 (공백을 추가했기 때문에 원래의 설정 파일에서 URL은 물론 맞습니다.) –

답변

9

흠 답을 발견 항상 같은 :

내가 덧붙였다.

 
LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so 

RequestHeader edit Destination ^https http early 

및 그것은 효과가 있었다. 이것이 단점이 있는지 나는 모른다. 내가 보자.

+0

아마도 기본 설정 일 것입니다. –

2

이미 알았 듯이 도착 URL은 XML이 아니며 '도착'헤더에 있어야합니다. 어쩌면 당신은 오류 응답을보고 있었을 것입니다 ...

일반적으로 클라이언트와 서버가 Destination 헤더를 상대 경로로 허용하는 WebDAV 레벨 3 (RFC4918에 정의 된대로)을 구현할 때이 문제는 사라질 것입니다.