Hosten Sie mehrere Domänen auf einem Server oder einer IP mit Apache oder Nginx
Lassen Sie uns lernen, wie Sie Apache und Nginx so konfigurieren, dass mehrere Websites gehostet werden.
Hosting-Sites auf der Cloud-Server gibt viel Flexibilität im Vergleich zu Shared Hosting. Sie können beliebig installieren, vergrößern oder verkleinern und für eine bessere Leistung und Kostenoptimierung konfigurieren.
Wenn Sie mehrere Business-Sites betreiben, diese aber nicht separat hosten möchten, können Sie dies nutzen Virtual Server
in Webservern. Schauen wir uns dieses Szenario an.
Ich habe die folgenden zwei Sites, die ich auf meine eine Cloud-VM verweisen möchte.
- lab.geekflare.com
- gf.dev
Lassen Sie uns vor der Implementierung verstehen, wie es funktioniert.
Das Konzept, mehrere Websites auf einer einzigen Webserverinstanz zu haben, wird aufgerufen Virtual Server
. Sie wird in der Konfigurationsdatei zusammen mit der URL definiert. Wenn eine Anfrage an eine definierte URL gestellt wird, würde der Webserver den Datenverkehr von der jeweiligen bedienen Document Root
.
Konfigurieren Sie Virtual Host in Apache, um mehrere Domänen zu hosten
- Melden Sie sich bei Apache HTTP Server an
- Gehen Sie zum Apache Conf-Speicherort. (In der Standardinstallation finden Sie diese hier /etc/httpd/conf/httpd.conf)
- Erstellen Sie eine Sicherungskopie der Datei httpd.conf
- Erstellen Sie
VirtualHost
Container wie unten habe ich für zwei Domains gemacht.
<VirtualHost *:80>
ServerAdmin mail@example.com
DocumentRoot /opt/htdocs/lab
ServerName lab.geekflare.com
ErrorLog logs/lab.geekflare.com-error_log
CustomLog logs/lab.geekflare.com-access_log common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin mail@xyz.com
DocumentRoot /opt/htdocs/gf-dev
ServerName gf.dev
ErrorLog logs/gf.dev-error_log
CustomLog logs/gf.dev-access_log common
</VirtualHost>
Hinweis: Ändern Sie den Wert für Serveradmin, DocumentRoot, Server, errorlog, Benutzerdefiniertes Protokoll basierend auf Ihrer Anforderung.
- Starten Sie Apache HTTP neu und testen Sie beide URLs.
Konfigurieren Sie den virtuellen Host in Nginx zum Hosten mehrerer Domänen
- Melden Sie sich beim Nginx-Server an
- Wechseln Sie zu dem Speicherort, an dem Sie Nginx installiert haben. (am Standardspeicherort - Sie finden es hier / etc / nginx /)
Es gibt mehrere Möglichkeiten, dies zu erreichen. Entweder können Sie ändern nginx.conf
Datei oder benutzerdefinierte Datei, wenn Sie welche haben. Sie können auch eine erstellen custom.conf
unter conf.d Ordner. Wählen Sie aus, was für Sie funktioniert, und erstellen Sie eine Sicherungskopie, wenn Sie eine vorhandene Datei ändern.
- Erstellen Sie einen Serverblock für beide URLs, wie unten gezeigt.
server {
listen 80;
root /opt/htdocs/lab;
index index.html index.htm;
server_name lab.geekflare.com;
location / {
try_files $uri $uri/ =404;
}
}
server {
listen 80;
root /opt/htdocs/gf-dev;
index index.html index.htm;
server_name gf.dev;
location / {
try_files $uri $uri/ =404;
}
}
Hinweis: Ändern Sie den Wert für Wurzel, Servername basierend auf Ihrer Anforderung.
- Starten Sie Nginx neu und testen Sie beide URLs
Vergessen Sie nicht, den DNS-Eintrag Ihrer URL zu aktualisieren, um ihn der Server-IP zuzuordnen. Sobald Sie fertig sind, sollten Sie in der Lage sein, auf die URLs zuzugreifen, die über die oben vorgenommene Konfiguration bereitgestellt werden.
Schlussfolgerung
Dies war die Kurzanleitung zum Hosten mehrerer Domänen in einer einzelnen Webserverinstanz wie Apache oder Nginx. Vergessen Sie nicht, sobald Ihre Website online ist Testen Sie es gegen Sicherheitslücken.