Я настроил веб-сервер Apache и Tomcat следующим образом:
Я создал новый файл в apache2 / sites-available, назвал его «myDomain» со следующим содержимым:
<VirtualHost *:80>
ServerAdmin admin@myDomain.com
ServerName myDomain.com
ServerAlias www.myDomain.com
ProxyPass / ajp://localhost:8009
<Proxy *>
AllowOverride AuthConfig
Order allow,deny
Allow from all
Options -Indexes
</Proxy>
</VirtualHost>
Включены mod_proxy и myDomain
a2enmod proxy_ajp
a2ensite myDomain
Отредактировал Tomcat server.xml (внутри тега Engine)
<Host name="myDomain.com" appBase="webapps/myApp">
<Context path="" docBase="."/>
</Host>
<Host name="www.myDomain.com" appBase="webapps/myApp">
<Context path="" docBase="."/>
</Host>
Это прекрасно работает. Но я не люблю помещать статические файлы (html, изображения, видео и т. Д.) В подпапки {tomcat home} / webapps / myApp, вместо этого я хотел бы поместить их в подкаталоги корневого каталога WWW веб-сервера apache. И я бы хотел, чтобы веб-сервер Apache обслуживал только эти файлы.
Как я мог это сделать? Таким образом, весь входящий запрос будет перенаправлен на Tomcat, кроме тех, которые запрашивают статический файл.
Вы, вероятно, захотите использовать ProxyPassMatch. Вы можете использовать это как:
ProxyPassMatch ^(/.*\.cgi)$ ajp://localhost:8009$1
для проксирования всех запросов, заканчивающихся на .CGI. Если вы хотите проксировать несколько расширений, просто добавьте больше строк или отредактируйте регулярное выражение. Затем вам просто нужно убедиться, что ваш VirtualHost настроен для обслуживания оставшихся типов изображений.
Хотя ответ uesp технически верен, я всегда рекомендую людям использовать Соединитель Apache mod_jk для размещения серверов приложений Java через Apache. В общем, он упрощает, ну ... все, и позволяет монтировать определенные контексты. Например, теперь вы можете просто использовать:
LoadModule jk_module libexec/mod_jk.so
JKMount /myapp/* ajp13
Это значительно упрощает пересылку запросов, а также дает вам гораздо больше гибкости в использовании Apache для размещения других ресурсов.