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

From The TinkerNet Wiki
Jump to navigation Jump to search
Line 1: Line 1:
 
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...
 
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)<br>
+
(i.e.: moving it from test.tinkernow.net/wiki to wiki.tinkernow.net)
<code>sudo vim /var/www/LocalSettings.php</code>
+
 
 +
<br><code>sudo vim /var/www/LocalSettings.php</code>
  
 
*<code>#$wgServer = "http://test.tinkernow.net";</code>
 
*<code>#$wgServer = "http://test.tinkernow.net";</code>
Line 10: Line 11:
 
<big>'''NOTE:''' It is probably smartest to put the <code>VirtualHost</code> sections in separate files in the <code>/etc/apache2/sites-available/</code> folder, then make symbolic links to them in <code>/etc/apache2/sites-enabled</code> This will simplify maintenance down the road...</big>
 
<big>'''NOTE:''' It is probably smartest to put the <code>VirtualHost</code> sections in separate files in the <code>/etc/apache2/sites-available/</code> folder, then make symbolic links to them in <code>/etc/apache2/sites-enabled</code> This will simplify maintenance down the road...</big>
  
But, if you really want to, they can simply be added to <code>/etc/apache2/apache2.conf</code>
+
(But, if you really want to, they can simply be added to <code>/etc/apache2/apache2.conf)</code>
  
 
A sample set of files for <code>/etc/apache2/sites-available</code>:  
 
A sample set of files for <code>/etc/apache2/sites-available</code>:  
Line 60: Line 61:
  
 
  ##################################
 
  ##################################
  # Proxy for T110.foo.CA   #
+
  # Proxy for T110.foo.bar   #
 
  ##################################
 
  ##################################
 
   
 
   
Line 93: Line 94:
 
   
 
   
 
  </VirtualHost>
 
  </VirtualHost>
 +
 +
create the links
 +
 +
* <code>cd  /etc/apache2/sites-enabled</code>
 +
* <code>ln -s ../sites-available/www.foo.bar.conf ../sites-available/wiki.foo.bar.conf ../sites-available/proxy.foo.bar.conf .</code>
  
 
and restart Apache:  
 
and restart Apache:  
  
 
*<code>sudo service apache2 restart</code>
 
*<code>sudo service apache2 restart</code>

Revision as of 16:03, 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.bar    #
##################################

<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>

create the links

  • cd /etc/apache2/sites-enabled
  • ln -s ../sites-available/www.foo.bar.conf ../sites-available/wiki.foo.bar.conf ../sites-available/proxy.foo.bar.conf .

and restart Apache:

  • sudo service apache2 restart