我在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。
答案 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
问题解决了!