For starters I use Proxmox to virtualize several machines. Now I want my main machine to redirect the traffic accordingly based on the servername. I had the setup working once, but now somehow it won't work.
my default host:
00_proxmox_domain_com.conf
NameVirtualHost *:80
<VirtualHost *:80>
ServerName proxmox.domain.com
ServerName *.proxmox.domain.com
#RewriteLog "/root/rewrite.log"
#RewriteLogLevel 10
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
RewriteCond %{REQUEST_URI} !^/nrd/
RewriteCond %{REQUEST_URI} !^/images/
RewriteCond %{REQUEST_URI} !^/css/
RewriteCond %{REQUEST_URI} !^/javascript/
RewriteCond %{REQUEST_URI} !^/vncterm/
RewriteCond %{REQUEST_URI} !^/.*\.js$
RewriteCond %{REQUEST_URI} !^/login.pl$
RewriteCond %{HTTP_HOST} ^proxmox\.domain\.com$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [L,R]
</VirtualHost>
Then I have several similar virtualhost, (currently only this one is activated) This should send the visitor to PHPMyAdmin on virtual server with IP 192.168.1.13
02_pma_domain_com.conf
<VirtualHost *:80>
ServerName pma.domain.com
ServerName *.pma.domain.com
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://192.168.1.13/
ProxyPassReverse / http://192.168.1.13/
</VirtualHost>
And there is the Proxmox virtual hostfile
pve.conf
<IfModule mpm_prefork_module>
StartServers 2
MinSpareServers 1
MaxSpareServers 2
MaxClients 50
MaxRequestsPerChild 30
</IfModule>
ServerName localhost
ServerSignature Off
ServerTokens Prod
ServerAdmin root
AddDefaultCharset On
# Hint: Ajax use KeepAlive, which in effect disables MaxRequestsPerChild,
# so we need to disable KeepAlive to prevent exhaustive memory usage, or
# at least make sure that periodic updaters interval > KeepAliveTimeout
KeepAlive Off
DocumentRoot /usr/share/pve-manager/root
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /usr/share/pve-manager/root>
Options FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
LogLevel warn
# do not log access to our ajax services
SetEnvIf Request_URI "^/ws/" dontlog
CustomLog /var/log/apache2/access.log combined env=!dontlog
Alias /images/ /usr/share/pve-manager/images/
Alias /css/ /usr/share/pve-manager/css/
Alias /javascript/ /usr/share/javascript/
Alias /vncterm/ /usr/share/vncterm/
# avoid authentication when accessing favicon
Alias /favicon.ico /usr/share/pve-manager/images/favicon.ico
PerlModule Embperl
EMBPERL_SESSION_ARGS "config=DB_File Lock=Semaphore"
AddType text/html .epl
PerlRequire /usr/share/pve-manager/root/startup.pl
PerlSetVar PVESatisfy any
PerlSetVar PVEPath /
PerlSetVar PVELoginScript /login.pl
PerlTransHandler PVE::URLRewrite
Alias /nrd/ /__no_real_dir__/
<Directory "/usr/share/pve-manager/root">
AuthType PVE::AuthCookieHandler
AuthName PVE
PerlSetVar PVECookieName PVEAuthCookie
#PerlSetVar AuthCookieDebug 5
PerlAuthenHandler PVE::AuthCookieHandler->authenticate
PerlAuthzHandler PVE::AuthCookieHandler->authorize
require group root
DirectoryIndex index.htm index.pl
<FilesMatch ".*\.htm$">
EMBPERL_APPNAME PVE
EMBPERL_SYNTAX EmbperlBlocks
EMBPERL_OBJECT_BASE base.epl
EMBPERL_INPUT_ESCMODE 0
EMBPERL_ESCMODE 0
SetHandler perl-script
PerlHandler Embperl::Object
Options ExecCGI
</FilesMatch>
<FilesMatch ".*\.epl$">
Order allow,deny
Deny From all
</FilesMatch>
<FilesMatch ".*\.pl$">
SetHandler perl-script
PerlHandler ModPerl::Registry
Options +ExecCGI
</FilesMatch>
</Directory>
<Location /nrd/LOGIN>
AuthType PVE::AuthCookieHandler
AuthName PVE
PerlSetVar PVECookieName PVEAuthCookie
#PerlSetVar AuthCookieDebug 5
SetHandler perl-script
PerlHandler PVE::AuthCookieHandler->login
</Location>
<Location /ws/>
SetHandler perl-script
PerlHandler $PVE::HTMLServices::Obj->handler
</Location>
<VirtualHost *:443>
SSLEngine on
SSLProtocol all -SSLv2
SSLCertificateFile /etc/pve/pve-ssl.pem
SSLCertificateKeyFile /etc/pve/pve-ssl.key
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
</VirtualHost>
If you see an obvious error, please tell me.
If you have a working install of proxmox it would help if you could give me your pve.conf And if you've got the virtualhosts working one of those files would be most welcome.
I've tried several things to solve the problem, without any effect.
Found it, thanks to: Apache 2.2 ignoring VirtualDocumentRoot VirtualHosts?
There should be only one ServerName, and it can't contain any wildcards, you should use ServerAlias instead ;)