Was sind die Hauptanwendungsszenarien in Nginx?

PHPz
Freigeben: 2023-05-16 14:55:17
nach vorne
1536 Leute haben es durchsucht

    Hauptanwendungsszenarien von Nginx

    Statische Website-Bereitstellung

    nginx ist ein http-Web Der Server kann statische Dateien (HTML, CSS, Bilder) auf dem Server über das HTTP-Protokoll an den Browser-Client zurückgeben.

    Zum Beispiel: Wir stellen eine statische Ressource index.html auf dem Server bereit

    Was sind die Hauptanwendungsszenarien in Nginx?

    Index.html auf Linux hochladen /opt /www/test

    Was sind die Hauptanwendungsszenarien in Nginx?

    Ändern Sie nginx.conf und fügen Sie einen Speicherort hinzu, um die /test-Anfrage abzufangen Root-Pfad. Das heißt, der /slash vor /test

    location /test {
                root   /opt/www;
                index  index.html;
            }
    Nach dem Login kopieren

    Starten Sie Nginx oder laden Sie Nginx neu : http://192.168.253.130/test/

    Was sind die Hauptanwendungsszenarien in Nginx?

    Lastausgleich

    Der Lastausgleich kann in Hardware-Lastausgleich unterteilt werden und Software-Lastausgleich Was sind die Hauptanwendungsszenarien in Nginx?

    Hardware-Lastausgleich wie F5, Sangfor, Array usw. hat den Vorteil, dass er vom professionellen Team des Herstellers unterstützt wird und eine stabile Leistung aufweist; der Nachteil ist, dass er teuer ist; 🎜🎜#

    Software-Lastausgleich wie Nginx, LVS, HAProxy usw. haben den Vorteil, dass sie kostenlos und Open Source sind und kostengünstig sind.

    Abfragemethode: Anfragen dem zuordnen Die Back-End-Server werden der Reihe nach behandelt. Dabei wird jeder Back-End-Server ausgewogen behandelt, ohne sich um die tatsächliche Anzahl der Verbindungen zum Server und die aktuelle Systemlast zu kümmern.

    http {
        upstream test{
        ##后端实际服务器 nginx在轮询访问以下几台服务器
            server 10.100.30.1:8080;
            server 10.100.30.2:8080;
            server 10.100.30.3:8080;
            server 10.100.30.4:8080;
        }
        server {
        ##前端拦截入口
            listen 80;
            server_name www.test.com;
            location / { 
                proxy_pass http://test;
            }
        }
    }
    Nach dem Login kopieren

    Gewichtete Abfragemethode: Verschiedene Backend-Server können unterschiedliche Maschinenkonfigurationen und aktuelle Systemlasten haben, daher ist auch ihre Druckfestigkeit unterschiedlich.

    Weisen Sie Maschinen mit hoher Konfiguration und geringer Auslastung höhere Gewichtungen zu, damit diese mehr Anfragen bearbeiten können. Weisen Sie Maschinen mit niedriger Konfiguration und hoher Auslastung niedrigere Gewichtungen zu, um deren Systemleistung zu verringern dies gut und verteilt Anfragen sequentiell und gewichtet an das Backend.

    http {
        upstream test{
        ##后端实际服务器 nginx在轮询访问以下几台服务器
            server 10.100.30.1:8080 weight=1;
            server 10.100.30.2:8080 weight=3;
            server 10.100.30.3:8080 weight=1;
            server 10.100.30.4:8080 weight=1;
        }
        server {
        ##前端拦截入口
            listen 80;
            server_name www.test.com;
            location / { 
                proxy_pass http://test;
            }
        }
    }
    Nach dem Login kopieren

    Quelladresse-Hash-Methode: Basierend auf der IP-Adresse des Clients wird ein Wert über die Hash-Funktion berechnet und der Wert wird verwendet, um die Größe der Serverliste zu modulieren. Das Ergebnis ist Kundenservice Die Seriennummer des Servers, auf den der Client zugreifen möchte.

    Mit der Quelladress-Hash-Methode für den Lastausgleich wird ein Client mit derselben IP-Adresse jedes Mal demselben Backend-Server für den Zugriff zugeordnet, wenn die Backend-Serverliste unverändert bleibt.

    upstream test{
            ip_hash;
            server 10.100.30.1:8080 weight=1;
            server 10.100.30.2:8080 weight=3;
            server 10.100.30.3:8080 weight=1;
            server 10.100.30.4:8080 weight=1;
        }
    Nach dem Login kopieren

    Methode der minimalen Anzahl von Verbindungen: Da die Konfiguration des Back-End-Servers unterschiedlich ist, kann die Anforderungsverarbeitung schneller oder langsamer sein. Die Methode der minimalen Anzahl von Verbindungen wählt dynamisch eine davon basierend auf aus Der aktuelle Verbindungsstatus des Back-End-Servers verarbeitet die aktuelle Anforderung, verbessert die Auslastungseffizienz des Back-End-Dienstes so weit wie möglich und verteilt die Verantwortung angemessen auf jeden Server.

    upstream test{
            least_conn;
            server 10.100.30.1:8080;
            server 10.100.30.2:8080;
            server 10.100.30.3:8080;
            server 10.100.30.4:8080;
        }
    Nach dem Login kopieren

    down: Zeigt das Stoppen eines bestimmten Dienstes an.

    upstream test{
            server 10.100.30.1:8080 down;
            server 10.100.30.2:8080;
            server 10.100.30.3:8080;
            server 10.100.30.4:8080;
        }
    Nach dem Login kopieren

    backup: Gibt den Backup-Server an, solange andere Server normal darauf zugreifen können Wenn nicht darauf zugegriffen werden kann, wird der Sicherungsserver nur verwendet, wenn andere Server ausgefallen sind. Daher wird diese Methode im Allgemeinen verwendet, um den Code zuerst auf dem Sicherungsserver zu aktualisieren und dann den normalen Server zu stoppen Der normale Server ist abgeschlossen, der Backup-Server Der Server befindet sich wieder im Wartezustand und der gesamte Bereitstellungsprozess ermöglicht Benutzern keine Ausfallzeiten.

    upstream test{
            server 10.100.30.1:8080 backup;
            server 10.100.30.2:8080 backup;
            server 10.100.30.3:8080;
            server 10.100.30.4:8080;
        }
    Nach dem Login kopieren

    statischer Proxy

    • Statisch und dynamisch Trennung# Nginx-Nutzungsszenarien und Beispiele

      Nginx ist ein leistungsstarker, hochparalleler HTTP-Server und Reverse-Proxy-Server, der in einer Vielzahl von Szenarien wie statischen Ressourcenservern, Load Balancern und Reverse verwendet werden kann Proxys, Cache-Server und Webserver.
    • Im Folgenden finden Sie mehrere Verwendungsszenarien und Beispiele:

      1. Statischer Ressourcenserver

      Wenn Nginx als statischer Ressourcenserver verwendet wird, wird Nginx direkt verwendet Gibt die angeforderte Datei zurück und entlastet dadurch den Webserver. Dieses Szenario wird normalerweise verwendet, um statische Dateidownloads oder den Zugriff auf große Dateien wie Videos bereitzustellen.
    • Das Folgende ist eine Beispiel-Nginx-Konfiguration:

      server {
          listen       80;
          server_name  example.com;
          location / {
              root   /usr/share/nginx/html;
              index  index.html index.htm;
          }
          location /images/ {
              alias /var/www/images/;
          }
          location /downloads/ {
              alias /var/www/downloads/;
          }
      }
      Nach dem Login kopieren
      In der obigen Konfiguration ordnet Nginx Anforderungen für den Zugriff auf das Stammverzeichnis (/) dem /usr/share/nginx zu /html-Verzeichnis Wenn eine Datei im Verzeichnis /images/ angefordert wird, wird Nginx dem Verzeichnis /var/www/images/ zugeordnet. Wenn eine Datei im Verzeichnis /downloads/ angefordert wird, wird Nginx dem Verzeichnis /var/ zugeordnet. www /downloads/-Verzeichnis.

      2. Reverse-Proxy
    Wenn Nginx als Reverse-Proxy-Server verwendet wird, leitet Nginx die Anfrage zur Verarbeitung an den Webserver weiter und gibt die Verarbeitungsergebnisse dann an den Client zurück .

    Dieses Szenario wird normalerweise verwendet, um einen Lastausgleich zu erreichen, die Sicherheit des Webservers zu verbessern, die tatsächliche IP des Webservers zu verbergen usw.

    Hier ist eine Beispiel-Nginx-Konfiguration:

    upstream backend {
        server backend1.example.com:8080 weight=3;
        server backend2.example.com:8080;
    }
    server {
        listen 80;
        server_name example.com;
        location / {
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
    Nach dem Login kopieren

    上述配置中,Nginx会将访问根目录(/)的请求转发给后端的Web服务器(backend1.example.com和backend2.example.com),其中backend1.example.com的权重为3,backend2.example.com的权重为1,表示backend1.example.com的处理能力更强。

    在转发请求时,Nginx还会设置HTTP头信息中的Host和X-Real-IP字段,从而隐藏Web服务器的真实IP。

    3.负载均衡器

    在使用Nginx作为负载均衡器时,Nginx会将请求均衡地分发到多个Web服务器上,从而实现高并发、高可用的服务。这种场景通常用于Web应用程序的集群部署、分布式系统的部署等。下面是一个示例Nginx配置:

    upstream backend {
        server backend1.example.com:8080;
        server backend2.example.com:8080;
        server backend3.example.com:8080;
    }
    server {
        listen 80;
        server_name example.com;
        location / {
        proxy_pass http://backend;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        }
    }
    Nach dem Login kopieren

    上述配置中,Nginx会将请求均衡地分发到三个Web服务器(backend1.example.com、backend2.example.com和backend3.example.com)上,从而实现负载均衡。

    在转发请求时,Nginx还会设置HTTP头信息中的Host和X-Real-IP字段,从而隐藏Web服务器的真实IP。

    4.缓存服务器

    在使用Nginx作为缓存服务器时,Nginx会缓存Web服务器返回的响应,从而减少对Web服务器的请求。这种场景通常用于提高Web应用程序的性能、降低Web服务器的负载等。下面是一个示例Nginx配置:

    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
    server {
    listen 80;
    server_name example.com;
        location / {
            proxy_cache my_cache;
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
    Nach dem Login kopieren

    上述配置中,Nginx会将Web服务器返回的响应缓存到/var/cache/nginx/my_cache目录下,并设置缓存有效期为60分钟。在缓存命中时,Nginx会直接返回缓存的响应,从而减少对Web服务器的请求。

    总之,Nginx具有很强的可扩展性和灵活性,可以根据不同的需求配置不同的使用场景。以上仅是一些示例,实际应用中还有很多其他的使用场景。

    5.反向代理服务器

    在使用Nginx作为反向代理服务器时,Nginx会将客户端请求转发到后端的Web服务器上,并将后端服务器返回的响应转发给客户端。这种场景通常用于隐藏后端服务器的真实IP、提高Web应用程序的可用性等。下面是一个示例Nginx配置:

    server {
        listen 80;
        server_name example.com;
        location / {
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
    Nach dem Login kopieren

    上述配置中,Nginx会将客户端请求转发到http://backend上,并设置HTTP头信息中的Host和X-Real-IP字段,从而隐藏后端服务器的真实IP。

    6.WebSocket服务器

    在使用Nginx作为WebSocket服务器时,Nginx会将客户端请求转发到后端的WebSocket服务器上,并实现WebSocket协议的连接管理。这种场景通常用于实时通信、游戏等应用程序。

    下面是一个示例Nginx配置:

    map $http_upgrade $connection_upgrade {
        default upgrade;
        '' close;
    }
    server {
        listen 80;
        server_name example.com;
        location / {
            proxy_pass http://backend;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
    Nach dem Login kopieren

    上述配置中,Nginx会将WebSocket请求转发到http://backend上,并设置HTTP头信息中的Upgrade、Connection、Host和X-Real-IP字段,从而实现WebSocket协议的连接管理。

    总之,Nginx具有很多的使用场景,可以根据不同的需求配置不同的服务器功能。以上仅是一些示例,实际应用中还有很多其他的使用场景。

    Das obige ist der detaillierte Inhalt vonWas sind die Hauptanwendungsszenarien in Nginx?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Verwandte Etiketten:
    Quelle:yisu.com
    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!