Apache 프록시 잘못된 브라우저 URL

Apache 프록시 잘못된 브라우저 URL

VirtualHost내 'api' 하위 도메인에 대한 모든 요청을 webapps/webserviceTomcat에 있는 Java 웹 서비스로 프록시하기 위해 다음과 mod_proxy를 사용하고 있습니다 .

<VirtualHost *:80>
    ServerName api.mydoamin.com
    ProxyRequests Off
    ProxyPreserveHost On

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

    ProxyPass /webservice http://localhost:8080
    ProxPassReverse / http://localhost:8080
</VirtualHost>

내 문제는 'api.mydomain.com'을 입력하면 'api.mydomain.com/webservice'로 리디렉션되고 "webservicewebservice"를 사용할 수 없기 때문에 404 오류가 발생한다는 것입니다.

무엇을 해야할지 아는 사람 있나요?

해결책: 이전에 이 솔루션을 시도해 보았지만 Stony가 옳았습니다! 내 경우의 문제는 아무것도 변경하지 않았더라도 Tomcat을 다시 시작해야 작동한다는 것입니다. Apache를 여러 번 다시 시작했지만 아무 것도 변경되지 않았습니다.

답변1

귀하의 문제를 올바르게 이해했는지는 모르겠지만 webservice귀하의 URL에 해당 내용을 원하지 않는 경우. 그런 다음 프록시 패스를 /.

<VirtualHost *::80>
    ServerName api.mydoamin.com
    ProxyRequests Off
    ProxyPreserveHost On

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

    ProxyPass / http://localhost:8080/webservice/
    ProxPassReverse / http://localhost:8080/webservice/
</VirtualHost>

아니면 해당 도메인에서 웹 서비스를 실행하시겠습니까? 그리고 리디렉션을 원하지 않나요?

답변2

몇 가지 테스트와 많은 오류 끝에 마침내 다음과 같은 해결책을 찾았습니다.

다음과 같이 Apache 가상 호스트를 설정했습니다.

<VirtualHost *:80>
    ProxyRequests Off
    ProxyPreserveHost On
    <Proxy *>
        Order deny, allow
        Allow from all
    </Proxy>                                                                        
    ProxyPass / http://127.0.0.1:8080/
    ProxyPassReverse / http://127.0.0.1:8080/

    ServerName api.mydomain.com
</VirtualHost>

api.mydomain.com이제는 특정 디렉토리를 가리키지 않고 포트 8080에서 Tomcat에 대한 모든 요청을 프록시합니다 .

그런 다음 이것을 다음에 추가했습니다 /etc/tomcat7/server.xml.

<Host name="api.mydomain.com" appBase="webapps">
    <Context path="" docBase="webservice" />
</Host>

내 Apache 가상 호스트에서 활성화 되면 ProxyPreserveHostTomcat은 원래 요청의 호스트 이름을 가져오고 어떤 콘텐츠를 전달할지 스스로 결정할 수 있습니다.

appBase="webapps"콘텐츠가 다른 곳에 있더라도 루트 디렉터리에서 전달되는 것처럼 보입니다 .

관련 정보