Difference between revisions of "WebServer - Name-based Virtual Host Support"

From The TinkerNet Wiki
Jump to navigation Jump to search
Line 22: Line 22:
 
  <VirtualHost *:80>
 
  <VirtualHost *:80>
 
     ServerName foo.bar
 
     ServerName foo.bar
     Redirect permanent / https://www.foo.bar/
+
     Redirect permanent / <nowiki>https://www.foo.bar/</nowiki>
 
  </VirtualHost>
 
  </VirtualHost>
 
   
 
   
 
  <VirtualHost *:80>
 
  <VirtualHost *:80>
 
     ServerName www.foo.bar
 
     ServerName www.foo.bar
     Redirect permanent / https://www.foo.bar/
+
     Redirect permanent / <nowiki>https://www.foo.bar/</nowiki>
 
  </VirtualHost>
 
  </VirtualHost>
 
   
 
   
Line 46: Line 46:
 
  <VirtualHost *:80>
 
  <VirtualHost *:80>
 
     ServerName wiki.foo.bar
 
     ServerName wiki.foo.bar
     Redirect permanent / https://wiki.foo.bar/
+
     Redirect permanent / <nowiki>https://wiki.foo.bar/</nowiki>
 
  </VirtualHost>
 
  </VirtualHost>
 
   
 
   
Line 65: Line 65:
 
  <VirtualHost *:80>
 
  <VirtualHost *:80>
 
     ServerName proxy.foo.bar
 
     ServerName proxy.foo.bar
     Redirect permanent / https://proxy.foo.bar/
+
     Redirect permanent / <nowiki>https://proxy.foo.bar/</nowiki>
 
  </VirtualHost>
 
  </VirtualHost>
 
   
 
   
Line 80: Line 80:
 
   
 
   
 
     # Redirect HTTPS traffic
 
     # Redirect HTTPS traffic
     ProxyPass / https://proxy.foo.bar/
+
     ProxyPass / <nowiki>https://proxy.foo.bar/</nowiki>
     ProxyPassReverse / https://proxy.foo.bar/
+
     ProxyPassReverse / <nowiki>https://proxy.foo.bar/</nowiki>
 
   
 
   
 
     SSLCertificateFile /etc/letsencrypt/live/proxy.foo.bar/fullchain.pem
 
     SSLCertificateFile /etc/letsencrypt/live/proxy.foo.bar/fullchain.pem

Revision as of 16:55, 28 June 2020

This page was created while splitting my original webserver from a single name to 3 names to make access easier. I moved the wikis to their own subdomains. At some point, I really should clean this page up to make it clearer...

(i.e.: moving it from test.tinkernow.net/wiki to wiki.tinkernow.net)
sudo vim /var/www/LocalSettings.php


NOTE: It is probably smartest to put the VirtualHost sections in separate files in the /etc/apache2/sites-available/ folder, then make symbolic links to them in /etc/apache2/sites-enabled This will simplify maintenance down the road...

But, if you really want to, they can simply be added to /etc/apache2/apache2.conf

A sample set of files for /etc/apache2/sites-available:

  • www.foo.bar.conf
#########################
# WWW.foo.bar           #
#########################

<VirtualHost *:80>
    ServerName foo.bar
    Redirect permanent / https://www.foo.bar/
</VirtualHost>

<VirtualHost *:80>
    ServerName www.foo.bar
    Redirect permanent / https://www.foo.bar/
</VirtualHost>

<VirtualHost _default_:443>
    ServerName www.foo.bar
    DocumentRoot "/var/www/html"
    SSLCertificateFile /etc/letsencrypt/live/www.foo.bar/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/www.foo.bar/privkey.pem
    Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
  • wiki.foo.bar.conf
#########################
# Wiki.foo.bar          #
#########################

<VirtualHost *:80>
    ServerName wiki.foo.bar
    Redirect permanent / https://wiki.foo.bar/
</VirtualHost>

<VirtualHost _default_:443>
    ServerName wiki.foo.bar
    DocumentRoot "/var/www/wiki"
    SSLCertificateFile /etc/letsencrypt/live/wiki.foo.bar/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/wiki.foo.bar/privkey.pem
    Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
  • proxy.foo.bar.conf
##################################
# Proxy for T110.foo.CA    #
##################################

<VirtualHost *:80>
    ServerName proxy.foo.bar
    Redirect permanent / https://proxy.foo.bar/
</VirtualHost>

<VirtualHost _default_:443>
    ServerName proxy.foo.bar
    ProxyRequests on
    SSLEngine On
    SSLProxyEngine On
    ProxyPreserveHost On

    # Redirect WSS traffic (Needed if this is a proxy for ESXi)
    ProxyPass /ticket/ wss://proxy.foo.bar/ticket/
    ProxyPassReverse /ticket/ wss://proxy.foo.bar/ticket/

    # Redirect HTTPS traffic
    ProxyPass / https://proxy.foo.bar/
    ProxyPassReverse / https://proxy.foo.bar/

    SSLCertificateFile /etc/letsencrypt/live/proxy.foo.bar/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/proxy.foo.bar/privkey.pem
    <Proxy "*">
        Order allow,deny
        Allow from all
    </Proxy>
        ErrorLog /var/log/apache2/Proxy/proxy_log
        CustomLog /var/log/apache2/Proxy/proxy-access_log combined

</VirtualHost>

and restart Apache:

  • sudo service apache2 restart