Apache vhost gibt zwei verschiedene Sites zurück

Apache vhost gibt zwei verschiedene Sites zurück

Ich habe zwei Subdomains auf dem Server konfiguriert (Haupt- und Staging-Domain) und für Staging werden zwei verschiedene Pfade zurückgegeben. Manchmal wird der korrekte Pfad zurückgegeben ( /var/www/html_staging), aber manchmal (wenn Sie den Webbrowser ein paar Mal aktualisieren oder wenn Sie auf eine Unterseite gehen) wird die Hauptwebsite zurückgegeben ( /var/www/html)

Apache 2.4 unter Ubuntu 16.04

Es gibt drei Vhost-Konfigurationen, zwei für die Hauptwebsite und eine für Staging. In der Vhost-Konfiguration für Port 80 gibt es eine Umleitung von http zu https.

000-default.conf:

<VirtualHost *:80>
    ServerName website.example.com
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
    ServerAdmin [email protected]
    DocumentRoot /var/www/html


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

Standard-SSL.conf:

<IfModule mod_ssl.c>
    <VirtualHost *:443>
        ServerAdmin [email protected]
        DocumentRoot /var/www/html
        ServerName website.example.com

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        SSLEngine on
        SSLCipherSuite ALL:!EXP:!NULL:!ADH:!LOW
        SSLCertificateFile /etc/apache2/ssl/*.example.com.crt
        SSLCertificateKeyFile /etc/apache2/ssl/*.example.com.key
        SSLCACertificateFile /etc/apache2/ssl/bundle.crt

        <FilesMatch "\.(cgi|shtml|phtml|php)$">
                SSLOptions +StdEnvVars
        </FilesMatch>
        <Directory /usr/lib/cgi-bin>
                SSLOptions +StdEnvVars
        </Directory>
    </VirtualHost>
</IfModule>

staging.conf:

<VirtualHost *:80>
    ServerName websitestaging.example.com
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
    ServerAdmin [email protected]
    DocumentRoot /var/www/html_staging

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


<IfModule mod_ssl.c>
    <VirtualHost _default_:443>
        ServerName websitestaging.example.com
        ServerAdmin [email protected]
        DocumentRoot /var/www/html_staging

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        SSLEngine on
        SSLCipherSuite ALL:!EXP:!NULL:!ADH:!LOW
        SSLCertificateFile /etc/apache2/ssl/*.example.com.crt
        SSLCertificateKeyFile /etc/apache2/ssl/*.example.com.key
        SSLCACertificateFile /etc/apache2/ssl/bundle.crt

    </VirtualHost>
</IfModule>

Ausgabe vonapache2ctl -S

VirtualHost configuration:
*:80                   is a NameVirtualHost
         default server website.example.com (/etc/apache2/sites-enabled/000-default.conf:1)
         port 80 namevhost website.example.com (/etc/apache2/sites-enabled/000-default.conf:1)
         port 80 namevhost websitestaging.example.com (/etc/apache2/sites-enabled/staging.conf:1)
*:443                  is a NameVirtualHost
         default server website.example.com (/etc/apache2/sites-enabled/default-ssl.conf:2)
         port 443 namevhost website.example.com (/etc/apache2/sites-enabled/default-ssl.conf:2)
         port 443 namevhost websitestaging.example.com (/etc/apache2/sites-enabled/staging.conf:15)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex ssl-stapling: using_defaults
Mutex ssl-cache: using_defaults
Mutex default: dir="/var/lock/apache2" mechanism=fcntl 
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
Mutex rewrite-map: using_defaults
Mutex ssl-stapling-refresh: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33

Was ist der Grund für dieses Verhalten? Warum lädt Staging die Website nur manchmal vom richtigen Pfad und manchmal vom Hauptpfad? Die Hauptwebsite wurde korrekt geladen, dies betrifft nur Staging.

Antwort1

Nur für den Fall, dass Sie das gleiche Problem haben wie oben beschrieben. Starten Sie einfach den gesamten Server neu, nicht nur Apache. Nach dem Neustart des Servers funktioniert alles ordnungsgemäß. Es gab wahrscheinlich eine Art Cache oder Konfiguration, die nicht ordnungsgemäß entfernt wurde und den gesamten Server beeinträchtigte.

verwandte Informationen