This isn't strictly mod_perl related, but it's defiantly something that people running a light/heavy setup using SSL must run into, and I can't seem to find very many good pointers about how to most easily handle this kind of situation (which I think would be a common sort of setup).
I'm in the process of moving about a half a dozen domains to a light/heavy setup with SSL being done on the light server and proxied to the backend on localhost. I've been trying to find a good way to minimize the potential to have inconsistencies in the configuration of the front, SSL, and backend servers, and it seems like the most obvious way to do that would be to use a single configuration file, using IfDefine's to specify what's supposed to be for who. This is an example of what the conf is looking like (simplified) <VirtualHost 10.10.81.130> ServerAdmin [EMAIL PROTECTED] DocumentRoot /www/htdocs/@-----.com ServerName -----.com <IfDefine !SSL> ErrorLog logs/-----.com-error_log CustomLog logs/-----.com-access_log combined </IfDefine> <IfDefine SSL> ErrorLog logs/-----.com-ssl-error_log CustomLog logs/-----.com-ssl-access_log combined SSLEngine on SSLCertificateFile /www/certs/-----.crt SSLCertificateKeyFile /www/certs/-----.key </IfDefine> <IfDefine FrontEnd> RewriteEngine On RewriteRule ^/(.*\.html)$ http://localhost:8080/$1 [P] </IfDefine> <IfDefine BackEnd> <FilesMatch "\.html$"> SetHandler modperl PerlResponseHandler Magic::TemplateHandler </FilesMatch> </IfDefine> </VirtualHost> <VirtualHost 10.10.81.131> ServerAdmin [EMAIL PROTECTED] DocumentRoot /www/htdocs/-----2.com ServerName -----2.com <IfDefine !SSL> ErrorLog logs/-----2.com-error_log CustomLog logs/-----2.com-access_log combined </IfDefine> <IfDefine SSL> ErrorLog logs/-----2.com-ssl-error_log CustomLog logs/-----2.com-ssl-access_log combined SSLEngine on SSLCertificateFile /www/certs/-----2.crt SSLCertificateKeyFile /www/certs/-----2.key </IfDefine> <IfDefine FrontEnd> RewriteEngine On RewriteRule ^/(.*\.html)$ http://localhost:8080/$1 [P] </IfDefine> <IfDefine BackEnd> <FilesMatch "\.html$"> SetHandler modperl PerlResponseHandler Magic::TemplateHandler </FilesMatch> </IfDefine> </VirtualHost> Now the problem is, is that the vhosts don't work on localhost (for obvious reasons) and I can't use <VirtualHost *> because the SSL servers won't work right. So what I was thinking of doing, was modifying apachectl to put the main configuration through a filter that would remove the IP's and replace them with <VirtualHost *>, and save that to disk, then use that conf file for the backend. mod_proxy has a setting to preserver the Host header of it's proxy requests to that of the original request, which should make pure name based vhosting work correctly on localhost. This seems like an 'ok', though potentially more complicated than necessary solution. What I was wondering is how other people have solved this? Does everyone just use totally separate configuration files? Something else? Any feedback or idea's would be appreciated.