2013-12-09 2 views
1

tomcat에 호스팅 된 웹 응용 프로그램이 있습니다. 내 webappname URL 리디렉션을 달성하기 위해 노력하고있어. 그래서, 내 xampp 설치의 아파치에서 vhosts 설정을 사용하고 있습니다.http URL에서 tomcat 포트 번호 제거

내 도구 : 톰캣, XAMPP, APACHE

변경 내가 만든 :

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

은 또한, 나는 도메인 이름을 요청했다. 바람둥이의 server.xml에서

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 

:

에서
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 :

012,351,641을 httpd.conf에서

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

이러한 구성을함으로써

<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 

, 내 매킨토시 컴퓨터의 기능을 달성했다. 그러나 문제는 Windows 서버에 있습니다. Windows 설치 구성 파일에서 동일한 변경을했습니다. PORT 번호를 건너 뛰지 않습니다. 내 애플 리케이션은 도메인 이름의 infront 포트 번호와 함께 작동합니다. 어떻게 만들 수 있습니까? http request on port 80 to redirect to tomcat port 8080

내가 원하는 것은 localhost : 8080/index.html 대신 www.myapp.com과 같은 것을 구현하는 것입니다. 내 응용 프로그램은 포트 8080에서 실행됩니다. 위의 구성이 변경되면 www.myapp.com:8080으로 응용 프로그램에 액세스 할 수 있습니다. 나는 URL에서 8080을 제거하고 싶다.

+0

Windows 컴퓨터에서 URL이 작동합니까? 그렇다면 어느 것입니까? 대신 어떤 URL을 사용 하시겠습니까? Windows에서는 포트 80에서 수신하는 Apache httpd를 시작할 수 있으므로 포트 번호가 필요하지 않습니다 (* 이전의 * 호스트 이름 이후 *). –

+0

내가 찾고있는 것은 localhost : 8080/index.html 대신 www.myapp.com과 같은 것을 구현하는 것이다. 내 응용 프로그램은 포트 8080에서 실행됩니다. 위의 구성이 변경되면 www.myapp.com:8080으로 응용 프로그램에 액세스 할 수 있습니다. 나는 URL에서 8080을 제거하고 싶다. –

답변

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으로 프록시 처리됩니다. (이 단계에서 여러분은 왜 아파치 웹 서버 에서 모든 것이인지 궁금해합니다. 모든 것이 프록시되기 때문입니다. <Connector>에서 proxyPort을 80으로 설정하고 server.xml으로 설정하는 것이 좋습니다.

당신이 /index.html 당신에게 그와 함께 제공되는 톰캣 "성공"페이지를 표시 일, 그리고하고 싶은 경우에, 당신은 MyAppPath에서 ROOT에 웹 애플리케이션을 다시 이름을 지정해야 (경우 중요한 : 그것은 대문자이어야 함) . 웹 응용 프로그램의 디렉토리 이름을 ROOT으로 다시 지정하거나 WAR 파일을 ROOT.war으로 바꾸십시오.

포트 80을 사용하고 Apache httpd가 필요하지 않은 경우 Tomcat의 server.xml을 변경하여 포트 8080을 사용하는 <Connector>이 대신 포트 80을 사용하고 Apache httpd를 모두 제거하십시오.

0

귀하의 문제

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

OPEN

C : \ 프로그램 파일 \ 아파치 소프트웨어 재단 \ 톰캣 7.0 \ conf의 \의 sever.xml

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

편집

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

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

문제처럼

통화 URL - 시작 메뉴에서 1,363,210

개방 구성 바람둥이는 서비스 정지 조건은 (> 시작, 중지) 다시 시작하면!