From aff38fdd3e45af796ce0b06965192852e93dbeeb Mon Sep 17 00:00:00 2001 From: Daniel Berteaud Date: Sun, 1 Oct 2017 15:19:18 +0200 Subject: [PATCH] Allow custom ProxyPass rules on domains --- .../httpd/conf/httpd.conf/WebAppVirtualHost/50Content | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/WebAppVirtualHost/50Content b/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/WebAppVirtualHost/50Content index 8df672b..a16c577 100644 --- a/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/WebAppVirtualHost/50Content +++ b/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/WebAppVirtualHost/50Content @@ -20,6 +20,18 @@ my @groups = split(/[;,]/, ($domain->prop('AllowGroups') || '')); my $ssl_port = $modSSL{'TCPPort'} || '443'; my $proto = ($port eq $ssl_port ) ? 'https' : 'http'; my $socketio = $domain->prop('ProxySocketIO') || 'disabled'; +my @proxyrules = split /[,;]/, ($domain->prop('ProxyPassRules') || ''); + +# Custom proxypass rules +foreach my $rule (@proxyrules){ + my ($from, $to) = split /=/, $rule; + $OUT .= " ProxyPass $from $to\n"; +} + +if (@proxyrules > 0 || $target =~ m|https?://[\d\w\.\-/]*|){ + $OUT .= " ProxyPreserveHost on\n" if ($preserve eq 'yes'); + $OUT .= " RequestHeader set X-Forwarded-Proto \"$proto\"\n"; +} # ProxyPass ? if ($target =~ m|https?://[\d\w\.\-/]*|){ @@ -51,12 +63,10 @@ if ($target =~ m|https?://[\d\w\.\-/]*|){ _EOF - } + } $OUT .= " ProxyPass / $target\n"; $OUT .= " ProxyPassReverse / $target\n"; } - $OUT .= " ProxyPreserveHost on\n" if ($preserve eq 'yes'); - $OUT .= " RequestHeader set X-Forwarded-Proto \"$proto\"\n"; } # Rewrite ? elsif ($rewrite =~ m|https?://[\d\w\.\-/]*|){