如何用apache 2.2创建代理?

时间:2014-03-09 10:04:27

标签: apache tomcat proxy

我在Tomcat上部署了一个Web应用程序。所以我的网址可以通过网址http // localhost:8080 / myapp访问。 Tomcat安装在我的电脑上。我已经安装了Apache 2.2(xampp),因为我想创建一个代理。我的目标是构建一个代理,以便具有以下用例:

1. http://127.0.0.1:8080/myapp =>显示我的网络应用(现在)

2. http://mysuperapp.com/myapp =>显示我的网络应用(此处http请求由我的http://localhost:8080/myapp处理,导航器始终显示网址http://mysuperapp.com/myapp)。

这是我使用的配置: httpd.conf:

...various non-proxy-related modules omitted...
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_html_module modules/mod_proxy_html.so
LoadModule proxy_http_module modules/mod_proxy_http.so

<VirtualHost *:80>
   ServerName   mysuperapp.com
   ProxyPass        / http://localhost:8080/
   ProxyPassReverse / http://localhost:8080/
   ProxyPassReverseCookieDomain localhost mysuperapp.com
   ProxyPreserveHost On
</VirtualHost>

当我尝试使用url mysuperapp.com/myapp时,我无法看到我的webapp。这有什么不对吗?

1 个答案:

答案 0 :(得分:0)

我假设mysuperapp.com正确解析为运行apache的计算机?只需在apache的配置中提及服务器名称,就不能以该名称访问它。

Apache是​​否与tomcat在同一台计算机上运行?如果没有,你就不能使用http://localhost:8080/,但是必须给出你的tomcat可以被Apache访问的名称(例如,登录到运行Apache的计算机并从那里的浏览器访问你的webapp。如果它是无头的服务器,使用lynx或w3m - 这些是基于shell(文本模式)的浏览器。

如果不是上述任何原因,请进一步说明“我无法看到我的网络应用程序”:您能看到什么?

修改:我已经看到您对此答案进行了一些(主持人拒绝)修改:您应该将这些评论添加为此答案下方的“评论”。

从这些编辑中我感觉你将不得不在DNS方面工作 - 例如你需要弄清楚如何在mysuperapp.com下提供你的Apache:到目前为止,你已经将它配置为正确回复如果已经在该域名下达成,但似乎一般名称解析不指向它:尝试ping mysuperapp.com。如果这不能解析为Apache的IP地址,则无需担心其他任何问题。