Archief - Apache reverse proxy configuratie per domein

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

passero

Legacy Member
Ik heb een server waar ik Glassfish op draai voor mijn JSF web applicaties.
Die luistert naar poort 81 en zit achter een firewall.
Op dezelfe machine staat apache (poort 80) waar ik reverse proxy gebruik. Dit werkt goed. Zo iets dus:

Code:
<VirtualHost *:80>
	ProxyPass /myapp http://localhost:81/myapp
	ProxyPassReverse /myapp http://localhost:81/myapp
</VirtualHost>

Nu zit ik met 2 applicaties op mijn glassfish:
localhost:81/app1 en
localhost:81/app2

Ik heb ook 2 domeinen geregistreerd domein1.com en domein2.com

Is er een manier om apache reverse proxy zodanig te configureren dat
domein2.com naar localhost:81/app2 gaat en
domein1.com naar localhost:81/app1 gaat?

Beide domeinen hun A-record zijn natuurlijk gelijk.

Normaal kan ik dat gemakkelijk oplossen door

Code:
<VirtualHost www.domein1.com:80>
	ProxyPass /myapp1 http://localhost:81/myapp1
	ProxyPassReverse /myapp1 http://localhost:81/myapp1
</VirtualHost>
<VirtualHost www.domein2.com:80>
	ProxyPass /myapp2 http://localhost:81/myapp2
	ProxyPassReverse /myapp2 http://localhost:81/myapp2
</VirtualHost>

Het probleem is dan dat ik domein1.com/myapp1 moet doen terwijl ik domein1.com wil hebben maar die config werkt niet in apache.

dJeez

Legacy Member
Je kan toch gewoon ProxyPass / en ProxyPassReverse / gebruiken ipv ProxyPass /myappX en ProxyPassReverse /myappX als je niet wil dat die onder een specifiek pad staan?

Dus :
Code:
<VirtualHost www.domein1.com:80>
	ProxyPass / http://localhost:81/myapp1
	ProxyPassReverse / http://localhost:81/myapp1
</VirtualHost>
<VirtualHost www.domein2.com:80>
	ProxyPass / http://localhost:81/myapp2
	ProxyPassReverse / http://localhost:81/myapp2
</VirtualHost>

passero

Legacy Member
Ik dacht dat dit niet werkt.
IK heb dat vroeger al eens geprobeerd en dat werkte niet dacht ik. De context root moet aan beide kanten gelijk zijn.

Kan ook zijn dat ik het aan het verwarren ben met Oracle OHS wat een uitbreiding is op Apache die ze gebruiken als http server voor hun app server.
Zal het nog eens proberen.

dJeez

Legacy Member
Als dat zo zou zijn kan je in principe rewrite rules gebruiken om alle inkomende URLs te herschrijven naar /myappX en ze dan pas door de proxy jagen (waar je dus nog steeds de /myappX paden hanteert zoals in je origineel)...

Maar vermoedelijk nog simpeler zou zijn de apps op verschillende poorten (en verschillende Glassfish instances) te laten draaien (met root context), zodat je die myapp1/myapp2 helemaal niet nodig hebt. Dat (in combinatie met proxy loadbalancer) heb ik indertijd gedaan om een Play! app beschikbaar te houden (er draaide steeds minimaal 1 instance van - handig voor updates - als ze allebei draaiden was er load balancing tussen beide).

cfr. http://serverfault.com/questions/28...pe-for-running-multiple-apps-on-a-single-host

*edit* Een voorbeeldje gevonden voor de RewriteRule aanpak :
http://www.rbecker.eu/2011/03/glassfish-v2-behind-apache-modproxy.html

passero

Legacy Member
Bedankt voor de info.
Die proxy balancer ga ik later nog nodig hebben maar voorlopig heb ik genoeg met 1 instance.
Pas als ik echt live ga zou ik de balancer nodig hebben maar als ik in alpha/beta ga wil ik wel de juiste URL's doorgeven aan testers.

Zal de mod rewrite gebruiken. Daar heb ik nog niet aan gedacht.

passero

Legacy Member
Heb wat zitten foefelen met de mod rewrite maar ben daar niet de sterkste in...

Deze config heb ik nu en ik krijg telkens een bad request terwijl als ik localhost/index in geef, de log zegt dat hij de url herschreven heeft naar app/faces/index.xhtml

Code:
<VirtualHost *:80>
	RewriteEngine on
	RewriteLog "c:/rewrite.log"
	RewriteLogLevel 7
	RewriteRule ^/?(.*)$ app/faces/$1.xhtml
	ProxyPass /app http://localhost:81/app
	ProxyPassReverse /app http://localhost:81/app
</VirtualHost>

Als ik alle rewrite rules weg doe kan ik er wel aan via localhost/app/faces/index.xhtml
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan