删除http URL中的tomcat端口号

时间:2013-12-09 23:04:02

标签: apache http tomcat xampp vhosts

我在tomcat上托管了一个webapplication。我正在尝试实现我的webappname的URL重定向。所以,我在我的xampp安装的apache中使用了vhosts配置。

  

我的工具: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。

2 个答案:

答案 0 :(得分: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的{​​{1}}中将<Connector>设置为80。

如果您希望server.xml能够正常运行,而不是显示随附的Tomcat“成功”页面,那么您需要将您的网络应用从/index.html重新命名为MyAppPath (案件事项:必须是大写的)。只需将您的webapp目录重新命名为ROOT或将您的WAR文件重命名为ROOT,您就可以开始使用了。

如果您只想使用端口80并且不需要Apache httpd用于其他任何操作,那么只需更改Tomcat的ROOT.war,以便您的端口8080的server.xml改为使用端口80,并删除Apache httpd来自混合。

答案 1 :(得分:1)

你的问题

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

OPEN

C:\ Program Files \ Apache Software Foundation \ Tomcat 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" />

打开如果服务停止条件重新启动它(停止 - >开始)

,从开始菜单配置tomcat

像这样调用网址

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

问题解决了!