Apache HTTP (Linux): Unterschied zwischen den Versionen

Aus Tutorials
Zur Navigation springen Zur Suche springen
Zeile 118: Zeile 118:
==== Weiterleitung an einen anderen Server ====
==== Weiterleitung an einen anderen Server ====


[[Bind_Konfiguration_(Linux)#Einrichten_einer_Subdomain|Subdomain in Bind]]
Manchmal ist es erforderlich, Http(s)-Anfragen von außen an einen Server, der nur lokal erreichbar ist, weiter zu leiten.
In dem her beschriebenen Beispiel, ist die Webseite <code>test.<domain></code> sowohl lokal, als auch von außen, unter dem selben DNS-Namen erreichbar.
Im folgenden Beispiel habe ich das durch eine Subdomain <code>lokal.<domain></code> gelöst.
 
Für das Erstellen einer Subdomain siehe auch [[Bind_Konfiguration_(Linux)#Einrichten_einer_Subdomain|Subdomain in Bind]].


===== Weiterleitender Server =====
===== Weiterleitender Server =====

Version vom 27. Januar 2018, 15:42 Uhr

Installation

sudo apt-get -y install apache2 apache2-doc 

Optional Benutzer zur, von Apache genutzten, Gruppe www-data hinzufügen:

sudo usermod -aG www-data <user name>

Module

PHP

Bei libapache2-mod-php auf die richtige Version kontrollieren

Ubuntu-Server 16.04
sudo apt-get -y install php libapache2-mod-php7.0
Ubuntu-Server 14.04
sudo apt-get -y install php5 libapache2-mod-php5

SSL

sudo a2enmod ssl
sudo service apache2 restart

Konfiguration

Um die Warnung bezüglich Domainname zu unterdrücken, in der Datei /etc/apache2/apache2.conf am Ende folgende Zeile hinzufügen:

ServerName <domain name>

conf-available

Eine *.conf-Datei anlegen:

sudo touch /etc/apache2/conf-available/<conf name>.conf

Beispiel-Datei anhand der Seite phpMyAdmin:

Alias /phpmyadmin "/var/www/phpmyadmin/"
<Directory "/var/www/phpmyadmin">
    Options +FollowSymLinks
    AllowOverride All

    <IfModule mod_dav.c>
      Dav off
    </IfModule>

    SetEnv HOME /var/www/phpmyadmin
    SetEnv HTTP_HOME /var/www/phpmyadmin
</Directory>

Konfiguration aktivieren:

cd /etc/apache2/conf-available/
sudo a2enconf <conf name>.conf
sudo service apache2 reload

sites-available

Port 80 auf Port 443 weiterleiten

<VirtualHost *:80>
        ServerName <subdomain>.<domain>
        ServerAlias <subdomain>.<domain>
        Redirect / https://<subdomain>.<domain>
</VirtualHost>

Beispielkonfiguration für eine verschlüsselte Seite

<VirtualHost *:443>
        ServerName <subdomain>.<domain>

        SSLEngine on
        SSLCertificateFile /etc/ssl/certs/<subdomain>-apache.crt
        SSLCertificateKeyFile /etc/ssl/private/apache.key

        # Pfad zu den Webinhalten
        DocumentRoot /var/www/<subdomain>

        ErrorLog ${APACHE_LOG_DIR}/<subdomain>.<domain>-error.log
        CustomLog ${APACHE_LOG_DIR}/<subdomain>.<domain>-access.log combined
</VirtualHost>

Weiterleitung an einen anderen Server

Manchmal ist es erforderlich, Http(s)-Anfragen von außen an einen Server, der nur lokal erreichbar ist, weiter zu leiten. In dem her beschriebenen Beispiel, ist die Webseite test.<domain> sowohl lokal, als auch von außen, unter dem selben DNS-Namen erreichbar. Im folgenden Beispiel habe ich das durch eine Subdomain lokal.<domain> gelöst.

Für das Erstellen einer Subdomain siehe auch Subdomain in Bind.

Weiterleitender Server
<VirtualHost *:443>
	ServerName test.<domain>
    
	SSLProxyEngine On
	ProxyPass / https://test.local.<domain>
	ProxyPassReverse / https://test.local.<domain>

	SSLProxyCheckPeerName off
	SSLProxyCheckPeerCN off

	SSLEngine on
	SSLCertificateFile /etc/ssl/certs/test.crt
	SSLCertificateKeyFile /etc/ssl/private/apache.key
</VirtualHost>
Zielserver
<VirtualHost *:443>
	ServerName nctest.<domain>
	ServerAlias nctest.local.<domain>

        ...
</VirtualHost>

Konfiguration aktivieren

cd /etc/apache2/sites-available/
sudo a2ensite <conf name>.conf
sudo service apache2 reload

Fehlermeldungen

You don't have permission to access <url> on this server.

Das kann daran liegen, dass sich die Folder-Konfiguration von Apache 2.2 auf Apache 2.4 geändert hat.

Konfiguration in Apache 2.2:

<Directory>
  ...
  Order allow,deny
  Allow from all
  ...
</Directory>

Konfiguration in Apache 2.4:

</Directory>
  ...
  Require all granted
  ...
</Directory>


Zurück zu Ubuntu