3

On my laptop, with Apache

I have different web apps in various directories on my laptop, that I can start using simple webservers listening on different ports. For example

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

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

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

I want to access the above from my browser like so

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

Can I do the above with mod_proxy? If so, how?

Update: I must add that I have Googled for mod_proxy, read the tutes on Apache's website, and experimented with the following

uncommented the following in my 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

added the following in my 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>

Yet, I get HTTP 404 when I try to access the above apps.

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 に答える