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

Запуск Tomcat на псевдониме Apache или сопоставление номеров портов с именами хостов

У меня установлен WAMP с Apache на порту 80 и Tomcat установлен на порту 8080. Итак, я получаю доступ к своим проектам php из localhost/ и Java-проекты в localhost:8080/ Могу ли я установить или сопоставить Tomcat с лучше адрес как localhost/java/ или лучше еще псевдоним как javahost вместо того localhost Я добавил строку в файл HOSTS

127.0.0.1:8080       javahost

Но это не работает. И я не могу пинговать javahost. Я думаю, это не должно так работать.

Есть выход?

WAMPSERVER 2 с APACHE 2.2.11

TOMCAT 6.0.29

WINDOWS XP PRO SP3

Обновить:

Спасибо @bindbn

Я изменил файл hosts на

127.0.0.1 javahost

Я включил модуль прокси в Apache. Затем добавил это в конец httpd.conf.

<VirtualHost javahost>
ProxyPreserveHost On

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

</VirtualHost> 

Из используя Virtualhost и mod_proxy вместе

После чего javahost также загружает веб-сайт php, размещенный на порту 80, вместо веб-сайта localhost: 8080.

Обновить Нашел это в сети http: // confluence.atlassian.com/display/CONF30/Using+Apache+with+mod_proxy

# Put this in the main section of your configuration (or desired virtual host, if using Apache virtual hosts)
ProxyRequests Off
ProxyPreserveHost On

#<Proxy *>// changed to below.
<Proxy javahost:80>
    Order deny,allow
    Allow from all
</Proxy>

ProxyPass /confluence http://localhost:8080/confluence 
ProxyPassReverse /confluence http://localhost:8080/confluence
<Location /confluence>
    Order allow,deny
    Allow from all
</Location>

Изменение слияния на java (и изменение localhost: 8080 / confluence на localhost: 8080) дает мне ответ @lladnar, который хорошо работает при перенаправлении localhost / java и javahost / java на localhost: 8080, но нельзя ли это использовать для перенаправить ТОЛЬКО javahost на localhost: 8080 и сохранить localhost для чтения с порта 80? Я также изменил строки на,

<Proxy javahost:80>
    Order deny,allow
    Allow from all
</Proxy>

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

Теперь javahost перенаправляется на localhost: 8080, но localhost также перенаправляется на localhost: 8080, поэтому я не могу получить доступ к порту localhost: 80, на котором находится мой веб-сайт php.

Где я ошибаюсь? Любые идеи?

Моя цель - перенаправить javahost (или другой IP-адрес) на localhost: 8080, сохраняя localhost: 80 доступным с localhost и 127.0.0.1 и IP-адрес интрасети моего компьютера

Обновлено с ответом Это сработало. Я добавил это в конец httpd.conf. прокси-модуль и прокси-модуль http включены. Моя рабочая станция имела единственный IP-адрес локальной сети (192.168.1.4). Я добавил еще один IP (192.168.1.5) и использовал этот IP вместо имени javahost. Теперь 192.68.1.5 открывает мой сайт Tomcat, а 192.168.1.4 открывает мой сайт PHP.

<VirtualHost 192.168.1.5>
ProxyPreserveHost On

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

</VirtualHost> 

Спасибо @Caleb за идею нескольких IP-адресов. Спасибо @lladnar и @bindbn за код прокси!(Хотел бы я разделить баллы за ответ, и поскольку у меня нет репутации (репутация 6), я не могу дать никакой репутации)

Проблемы с текущей настройкой В настоящее время люди в интрасети используют http: // workstationname / для доступа к внутреннему PHP-сайту. Теперь им придется использовать ips для веб-сайта JAVA и PHP. Есть ли способ привязать конкретное имя хоста к определенному IP-адресу

В вашем текущем вопросе:

+ Изменить <VirtualHost javahost> к <VirtualHost *:80> так что он слушает только порт 80 на всех интерфейсах. Вы можете заменить звездочку на localhost если вы хотите, чтобы сайт был доступен только с локального компьютера.

Затем измените proxypass и proxypassreverse на:

ProxyPass         /java  http://localhost:8080
ProxyPassReverse  /java  http://localhost:8080

затем http: // локальный / Java должен автоматически проксироваться в Tomcat при доступе к нему в браузере.

Изменить (удалить: 8080)

127.0.0.1       javahost

Добавить в apache conf virtualhost javahost

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

Ваш файл hosts предназначен для поиска адресов, а не для принудительной маршрутизации на определенный порт.

Вы не указали здесь свою платформу, поэтому вот общие возможные решения:

  1. Добавьте второй IP-адрес к своему компьютеру и привяжите apache к одному, а tomcat к другому. Затем вы можете использовать хосты, чтобы указать, какой из них какой.
  2. Настройте псевдоним в apache для пересылки на другой URL.
  3. Настройте свои виртуальные хосты в apache так, чтобы он распознавал разные имена (которые вы установили в своем файле hosts) и пересылал или отправлял запросы на tomcat, если они предназначены для другого хоста.