In diesem Tutorial geben wir Ihnen Schritt-für-Schritt-Anleitungen zum Einrichten von Nginx-Serverblöcken unter Ubuntu 16.04 und CentOS 7. Nginx-Serverblöcke werden häufig verwendet, um mehrere Websites unter einer einzigen IP-Adresse auszuführen.
Beachten Sie, dass dieses Tutorial nur für Nginx gilt. Wenn Sie Apache verwenden, müssen Sie Virtuelle Hosts einrichten
1. Nginx unter Ubuntu installieren
Stellen Sie sicher, dass Ihre Server-OS-Pakete vollständig auf dem neuesten Stand sind:
apt-get update apt-get upgrade
Beenden und entfernen Sie Apache und installieren Sie dann nginx mit den folgenden Befehlen:
service apache2 stop apt-get remove apache2 apt-get autoremove apt-get install nginx
Entfernen Sie die Standard-nginx-Konfigurationsdatei:
rm /etc/nginx/sites-enabled/default
Aktivieren Sie den nginx-Dienst, um beim Booten zu starten, und starten Sie ihn:
systemctl enable nginx systemctl start nginx.service
2. Nginx unter CentOS installieren
Stellen Sie sicher, dass alle Betriebssystempakete auf dem neuesten Stand sind, indem Sie die folgenden Befehle ausführen:
yum clean all yum update
Beenden und entfernen Sie Apache, wenn es auf Ihrem virtuellen Server installiert ist und ausgeführt wird:
systemctl stop httpd systemctl disable httpd yum remove httpd
Nginx installieren:
yum install nginx
Außerdem möchten Sie vielleicht PHP und MariaDB installieren, also führen Sie den folgenden Befehl aus:
yum install nginx mariadb mariadb-server php php-fpm php-cli php-curl php-gd php-mbstring php-mysql php-xml
Bearbeiten Sie die Konfigurationsdatei /etc/php-fpm.d/www.conf und ändern Sie:
user = apache group = apache
zu:
user = www-data group = www-data
Führen Sie den folgenden Befehl aus:
chown www-data: -R /var/lib/php/session
Starten Sie die Dienste PHP-FPM, Nginx und MariaDB und ermöglichen Sie ihnen, beim Booten zu starten:
systemctl start php-fpm systemctl start nginx systemctl start mariadb
systemctl enable php-fpm systemctl enable nginx systemctl enable mariadb
3. Nginx konfigurieren und Nginx-Serverblöcke einrichten
Lassen Sie uns die Kerndirektiven in der Hauptkonfigurationsdatei von nginx mit dem Namen „nginx.conf“ konfigurieren. Es sollte sich im Verzeichnis /etc/nginx/ auf Ihrem Server befinden.
vi /etc/nginx/nginx.conf
user www-data; worker_processes 4; pid /var/run/nginx.pid;
Benutzer – ein Benutzer, der den Nginx-Server besitzt und betreibt.
worker_processes – Im Allgemeinen ist es am besten, die nginx worker_processes-Konfiguration auf die Anzahl der CPUs einzustellen. Wenn Sie beispielsweise unseren SSD 4 VPS-Plan verwenden, setzen Sie worker_processes auf 4.
Um die Anzahl der CPUs auf Ihrem Server zu überprüfen, können Sie den folgenden Befehl verwenden:
#cat /proc/cpuinfo | grep processor | wc -l 4
pid – der Ort, an dem nginx seine Master-Prozess-ID oder PID schreibt.
Wenn Sie CentOS verwenden, erstellen Sie eine neue Nginx-Konfigurationsdatei für Ihre Website:
vi /etc/nginx/conf.d/domain1.com.conf
Fügen Sie den folgenden Inhalt hinzu:
server { server_name www.domain1.com domain1.com; listen 80; root /var/www/html/domain1.com; access_log /var/log/nginx/domain1.com-access.log; error_log /var/log/nginx/domain1.com-error.log; index index.php; location / { try_files $uri $uri/ /index.php?$args; } location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ { access_log off; expires max; } location ~ \.php$ { try_files $uri = 404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location ~ /\.ht { deny all; } }
Wenn Sie mehr als eine Website auf demselben Server (mit derselben IP-Adresse) hosten müssen, können Sie einen neuen Serverblock erstellen. Am besten erstellen Sie für jede Website eine neue Konfigurationsdatei.
Erstellen Sie beispielsweise eine zweite nginx-Konfigurationsdatei mit dem Namen /etc/nginx/conf.d/domain2.com.conf und fügen Sie denselben Inhalt wie /etc/nginx/conf.d/domain1.com.conf hinzu, stellen Sie jedoch sicher, dass Sie ihn ersetzen domain1.com mit dem zweiten Domainnamen, einschließlich des Dokumentenstammverzeichnisses Ihrer Website, Speicherort der Protokolldateien usw.:
server { server_name www.domain2.com domain2.com; listen 80; root /var/www/html/domain2.com; access_log /var/log/nginx/domain2.com-access.log; error_log /var/log/nginx/domain2.com-error.log; index index.php; location / { try_files $uri $uri/ /index.php?$args; } location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ { access_log off; expires max; } location ~ \.php$ { try_files $uri = 404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location ~ /\.ht { deny all; } }
Wenn Sie Ubuntu OS verwenden, erstellen Sie die nginx-Konfigurationsdatei „domain1.com.conf“ im Verzeichnis /etc/nginx/sites-available.
vi /etc/nginx/sites-enabled/domain1.com.conf
(Fügen Sie denselben Inhalt wie den oben aufgeführten Inhalt hinzu, d. h. /etc/nginx/conf.d/domain1.com.conf auf einem CentOS-Server).
Erstellen Sie dann einen symbolischen Link von dieser Datei zum Verzeichnis für aktivierte Websites:
ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Wiederholen Sie denselben Vorgang und erstellen Sie neue Konfigurationsdateien für alle anderen auf dem Server gehosteten Websites.
4. Testen Sie die Nginx-Konfiguration
nginx -t
Wenn der Test erfolgreich ist, starten Sie den Nginx-Dienst neu:
systemctl restart nginx
Laden Sie Ihre Website-Dateien in die Verzeichnisse /var/www/html/domain1.com , /var/www/html/domain2.com /var/www/html/domainN.com hoch.
Der Webserver-Benutzer (www-data) muss Zugriff auf die Verzeichnisse /var/www/html/domain1.com , /var/www/html/domain2.com , /var/www/html/domainN.com haben. Dies kann einfach durch Ausführen des folgenden Befehls erreicht werden:
chown -R www-data:www-data /var/www/html/
Natürlich müssen Sie nicht Nginx-Serverblöcke unter Ubuntu und CentOS einrichten, wenn Sie einen unserer Nginx-VPS-Hostingdienste verwenden. In diesem Fall können Sie einfach unsere erfahrenen Linux-Administratoren bitten, den Nginx-Server einzurichten Blöcke für dich. Sie sind 24×7 erreichbar und kümmern sich umgehend um Ihr Anliegen.
PS. Wenn Ihnen dieser Beitrag über die Einrichtung von Nginx-Serverblöcken unter Ubuntu und CentOS gefallen hat, teilen Sie ihn bitte mit Ihren Freunden in den sozialen Netzwerken über die Schaltflächen auf der linken Seite oder hinterlassen Sie einfach unten eine Antwort. Danke.