2014-10-22 5 views
0

У меня есть веб-приложение, работающее в Tomcat 8. Я могу получить доступ к этому приложению, открыв http://subdomain.domain.com:8080/MYAPP. Теперь я хочу только ввести http://subdomain.domain.com, чтобы открыть это приложение.Apache и Tomcat 8 configure proxy

Как мне настроить свой Apache 2 или Tomcat 8 для достижения этого?

+0

я решил мою проблему со следующим ответом : http://serverfault.com/questions/397617/apache-mod-proxy-page-reload-and-sessions –

ответ

1

См. Мой ответ там для более подробной информации.

https://stackoverflow.com/a/26305876/1935128

Но в принципе, вам нужно mod_proxy и, возможно, mod_proxy_connect включен апач с надлежащей virtualhost конфигурации на апаче стороны. А на стороне Tomcat в это может работать без каких-либо изменений, но вы должны добавить proxyName="subdomain.domain.com, proxyPort="80" и scheme="http"

Tomcat разъем:

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" 
    <!-- This is the important part --> 
    proxyName="subdomain.domain.com" proxyPort="80"/> 

Apache VirtualHost:

<VirtualHost subdomain.mydomain.com:80> 
    ServerName   http://subdomain.mydomain.com 

    # I think these two are optional, depending on the app your run on Tomcat 
    #ProxyRequests   Off 
    #ProxyPreserveHost  On 

    ProxyPass    /  http://your.tomcat.server:8080/MYAPP/ 
    ProxyPassReverse  /  http://your.tomcat.server:8080/MYAPP/ 

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

Спасибо, что у меня есть одна проблема. Путь веб-приложения tomcat 8 похож на subdomain.domain: 8080/MYAPP, поэтому, если я вхожу в subdomain.domain.com в своем браузере, я перенаправляюсь на главный сайт сервера tomcat, но я хотел иметь корневой поддомен .domain.com, указывая на оригинальный URL-адрес tomcat, не показывая этот ULR в браузере. Вы можете мне помочь? –

+0

Мой плохой, не правильно прочитал ваш вопрос. Вы должны изменить как «ProxyPass», так и «ProxyPassReverse», чтобы добавить свой путь. Пример: 'ProxyPass/http: //your.tomcat.server: 8080/MYAPP /'. Я не уверен в последнем/хотя, попробуйте как с http: //your.tomcat.server: 8080/MYAPP/'и' http: //your.tomcat.server: 8080/MYAPP'', скажите мне какой из них прав, и я отредактирую свой ответ. – Johnride

+0

Большое спасибо. Это http: //your.tomcat.server: 8080/MYAPP /. Теперь он работает правильно. –