Назад | Перейти на главную страницу

нужна помощь в перенаправлении с Apache на Tomcat с помощью mod_proxy_ajp

Я использую mod_proxy_ajp для перенаправления с Apache на Tomcat. Apache запускается на порту 80, а коннектор Tomcat ajp установлен на порту 8081. Вот моя конфигурация виртуального хоста:

<virtualHost *:80>
   ServerName www.example.com
   ProxyRequests Off
   ProxyPreserveHost On

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

   ProxyPass / ajp://localhost:8081/example/
   ProxyPassReverse / ajp://localhost:8081/example/

   <Location />
    Order allow,deny
    Allow from all
   </Location>
</VirtualHost>

Проблема в том, что когда я набираю url www.example.com (пример находится в каталоге tomcat webapp), загружается только заголовок примера приложения, а браузер перестает загружаться, и ничего не происходит. любая идея? Спасибо и извините за мой плохой английский

В конфигурации по умолчанию порт 8080 обслуживает содержимое HTTP, а AJP обслуживается через порт 8009. Вы можете подтвердить это в tomcat server.xml файл, пример:

<Executor name="tomcatThreadPool" 
          namePrefix="catalina-exec-"
          maxThreads="150" 
          minSpareThreads="4"/>

<Connector executor="tomcatThreadPool"
           port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />

<Connector executor="tomcatThreadPool"
           port="8009" protocol="AJP/1.3"
           connectionTimeout="20000"
           URIEncoding="UTF-8"
           redirectPort="8443" />

mod_proxy_ajp не требует ProxyPassReverse директиву, поэтому вы можете просто заменить:

ProxyPass / ajp://localhost:8081/example/
ProxyPassReverse / ajp://localhost:8081/example/

с участием:

ProxyPassMatch ^/(example)(.*) ajp://localhost:8009/$1$2 ttl=120 ping=1

в конфигурации Apache. Используйте соответствующий порт для AJP.