2013-12-09 4 views
1

У меня есть веб-приложение, размещенное на tomcat. Я пытаюсь добиться перенаправления URL-адресов моего имени. Итак, я использую конфигурацию vhosts в apache моей установки xampp.Удалить номер порта tomcat по адресу http

Мои инструменты: Tomcat, XAMPP, APACHE

Изменения я сделал:

In /System32/drivers/etc/hosts 
127.0.0.1 www.myapp.com 

Кроме того, я просил для доменного имени.

nslookup myapp.com 
Server: xxx.xx.xxx.xxx 
Address: xxx.xx.xxx.xxx#53 

myapp.com canonical name = blah-blah-myapp.com. 
Name: myapp.com 
Address: xxx.xx.xxx.xxx 

В TOMCAT server.xml:

 <Connector className="org.apache.catalina.connector.http.HttpConnector" 
      connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" 
      proxyName="www.myapp.com" 
      proxyPort="80"/> 

В httpd.conf:

LoadModule proxy_module modules/mod_proxy.so 
#AddModule mod_proxy.c # Gave error when tried to follow the docs 

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

В HTTP-vhosts.conf:

<VirtualHost *:80> 
ServerName myapp.com 
ServerAlias www.myapp.com 
ProxyRequests Off 
ProxyPreserveHost On 
<Proxy *> 
    Order deny,allow 
    Allow from all 
</Proxy> 
ProxyPass /MyAppPath http://localhost:8080 
ProxyPassReverse http://localhost:8080 

Делая эти конфигурации, я достиг функциональности в моей машине Macintosh. Но проблема с сервером Windows. Я внес изменения в файлы конфигурации установки Windows. Он не пропускает номер PORT. Мое приложение работает только с номером порта в домене. Как я могу сделать http request on port 80 to redirect to tomcat port 8080

Все, что я ищу, это реализовать что-то вроде www.myapp.com вместо localhost: 8080/index.html. Мое приложение работает на порту 8080. После того, как вышеуказанные изменения конфигурации, я могу получить доступ к приложению с www.myapp.com:8080. Я хочу исключить 8080 из URL.

+0

Включены ли какие-либо URL-адреса на вашем компьютере под управлением Windows? Если да, то какие? Какой URL (ы) вы хотите работать, вместо этого? Windows должна позволить вам запускать Apache httpd прослушивание на порту 80 и, следовательно, не требуется номер порта (* после * имя хоста, а не раньше). –

+0

Все, что я ищу, это реализовать что-то вроде www.myapp.com вместо localhost: 8080/index.html. Мое приложение работает на порту 8080. После того, как вышеуказанные изменения конфигурации, я могу получить доступ к приложению с www.myapp.com:8080. Я хочу исключить 8080 из URL. –

ответ

1

Номера в вашем порту должны быть точны: Tomcat прослушеет 8080 и Apache httpd прослушеет 80. Если вы хотите http://www.myapp.com/, чтобы перейти к веб-приложение, то вам придется настроить конфигурацию ProxyPass:

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

Эта конфигурация не является допустимым, так как ProxyPassReverse требует два аргумента. Я думаю, что вы хотите что-то вроде этого:

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

Если вы выше, то все будет проксированным-к Tomcat. (На этом этапе стоит спросить себя, почему вы беспокоитесь об Apache httpd вообще, так как все проксируется). Вы также захотите установить proxyPort на 80 в <Connector> в server.xml.

Если вы хотите /index.html работать, а не показать вам «успеха» страницу Tomcat, которая поставляется вместе с ним, то вам необходимо переименуйте свой веб-приложение от MyAppPath к ROOT (случай имеет значение: оно должно быть в верхнем регистре) , Просто переименуйте каталог своего веб-сайта в ROOT или ваш файл WAR на ROOT.war, и вам должно быть хорошо идти.

Если вы просто хотите использовать порт 80 и не нуждаются в Apache HTTPD для чего-нибудь еще, то просто изменить для Tomcat server.xml, чтобы ваш <Connector> для порта 8080, вместо этого используется порт 80, и удалить Apache HTTPD из смеси в целом.

0

Ваша проблема

http://192.9.200.192:8080/myService/my/BaseService/base

ОТКРЫТЫЙ

C: \ Program Files \ Apache Software Foundation \ Tomcat 7.0 \ конф \ sever.xml

<Connector port="8080" protocol="HTTP/1.1" 
       connectionTimeout="20000" 
       redirectPort="8443" /> 

EDIT

<Connector port="80" protocol="HTTP/1.1" 
       connectionTimeout="20000" 
       redirectPort="8443" /> 

открыт Настройка из меню кота запуска, если условия эксплуатации остановки перезапустить его (остановку -> старта) URL

вызова как этого

http://192.9.200.192/myService/my/BaseService/base

Проблема решены!

Смежные вопросы