← Back to team overview

sslug-teknik team mailing list archive

Apache, ProxyPass, virtuelle domæner og php...

 

Jeg vil gerne uddelegere nogle sub-domæner, sat op i Apache som virtuelle hosts, til en anden maskine på et LAN bag firewallen.

Så i min Apache (der sidder direkte på det farlige internet) definerer jeg først mine sub-domæner i httpd.conf:

<VirtualHost *>
  ServerName sub1.dom.dk
  ProxyPass / http://LAN_MASKINE1/
  ProxyPassReverse / http://LAN_MASKINE1/
</VirtualHost>
... osv. for sub2/3/4...

hvor LAN_MASKINE1/2/3/4... er defineret i /etc/hosts (og alle er sat til samme ip).


På LAN_MASKINE har jeg så følgende defineret i httpd.conf:

<VirtualHost *>
  ServerName LAN_MASKINE1
  DocumentRoot /var/www/html/phpapp1
</VirtualHost>
...osv for LAN_MASKINE1/2/3/4...

Det virker som en lidt bøvlet måde at gøre det på (da jeg skal definere den samme maskine flere gange med forskellige navne i /etc/hosts) men det virker til gengæld fint med statiske sider.

Nu er problemet blot at de php-applikationer der skal køre på LAN_MASKINE bruger URL til at sætte base-adressen i HTML-koden, så i html koden kommer der til at stå <base href="LAN_MASKINE1"> hvilket naturligvis ikke virker når man så trykker videre på HTML siderne.

Er der en måde at fortælle apache at den skal kalde php-applikationen med en URL der er den "originale" URL? mod_rewrite kan vel ikke gøre det, da denne blot omskriver URL'en (og man dermed kommer tilbage til den første maskine, osv, osv)...

Med venlig hilsen Preben


Follow ups