веб-приложения на локальном хосте через разные порты, доступ к которым осуществляется через порт 80 - PullRequest
3 голосов
/ 08 марта 2010

на моем ноутбуке, с 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? Если да, то как?

Обновление: я должен добавить, что у меня есть Googled для 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 при попытке доступа к вышеуказанным приложениям.

Ответы [ 2 ]

2 голосов
/ 08 марта 2010

Я бы сделал это, используя 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]

Эти правила используют флаг [P] mod_rewrite для прокси запроса. Вам нужно будет сделать убедитесь, что 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
0 голосов
/ 08 марта 2010

Да, вы можете. Поиск по учебнику "mod_proxy" дает множество результатов ...

В частности, вы захотите использовать mod_proxy_ajp, если ваш сервер поддерживает протокол AJP. (Например, Tomcat.)

...