3

在我的笔记本电脑上,使用 Apache

我在笔记本电脑的不同目录中有不同的网络应用程序,我可以开始使用简单的网络服务器监听不同的端口。例如

~/app1/./app.pl
>> listening on http://localhost:3000/

~/app2/./app.pl
>> listening on http://localhost:3001/

~/app3/./app.pl
>> listening on http://localhost:3001/

我想像这样从我的浏览器访问上述内容

http://localhost/app1
http://localhost/app2
http://localhost/app3

我可以使用 mod_proxy 执行上述操作吗?如果是这样,怎么做?

更新:我必须补充一点,我已经用谷歌搜索了 mod_proxy,阅读了 Apache 网站上的教程,并尝试了以下内容

在我的 httpd.conf 中取消注释以下内容

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so

在我的 httpd.conf 中添加了以下内容

<IfModule mod_proxy.c>
    ProxyRequests On
    ProxyPass /app1 http://localhost:3000/
    ProxyPassReverse /app1 http://localhost:3000/
    ProxyPass /app2 http://localhost:3001/
    ProxyPassReverse /app2 http://localhost:3001/
    ProxyPass /app3 http://localhost:3002/
    ProxyPassReverse /app3 http://localhost:3002/
</IfModule>

然而,当我尝试访问上述应用程序时,我得到了 HTTP 404。

4

2 回答 2

2

我会使用 mod_rewrite 和 mod_proxy 来做到这一点。例如(以下规则进入您的 VirtualHost 配置):

RewriteEngine On
RewriteRule ^/app1(.*)$ http://localhost:3000/$1 [P]
RewriteRule ^/app2(.*)$ http://localhost:3001/$1 [P]
RewriteRule ^/app3(.*)$ http://localhost:3002/$1 [P]

这些规则使用 mod_rewrite 的[P]标志来代理请求。您需要通过添加/取消注释来确保 mod_proxy、mod_proxy_http 和 mod_rewrite 都加载到您的主 apache 配置中:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule rewrite_module modules/mod_rewrite.so
于 2010-03-08T17:30:53.303 回答
0

是的你可以。谷歌搜索“mod_proxy 教程”有很多结果......

如果您的服务器支持 AJP 协议,您尤其需要使用 mod_proxy_ajp。(例如 Tomcat。)

于 2010-03-08T17:28:22.733 回答