GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So richten Sie Nginx-Serverblöcke unter Ubuntu und CentOS ein

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.


Cent OS
  1. So richten Sie Nginx als Reverse Proxy unter Ubuntu 20.04 ein

  2. DHCP-Server auf CentOS 8 einrichten – wie geht das?

  3. So richten Sie NFS-Server und -Client unter Ubuntu 20.04 ein

  4. So aktivieren Sie HTTP/2 in Nginx unter Ubuntu und CentOS

  5. So ändern Sie den Hostnamen unter CentOS und Ubuntu

So installieren Sie Nginx unter CentOS

So richten Sie einen OpenVPN-Server unter Ubuntu 22.04 ein und konfigurieren ihn

So installieren und konfigurieren Sie Gitlab CE Server auf Centos 8

So installieren Sie Nginx unter CentOS 6

So richten Sie einen DHCP-Server unter CentOS 8 ein

So richten Sie NFS-Server und -Client unter CentOS 8 ein