Apache с Proxypass и Spring Security

У меня есть приложение Spring MVC, которое использует Spring Security для входа в систему. Я использую веб-сервер Apache в качестве прокси и Tomcat. Ниже мой файл /etc/apache2/sites-enabled/example.com.conf:

ServerAdmin [email protected]
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html

ProxyPreserveHost On
ProxyRequests off

ProxyPass /myapp/j_spring_security_check http://localhost:8080/myapp/j_spring_security_check
ProxyPassReverse /myapp/j_spring_security_check http://localhost:8080/myapp/j_spring_security_check
ProxyPass /myapp http://localhost:8080/myapp
ProxyPassReverse /myapp http://localhost:8080/myapp

Это работает нормально, и я могу войти на свой сайт. Однако я должен использовать http://example.com/myapp вместо http://example.com. Если я использую позже, он показывает мне:

Index of /

[ICO]   Name    Last modified   Size    Description
[IMG]   favicon.ico 2015-02-23 14:15    7.6K     

Если я изменю файл example.com.conf, как это предлагается другими сайтами/сообщениями, я ничего не получу и http://example.com перенаправляет меня на http://example.com/myapp:

ProxyPass /j_spring_security_check http://localhost:8080/j_spring_security_check
ProxyPassReverse /j_spring_security_check http://localhost:8080/j_spring_security_check
ProxyPass / http://localhost:8080/myapp
ProxyPassReverse / http://localhost:8080/myapp

Может ли кто-нибудь помочь? Спасибо.

Изменить:

Ниже приведен мой ROOT.xml в папке «~/apache-tomcat-7.0.52/conf/Catalina/localhost», которую я создал в соответствии с Как установить контекстный путь веб-приложения в Tomcat 7.0.

<Context
    docBase="/home/anuj/webapps/prod-prop-3" 
    path=""
    reloadable="true"
/>

Но когда я попробовал это, http://example.com привел меня к http://example.com/login и выдал ошибку:

Запрошенный URL-адрес /логин не найден на этом сервере.

В чем здесь проблема, может кто-нибудь помочь, пожалуйста?


person AAgg    schedule 23.02.2015    source источник


Ответы (1)


Измените httpd.conf со следующими настройками прокси:

ProxyPass /j_spring_security_check http://localhost:8080/j_spring_security_check ProxyPassReverse /j_spring_security_check http://localhost:8080/j_spring_security_check ProxyPass /myapp http://localhost:8080/

ProxyPassReverse /myapp http://localhost:8080/

person anil    schedule 23.02.2015
comment
Это не работает. Если я попробую example.com, я получу список индекса. Если я попробую example.com/myapp, ничего не отобразится. - person AAgg; 23.02.2015