Virtueller Host leitet auf Standard um

943
Christia

Ich betreibe Debian und Apache.

Ich möchte eine neue Entwicklungsumgebung auf meinem Entwicklungsserver erstellen. Nennen wir es dev2. Derzeit hostet der dev-Server nur dev. Mein Produktionsserver hostet die Live-Site, auf die über zugegriffen werden kann *.example.com. Nachdem Sie die folgenden Schritte zum Einrichten dev2.example.comeines eigenen Dokuments ausgeführt haben, leitet die URL für dev2 dev.example.comdie Standard-Site auf dem Dev-Server weiter.

Hier sind die Schritte, die ich unternommen habe:

  • In unserem Hosting-Konto haben wir einen A-Eintrag www, um zur IP des Produktionsservers zu gelangen. Ein weiterer A-Eintrag für dev.example.comgeht an den Dev-Server und diese URL lädt die Standard-Dev-Website. Ich habe einen neuen A-Datensatz erstellt, um dev2auch auf die IP-Adresse des Dev-Servers zu verweisen.
  • Ich pingte dev2.example.com, um sicherzustellen, dass es funktionierte und es keinen Paketverlust gab.
  • Ich habe einen neuen Docroot und einen Dummy-Index erstellt: /var/www/html/dev2/docroot/index.html
  • Als Nächstes habe ich eine dev2.confDatei /etc/apache2/sites-availableerstellt und einen Symlink dazu erstellt /etc/apache2/sites-enabled.
  • Dann habe ich den Befehl ausgeführt sudo a2ensite dev2.confund den Apache über geladen service apache2 reload. Zuletzt habe ich den Cache des Browsers geleert und als dies nicht funktionierte, habe ich apache2 neu gestartet.

Was vermisse ich? Hier sind die Inhalte der dev2.confDatei.

<VirtualHost xxx.xxx.xxx.xxx:80> ServerAdmin tech@example.com ServerSignature email ServerName dev2.example.com DirectoryIndex index.php index.html index.htm index.shtml DocumentRoot /var/www/html/dev2/docroot HostNameLookups off RewriteEngine on  # Force SSL RewriteCond % ^dev2\.example\.com$ [NC] RewriteRule ^(.*)$ https://dev2.example.com$1 [L,R=301] RewriteCond % !=on RewriteRule ^(.*)$ https://dev2.example.com$1 [L,R=301]  # Force our domain name RewriteCond % !^dev2\.example\.com [NC] RewriteCond % !^$ RewriteRule ^/(.*) https://dev2.example.com/$1 [L,R]  <Directory /> Options FollowSymLinks AllowOverride None </Directory>  <Directory /var/www/html/dev2/docroot> Options Indexes FollowSymLinks MultiViews AllowOverride All Require all granted  # For friendly URLs RewriteEngine on RewriteBase / RewriteCond % !-f RewriteCond % !-d RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] </Directory>  ErrorLog $/error.log  # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn  CustomLog $/access.log combined </VirtualHost> 

Edit: Ich habe auch versucht, die Zeile ServerAlias dev2.example.comunter ServerName ohne Erfolg hinzuzufügen .

2
Stellen Sie hier die Zuweisungszeile für die IP-Adresse ein`zu``und starten Sie Apache dann wie folgt neu:` service apache2 graceful` anstelle von `reload`. JakeGould vor 7 Jahren 0

1 Antwort auf die Frage

2
HBruijn

Basierend auf der tatsächlichen Domäne, nach der Sie gefragt werden (jetzt redigiert, dargestellt durch example.com), haben Sie in Ihren aktuellen Konfigurationen etwas Durcheinander:

wget http: // dev .example.com
--2017-03-14 22: 20: 03-- http://dev.example.com/
Resolving dev.example.com ... 206.123.xxx.182
Anschluss an dev.example.com | 206.123.xxx. 182 |: 80 ... verbunden.
HTTP-Anfrage gesendet, wartet auf Antwort ... 301 dauerhaft verschoben Position
: http s : // dev2 .example.com / [following]

Aus irgendeinem Grund devleitet die einfache http-Site auf die https-Site für dev2. Permanente Weiterleitungen (301 Antworten) werden von den meisten Webbrowsern zwischengespeichert. Seien Sie daher bitte vorsichtig, wenn Sie alle vorgenommenen Konfigurationsänderungen testen. Testen Sie entweder mit Befehlszeilentools oder verwenden Sie für jeden Test ein neues privates Browserfenster ...

wget http: // dev2 .example.com
URL wurde aufgrund einer HSTS-Richtlinie in HTTPS umgewandelt.
--2017-03-14 22: 24: 45-- https://dev2.example.com/
Auflösen von dev2.example.com ... 206.123.xxx.182 Verbindung zu dev2 .example.com | 206.123.xxx.182 |: 443 ... verbunden.
HTTP-Anfrage gesendet, wartet auf Antwort ... 302 Gefundene
Position: http s : // dev .example.com / [following]

Die dev2Site macht etwas anderes als dev; Eine HSTS-Richtlinie wird angewendet, um auf HTTPS umzuleiten, und dann wird eine Weiterleitung (in diesem Fall eine temporäre 302-Weiterleitung) durchgeführt dev.

Zusammenfassend: devUmleitung auf dev2 und dev2Umleitung auf dev.

Sie müssen nicht nur die Konfiguration überprüfen, dev2sondern auch die Konfiguration für devsowohl den einfachen virtuellen HTTP-Host an Port 80 als auch die SSL Virtual Host-Konfiguration an Port 443.

Danke für deine Antwort. Beim Erstellen eines Symlinks in siteset /etc/apache2/sites-available/dev2.conf hatte ich einen Tippfehler eingegeben, so dass er zu sites-available / dev.conf umgeleitet wurde. Grüße. Christia vor 7 Jahren 0