У меня есть много служб, подключенных к одному домену, поэтому я надеялся обслуживать Tomcat, скажем, http: // имя_сервера / tomcat, с Nginx в качестве обратного прокси для HTTP-коннектора Tomcat.
Конфигурация Nginx настолько проста, насколько это возможно:
location /tomcat {
include proxy_pass.conf;
proxy_pass http://127.0.0.1:8080;
}
Если я оставлю все как есть, Tomcat не сможет разрешить запросы, начинающиеся с /tomcat
, но если я установил иначе alias /;
в Nginx Tomcat работает нормально, но, к сожалению, он не может определить путь, по которому он обслуживается, поэтому все URL-адреса отсутствуют /tomcat
.
Я прошел через ссылка на конфигурацию для Tomcat 7 несколько раз, но я не смог найти ничего, что позволило бы мне настроить Tomcat для обслуживания всех приложений под /tomcat
path или иным образом добавьте его в качестве префикса к пути контекста для каждого приложения.
Я мог вручную настроить server.xml
с <context/>
контейнер для каждого приложения, но это заставило бы меня почувствовать себя неловко. Может ли кто-нибудь сказать мне, что мне явно не хватает?
Я пытался делать то же самое несколько раз за последние 4-5 лет, и я пробовал много разных способов, но все попытки терпели неудачу. Наконец, я пришел к выводу, что (а) это невозможно (б) даже если каким-то образом это можно сделать, это не стоит усилий. Хотя, я был бы приятно удивлен, если бы кто-то в этом разобрался.
Не тестировалось, но лучше всего было бы загрузить Java Bridge в APACHE2 / PHP, чтобы он запускал Java-код при его обнаружении.
По-видимому, Tomcat 6 представил механизм для достижения этой цели, добавив к папке webapp или имени файла .war префикс, разделенный хешем. Итак, например:
${catalina.base}/webapps/tomcat#app1
${catalina.base}/webapps/tomcat#app2.war
... сделает оба доступными через http: // локальный: 8080 / tomcat / app1 / и http: // локальный: 8080 / tomcat / app2 /соответственно, без дальнейшей настройки.
Это несколько загадочно объясняется в Tomcat Ссылка на контекстный контейнер, но смотри это полезное сообщение в списке рассылки Tomcat-users.
К сожалению, есть загвоздка: очевидно, Cocoon (до 2.1.11) подавляется веб-приложениями, пути которых содержат хеш (см. https://issues.apache.org/jira/browse/COCOON-2270).
Итак, когда у вас нет веб-приложений на основе Cocoon, работающих внутри Tomcat, добавление префикса «hashed» к имени их папки кажется возможным решением.