2012-11-21 2 views
3

이 사람이 나를 괴롭 히고 있습니다. EC2에서 컨텐트를 제공하는 활성 및 사용중인 Apache 프록시 서버가 있습니다. 큰 작업과 같이 구성되어있는 가상 호스트에서의 숙박을 것 :Apache ProxyPass가 일관되게 실패했습니다.

<VirtualHost *:80> 
    ServerName m.FOO.com 
    ServerAlias customer.FOO.com 

    ProxyPreserveHost On 
    ProxyPass/ajp://10.211.42.48:8009/ 
    ProxyPassReverse/ajp://10.211.42.48:8009/ 

    <Proxy ajp://10.211.42.48:8009/*> 
      Order allow,deny 
      Allow from all 
    </Proxy> 
</VirtualHost> 

다음은 모두 잘 작동, 나는 아무런 문제가없는거야. 이제는 각 응용 프로그램에 대한 단일 가상 호스트 대신에 응용 프로그램 서버로 프록시를 이동하는 기본 사이트에서 하위 URL을 갖고 싶습니다. 그래서 'customer.FOO.com'을 가진 고객 대신 'FOO.com/customer/'가 표시됩니다.

정말 쉽고, 맞습니까? 그래,별로. 나는 (현재 랜딩 페이지를 보여주고있는) 서버의 'root'에 대한 가상 호스트 항목을 편집하고 그 안에있는 디렉토리에 프록시 항목을 추가한다. 그럴 거예요, 그렇죠? 그것은 앞으로 제대로 프록시, 모두가 잘 - 나는 내부 웹 서버를 얻을 - 내가 http://www.FOO.com/t/ 충돌하는 경우

<VirtualHost *:80> 
    ServerName web01.aws.FOO.com 
    DocumentRoot /var/www/html 
    ErrorLog logs/www.FOO.com-error_log 
    CustomLog logs/www.FOO.com-access_log common 

    <Location /a> 
      ProxyPass ajp://10.211.42.48:8009 
      ProxyPassReverse ajp://10.211.42.48:8009 
    </Location> 

    <Location /t> 
      ProxyPass http://adm01 
      ProxyPassReverse http://adm01 
    </Location> 

    <Proxy ajp://10.211.42.48:8009/*> 
      Order allow,deny 
      Allow from all 
    </Proxy> 

</VirtualHost> 

: 네, 없습니다. http://www.FOO.com/a/을 클릭하면 404 오류가 발생합니다. 액세스 로그에 404 오류가 표시됩니다.

ProxyPass AJP 항목은 다른 vhost 항목의 내용과 동일합니다. 그렇다면 왜 다른 가상 호스트 항목의 루트에서 작동합니까? 그리고 메인 가상 호스트에서 하위 디렉토리로 작동하지 않는 이유는 무엇입니까?

하프!

답변

1

나는 메일 링리스트에서 어딘가에서 발견 한 한 가지 특별한 힌트로 이것을 해결했다. ProxyPassReverse 지시어는 매우 민감하며 기본 기능이 하나 있습니다. ProxyPassReverse A B 형식을 사용한다고 가정 할 때 두 번째 인수와 일치하는 것이 첫 번째 인수에 적용됩니다. 따라서 두 번째 인수가 응용 프로그램에서 오는 리다이렉트인지 확인하는 것이 중요합니다. 그렇지 않으면 ProxyPassReverse 지시어가 무시됩니다. 내가하고 결국 무엇을 내 경우에,

가에 위치 항목을 변경했다 :

ProxyPass /a/ ajp://10.211.42.48:8009 
ProxyPassReverse /a/ http://my.apphost.com/ 

그리고 모두가 잘 일하기 시작했다.

+0

Whish 나는 5 시간 전에 이것을 읽었습니다. :) http://alex.eftimie.ro/2013/03/21/how-to-run-flask-application-in-a-subpath-using-apache-mod_proxy / – alexef

관련 문제