Я использую сервер Apache httpd на Windows.Я использую это для запуска 2 колб приложений в разных портах, используя виртуальные хосты в httpd-vhosts.conf
.
<VirtualHost *:80>
ServerName ncapp01
ProxyPass /app1 http://ncapp01:8081/
ProxyPassReverse /app1 http://ncapp01:8081/
ProxyPass /app2 http://ncapp01:8080/
ProxyPassReverse /app2 http://ncapp01:8080/
</VirtualHost>
Listen 8081
<VirtualHost *:8081>
ServerName ncapp01
WSGIScriptAlias / "C:/Sites/app1/web.wsgi"
WSGIPassAuthorization On
DocumentRoot "C:/Sites/app1"
<Directory "C:/Sites/app1/">
Options +Indexes +Includes +FollowSymLinks +MultiViews +ExecCGI
AllowOverride All
Require local
</Directory>
</VirtualHost>
Listen 8080
<VirtualHost *:8080>
ServerName ncapp01
WSGIScriptAlias / "C:/Sites/app2/web.wsgi"
WSGIPassAuthorization On
DocumentRoot "C:/Sites/app2"
<Directory "C:/Sites/app2">
Options +Indexes +Includes +FollowSymLinks +MultiViews +ExecCGI
AllowOverride All
Require local
</Directory>
</VirtualHost>
Это успешно работает и перенаправляет /app1
в http://ncapp01:8081/
и /app2
в http://ncapp01:8080/
.Но нет никакого способа управлять внутренними ссылками.
Например, если есть ссылка <a href="/clients">view clients </a>
в app1
.
При нажатии она перенаправляется на http://ncapp01/clients
, а не http://ncapp01/app1/clients
.
Есть ли какой-нибудь способ выяснить, из какого приложения исходит этот запрос, и соответственно перенаправить без изменения всех ссылок в файлах?