У меня установлен 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 предназначен для поиска адресов, а не для принудительной маршрутизации на определенный порт.
Вы не указали здесь свою платформу, поэтому вот общие возможные решения: