Как мне запустить Apache (httpd) и Tomcat вместе? - PullRequest
9 голосов
/ 17 августа 2010

Недавно я получил проекты, которые работают на Struts, и я ожидаю, что в будущем появится еще больше JSP.

После поиска вопроса в Google меня привели в блоги людей, которые пытались сделать то же самое.Эти блоги были не просто пошаговой процедурой того, как они это делали, а скорее как ссылка на случай, если в будущем им понадобится что-то подобное.В некоторых случаях автор точно не сказал, был ли он успешен в попытке запустить оба вышеупомянутых сервиса вместе.

К сожалению, я не могу следовать их «инструкциям», так как у меня настроено множество проектов PHP(загружать каталоги, пути к классам и т. д.) для запуска на моем тестовом сервере, и у меня нет времени, чтобы перенастроить их все на тот случай, если я испорчу сервер httpd.И ради честности, я не пробовал ни одного шага по их совместному запуску по той же причине, что не решался обновить файлы конфигурации.

Я не уверен, добавляет ли это сложности, но я работаюобе службы через xampp (с tomcat, являющимся надстройкой xampp) для целей переносимости.

Я знаю, что могу просто остановить свою службу Apache всякий раз, когда я работаю над JSP, но эй, это возможность попробовать что-то новоеи я просто не могу позволить этому ускользнуть.Кроме того, было бы удобно, чтобы обе службы автоматически запускались при запуске, что действительно увеличило бы мою производительность, поскольку мне не нужно было бы вручную переключаться между службами при необходимости.

Надеюсь, на SO есть кто-то, кто ездил ната же лодка.

редактировать: Tomcat Версия 6.0.20 Httpd Версия 2.2.14

Ответы [ 3 ]

8 голосов
/ 17 августа 2010
  • Пусть Tomcat прослушивает порт, отличный от 80
  • Следуйте инструкциям, чтобы настроить mod_proxy для перенаправления запросов в определенное место в Tomcat, например this .

Если вы действительно только тестируете, пропустите второй шаг и просто получите доступ к серверу через другой порт для Tomcat.

edit : См. Также http://httpd.apache.org/docs/2.2/mod/mod_proxy_ajp.html о настройке mod_proxy_ajp.

1 голос
/ 17 августа 2010

Вы забыли упомянуть, какую версию Tomcat вы используете, и вы также не упомянули, смотрели ли вы на документацию Tomcat, чтобы ответить на вопрос.

Я бы предложил начать здесь: http://tomcat.apache.org/connectors-doc/webserver_howto/apache.html и посмотреть на настройку mod_jk.

0 голосов
/ 01 августа 2017

Если вы хотите использовать apache/ httpd для обслуживания запроса от PHP, а также любого другого сервера, работающего на другом порту, скажем, tomcat на порту 8080, вы можете использовать apache / httpd, чтобы действовать как «прокси» и сопоставьте URL, который будет обслуживаться другим сервером.Это делается с использованием конфигурации ProxyPass ProxyPassReverse.

Например: если вы хотите, чтобы http://localhost/php обслуживался PHP, а http://localhost/tomcat обслуживался tomcat, то вы будетенеобходимо внести следующие изменения в httpd.config / apache.config [apache2.config в зависимости от используемой версии apache]:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so
# Uncomment these to proxy FTP or HTTPS
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so

<VirtualHost *:80>
# Your domain name
# ServerName Domain_NAME_HERE

ProxyPreserveHost On

ProxyPass /tomcat http://localhost:8080/
ProxyPassReverse /tomcat http://localhost:8080/

# The location of the HTML files, and access control information
DocumentRoot /var/www
<Directory /var/www>
    Options -Indexes
    Order allow,deny
    Allow from all
</Directory>

</VirtualHost>

В случае, если вы используете httpd на centos и выможет получить ошибку Apache Mod_proxy '[Error] (13)Permission Denied', затем перейдите по этой ссылке, которая говорит, что выполните следующую команду:

 /usr/sbin/setsebool -P httpd_can_network_connect 1

Я бы порекомендовал вам прочитать mod_proxy .

Ссылка: Redhat конфигурация mod_proxy

...