Maison > Opération et maintenance > Nginx > le corps du texte

Quels sont les principaux scénarios d'application dans Nginx ?

PHPz
Libérer: 2023-05-16 14:55:17
avant
1488 Les gens l'ont consulté

    Les principaux scénarios d'application de Nginx

    Déploiement de sites Web statiques

    nginx est un serveur Web http qui peut renvoyer des fichiers statiques (html, css, images) sur le serveur au client du navigateur via le protocole HTTP.

    Exemple : Nous déployons une ressource statique index.html sur le serveur

    Quels sont les principaux scénarios dapplication dans Nginx ?

    Téléchargez index.html sur Linux /opt/www/test

    Quels sont les principaux scénarios dapplication dans Nginx ?

    Modifiez nginx.conf pour ajouter un emplacement pour intercepter/tester la requête , le chemin /opt/www correspondant à root représente le chemin racine, c'est-à-dire la barre oblique / devant /test

    location /test {
                root   /opt/www;
                index  index.html;
            }
    Copier après la connexion

    Démarrez nginx ou rechargez nginx

    Quels sont les principaux scénarios dapplication dans Nginx ?

    Visitez : http://192.168.253.130/ test /

    Quels sont les principaux scénarios dapplication dans Nginx ?

    Équilibrage de charge

    L'équilibrage de charge peut être divisé en équilibrage de charge matériel et équilibrage de charge logiciel

    Équilibrage de charge matérielle, tel que F5, Sangfor, Array, etc. L'avantage est qu'il est pris en charge par le fabricant équipe professionnelle et a des performances stables ; l'inconvénient est le prix Cher

    Les logiciels d'équilibrage de charge, tels que Nginx, LVS, HAProxy, etc., ont l'avantage d'être gratuits, open source et peu coûteux

    Méthode d'interrogation : attribuer les requêtes à les serveurs back-end tour à tour dans l'ordre, et il traite chaque serveur back-end de manière égale, quel que soit le nombre réel de connexions au serveur et la charge actuelle du système.

    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;
            }
        }
    }
    Copier après la connexion

    Méthode d'interrogation pondérée : différents serveurs backend peuvent avoir des configurations de machine et des charges système actuelles différentes, leur résistance à la pression est donc également différente.

    Configurez des poids plus élevés pour les machines avec une configuration élevée et une faible charge pour leur permettre de gérer plus de demandes ; et attribuez des poids plus faibles aux machines avec une configuration faible et une charge élevée pour réduire la charge de leur système. L'interrogation pondérée peut bien gérer cela et distribuer les demandes au système. backend de manière séquentielle et pondérée.

    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;
            }
        }
    }
    Copier après la connexion

    Méthode de hachage de l'adresse source : en fonction de l'adresse IP du client, une valeur est calculée via la fonction de hachage, et la valeur est utilisée pour moduler la taille de la liste des serveurs. Le résultat est le numéro de série du serveur qui. le client souhaite accéder.

    En utilisant la méthode de hachage de l'adresse source pour l'équilibrage de charge, un client avec la même adresse IP sera mappé au même serveur backend pour y accéder à chaque fois que la liste des serveurs backend reste inchangée.

    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;
        }
    Copier après la connexion

    Méthode du nombre minimum de connexions : étant donné que la configuration des serveurs backend est différente, le traitement des demandes peut être plus rapide ou plus lent. La méthode du nombre minimum de connexions sélectionne dynamiquement celle avec le plus petit retard de connexions actuel en fonction du courant. état de connexion du serveur back-end. Un serveur gère la demande actuelle, améliore autant que possible l'efficacité d'utilisation du service back-end et répartit raisonnablement la responsabilité entre chaque serveur.

    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;
        }
    Copier après la connexion

    down : Indique l'arrêt d'un certain service

    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;
        }
    Copier après la connexion

    backup : Spécifiez le serveur de sauvegarde. Dans des circonstances normales, tant que d'autres serveurs peuvent y accéder normalement, le serveur de sauvegarde ne sera pas accessible uniquement lorsque d'autres serveurs le seront. down.Utilisez un serveur de secours, cette méthode est donc généralement utilisée pour implémenter un déploiement à chaud. Commencez par mettre à jour le code sur le serveur de secours, puis arrêtez le serveur normal. Une fois le déploiement normal du serveur terminé, le serveur de secours est en attente. état à nouveau. L'ensemble du processus de déploiement permet aux utilisateurs de ne ressentir aucun temps d'arrêt.

    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;
        }
    Copier après la connexion
    • Proxy statique

    • Séparation statique et dynamique

    • Hôte virtuel

    Exemples d'utilisation de Nginx

    Ngin x est un serveur HTTP hautes performances et hautement concurrent et Le serveur proxy inverse peut être utilisé dans divers scénarios tels qu'un serveur de ressources statiques, un équilibreur de charge, un proxy inverse, un serveur de cache et un serveur Web.

    Voici plusieurs scénarios et exemples d'utilisation :

    1. Serveur de ressources statiques

    Lors de l'utilisation de Nginx comme serveur de ressources statiques, Nginx renverra directement le fichier demandé, réduisant ainsi la charge sur le serveur Web. Ce scénario est généralement utilisé pour fournir des téléchargements de fichiers statiques ou accéder à des fichiers volumineux tels que des vidéos.

    Ce qui suit est un exemple de configuration Nginx :

    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/;
        }
    }
    Copier après la connexion

    Dans la configuration ci-dessus, Nginx mappera les demandes d'accès au répertoire racine (/) au répertoire /usr/share/nginx/html si la demande se trouve sous le répertoire /images. / répertoire Fichiers, Nginx sera mappé au répertoire /var/www/images/ Si la demande concerne un fichier dans le répertoire /downloads/, Nginx sera mappé au répertoire /var/www/downloads/.

    2. Proxy inverse

    Lors de l'utilisation de Nginx comme serveur proxy inverse, Nginx transmettra la demande au serveur Web pour traitement, puis renverra les résultats du traitement au client.

    Ce scénario est généralement utilisé pour réaliser un équilibrage de charge, améliorer la sécurité du serveur Web, masquer la véritable adresse IP du serveur Web, etc.

    Voici un exemple de configuration Nginx :

    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;
        }
    }
    Copier après la connexion

    上述配置中,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;
        }
    }
    Copier après la connexion

    上述配置中,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;
        }
    }
    Copier après la connexion

    上述配置中,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;
        }
    }
    Copier après la connexion

    上述配置中,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;
        }
    }
    Copier après la connexion

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

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

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Étiquettes associées:
    source:yisu.com
    Déclaration de ce site Web
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
    Tutoriels populaires
    Plus>
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal
    À propos de nous Clause de non-responsabilité Sitemap
    Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!