2011-06-11 4 views
2

가상 컴퓨터에서 여러 서버를 실행하고 있습니다. 그리고 그 서버에 프록시 요청을위한 하나의 실행 nginx 있습니다. 예를 들어 http://mydomain.com/wikihttp://192.168.122.3에게 프록시 요청을해야합니다. 192.168.122.3은 DocumentRoot =/var/www/wiki를 사용하여 아파치를 실행합니다. 모든 것이 잘 작동하지만, 페이지가로드되면 거기에있는 모든 경로가/wiki 대신 /를 가리 킵니다 (예 : <img src="/bla-bla-bla"/>, not /wiki/bla-bla-bla"). 아파치는 괜찮지 만 브라우저는 아니다 - 이미지 등을로드 할 수 없다. 아파치의 DocumentRoot를/var/www로 변경하고 nginx에서/wiki를 전달해도 도움이되지 않는다. - mediawiki가/wiki, nginx 로의 리다이렉션을 시작한다. 루프 된 리디렉션에 대해 말하기 전에 다시 아파치로 리디렉션합니다. Redmine (레일 위의 루비)과 같은 VM에서 실행되는 다른 프로젝트도 동일하게 작동합니다.Nginx : proxy_path를 올바르게 설정하십시오. URL 문제

이 문제를 해결할 수있는 방법이 있습니까?/subdir과 같은 URL을 다른 서버에 프록시하는 적절한 방법이 있습니까?

이의 nginx 서버 섹션 :

server { 
    listen 192.168.122.7:80; 
    server_name mydomain.com; 

    access_log /var/log/nginx/localhost.access.log; 

    location/{ 

    } 
    location /wiki/ { 
     proxy_pass http://192.168.122.3/; 
    } 
} 

답변

2

귀하의 proxy_redirect 지시어를 사용한다.

location /wiki/ { 
    proxy_pass http://192.168.122.3/; 
    proxy_redirect default; 
} 
+0

답변 해 주셔서 감사합니다. 나를위한 해결책은 프록시 된 아파치의 하위 URL에서 mediawiki를 실행하는 것이 었습니다. nginx 위치 : '위치/위키/{ proxy_pass http://192.168.122.3/; }' 그리고'DocumentRoot = "/ var/www"로 아파치를 설정하고 위키는/var/www/wiki / – Axell

관련 문제