Table des matières
1. >
Mécanisme de mise en cache défini par le protocole HTTP (tel que : Expire ; Contrôle du cache, etc.)
5. Accès intersites
6. Anti-hotlinking
2. Nginx en tant que service proxy
3. Nginx en tant que service d'équilibrage de charge
param参数解释:
调度算法:
四、Nginx作为缓存服务
1、缓存的类型
2、常用缓存配置
2、清除指定缓存
3、如何让部分页面不缓存
4、大文件分片请求
Maison développement back-end tutoriel php Pratique du scénario Nginx

Pratique du scénario Nginx

May 07, 2018 am 11:05 AM
nginx 场景 实践

Cet article présente principalement la pratique de la scène sur Nginx, qui a une certaine valeur de référence. Maintenant, je le partage avec tout le monde. Les amis dans le besoin peuvent s'y référer

1. >

1. Ressources dynamiques et ressources statiques

Si la page demandée par le client est une page web statique, le serveur répondra directement au client avec le contenu de la page web statique. Si le client demande une page Web dynamique, le serveur doit d'abord remplacer la page Web dynamique par une page Web statique, puis répondre à la page Web statique convertie au client
Plusieurs types de ressources statiques

  • Rendu du navigateur : HTML, CSS, JAVASCRIPT

  • Images : JPEG, GIF, PNG...

  • Vidéo : FLV, MPEG...

  • Fichier : TXT, etc. Tout fichier à télécharger

2. ) réseau de distribution de contenu

L'idée de base est d'éviter autant que possible les goulots d'étranglement et les liens sur Internet qui peuvent affecter la vitesse et la stabilité de la transmission des données, afin que la transmission du contenu puisse être plus rapide et plus stable. En plaçant des serveurs de nœuds sur tout le réseau pour former une couche de réseau virtuel intelligent basé sur l'Internet existant, le système CDN peut analyser en temps réel le trafic réseau et l'état de connexion et de charge de chaque nœud, ainsi que la distance jusqu'à l'utilisateur. et le temps de réponse et d'autres informations complètes pour rediriger la demande de l'utilisateur vers le nœud de service le plus proche de l'utilisateur. Son objectif est de permettre aux utilisateurs d'obtenir le contenu requis à proximité, de résoudre la situation de congestion du réseau Internet et d'améliorer la vitesse de réponse de l'accès des utilisateurs au site Web.
3. Syntaxe de configuration

  1. sendfile (lecture du fichier)

  • Syntaxe de configuration : sendfile on|off ;

  • Par défaut : Aucun

  • Contexte : http, serveur, emplacement, si dans l'emplacement

  • tcp_nopush (lorsque sendfile est activé, améliore l'efficacité de la transmission des paquets réseau)

    • Syntaxe de configuration : tcp_nopush on|off;

    • Par défaut : Aucun

    • Contexte : http, serveur, emplacement

  • tcp_nodelay (sous connexion keepalive, améliore les paquets réseau Transmission en temps réel)

    • Syntaxe de configuration : tcp_nodely on|off;

    • Par défaut : Aucun

    • Contexte : http, serveur, localisation

  • gzip (compression)

    • Syntaxe de configuration : gzip on|off;

    • Par défaut : Aucun

    • Contexte : http, serveur, emplacement, si dans l'emplacement

  • gizp_comp_level (taux de compression)

    • Syntaxe de configuration : niveau gzip_comp_level ;

    • Par défaut : aucun ;

    • Contexte : http, serveur, localisation

  • gzip_http_version (version http gzip)

    • Syntaxe de configuration : gzip_http_version 1.0|1.1 ;

    • Par défaut : Aucun

    • Contexte : http, serveur, emplacement

  • gzip_static (fonction gzip de pré-lecture)

    • Syntaxe de configuration : gzip_static on|off|always;

    • Par défaut : gzip_static off ;

    • Contexte : http, serveur, emplacement

    4. 🎜>

    Mécanisme de mise en cache défini par le protocole HTTP (tel que : Expire ; Contrôle du cache, etc.)

      Le navigateur n'a pas de cache :
      • Demande du navigateur → Pas de cache → Demande du serveur WEB → Demande de réponse, négociation → Présent
      Le client a du cache
      • Demande du navigateur→avec cache→expiration de la vérification→présent
      mécanisme d'expiration de la vérification
      • Première demande :

      Pratique du scénario Nginx

      • Deuxième demande :

      Pratique du scénario Nginx

      • expire (les en-têtes de réponse ajoutent Cache-Control, Expires)

        • Syntaxe de configuration : expire l'heure [modifiée] ; expire l'époque |max |off;

        • Par défaut : expire après ;

        • Contexte : http, serveur, emplacement, si dans l'emplacement

      5. Accès intersites

      Comment Nginx permet-il l'accès intersites ? ? Access-Controller-Allow-Origin
      • add_header

        • Syntaxe de configuration : valeur du nom add_header [always];

        • Par défaut : Aucun

        • Contexte : http, serveur, emplacement, si dans l'emplacement

      nom OK Pour Access-Controller-Allow-Origin et Access-Controller-Allow-Method

      6. Anti-hotlinking

      Basé sur le module de configuration anti-hotlinking http_refer
      • Syntaxe de configuration : valid_referers none|blocked|server_names|string...;

      • Par défaut : Aucun

      • Contexte : serveur, emplacement

      valid_referers none blocked IP
      if($invalid_referer) {
          return 403;
      }
      Copier après la connexion

      Rappel : Vous pouvez utiliser curl pour tester la protection anti-sangsue configurée : curl -e "http:www.baidu.com" -I IP


      2. Nginx en tant que service proxy

      • Forward proxy

        • L'objet est le client (par exemple, si vous souhaitez accéder au serveur externe réseau, définissez le serveur proxy sur l'adresse proxy, le client Le client peut accéder à n'importe quel site Web)

      • Proxy inverse

        • L'objet est le serveur (vous n'avez pas besoin de vous soucier de l'accès) Quel que soit le serveur dont il s'agit, le proxy inverse sera placé côté serveur)

      • proxy_pass

        • Syntaxe de configuration : URL proxy_pass ;

        • Par défaut : Aucun

        • Contexte : emplacement, si dans l'emplacement, limit_sauf

      Une certaine syntaxe pour d'autres proxysSupplémentaire :
      • proxy_buffering (buffer )

        • Configuration de la syntaxe : proxy_buffering on | off;

        • Par défaut :

        • Contexte : http, serveur, emplacement

        • Extensions : proxy_buffer_size, proxy_buffers, proxy_busy_buffers_size

      • proxy_redirect (redirection de saut)

        • Syntaxe de configuration : proxy_redirect par défaut ;proxy_redirect off;proxy_redirect redirect remplacement ;

        • Par défaut : Aucun

        • Contexte : http, serveur, emplacement

      • proxy_set_header (informations d'en-tête)

        • Syntaxe de configuration : fichier proxy_set_header valeur ;

        • Par défaut : proxy_set_header Hôte $proxy_host;proxy_set_header Connexion fermée ;

        • Contexte : http, serveur, emplacement

        • Extension : proxy_hide_header, proxy_set_body

      • proxy_connect_timeout (timeout)

        • Syntaxe de configuration : proxy_connect_timeout time ;

        • Par défaut : Aucun

        • Contexte : http, serveur, emplacement

        • Extensions : proxy_read_timeout , proxy_send_timeout

      Exemple dans le fichier de configuration :
      proxy_pass http://127.0.0.1:8080;
      proxy_redirect default;
      
      proxy_set_header HOST $http_host;
      proxy_set_header X-Real-IP $remote_addr;
      
      proxy_connect_timeout 30;
      proxy_send_timeout 60;
      proxy_read_timeout 60;
      
      proxy_buffer_size 32k;
      proxy_buffering on;
      proxy_buffers 4 128k;
      proxy_busy_buffers_size 256k;
      proxy_max_temp_file_size 256k;
      Copier après la connexion

      3. Nginx en tant que service d'équilibrage de charge

      Charger. équilibrage : Construit sur la base actuelle de la structure du réseau, il fournit une méthode peu coûteuse, efficace et transparente pour étendre la bande passante des périphériques et des serveurs réseau, augmenter le débit, améliorer les capacités de traitement des données du réseau et améliorer la flexibilité et la disponibilité du réseau.
      Équilibrage de charge, le nom anglais est Load Balance, signifie allouer l'exécution à plusieurs unités opérationnelles, telles que les serveurs Web, les serveurs FTP, les serveurs d'applications de clé d'entreprise et autres serveurs critiques, etc., afin d'effectuer conjointement le travail tâches.
      • amont

        • Syntaxe de configuration : nom en amont {...}

        • Par défaut : Aucun

        • Contexte : http

      Exemple de configuration simple :

      upstream ronaldo {
              server ip:port [param];
              server ip:port [param];
              server ip:port [param];
      }
      server {
          location / {
              proxy_pass http://ronaldo;
          }
      }
      Copier après la connexion

      param参数解释:

      param意义
      down当前的server暂时不参与负载均衡
      weight=num权重,num越大,轮询到的概率越大
      backup预留的备份服务器
      max_fails允许请求失败的次数
      fail_timeout经过max_fails失败后,服务暂停的时间(默认是10s)
      max_conns限制最大的接收的连接数

      调度算法:

      算法意义
      轮询按时间顺序逐一分配到不同的后端服务器
      加权轮询weight值越大,分配到的访问几率越高
      ip_hash每个请求按访问IP的hash结果分配,这样来自同一个IP就固定访问同一个后端服务器
      least_conn最少连接数,哪个服务器连接数少就分发
      url_hash按照访问的URL的hash结果来分配请求,是每个URL定向到同一个后端服务器
      hash关键字值hash自定义的key
      • ip_hash:

        • 只需要在upstream中加入 ip_hash; 即可

        • 缺陷:如果走代理,那么remote_addr就不是用户真实的ip

      • url_hash(1.7.2版本以后可用):

        • 配置语法:hash key [consistent];

        • 默认:无

        • Context:upstream

      key可以是$request_uri,根据url进行hash

      四、Nginx作为缓存服务

      1、缓存的类型

      • 服务端缓存。例:memcache、reids

      • 代理缓存。例:Nginx缓存服务端的数据

      • 客户端缓存。

      Pratique du scénario Nginx

      2、常用缓存配置

      • proxy_cache_path

        • 配置语法proxy_cache_path path [levels=levels] [use_temp_path=on|off] keys_zone=name:size [inactive=time] [max_size] [use_temp_path]...

        • 默认:无

        • Context:http

      • proxy_cache

        • 配置语法:proxy_cache zone | off;

        • 默认:proxy_cache off;

        • Context:http,server,location

      • proxy_cache_valid(缓存过期周期)

        • 配置语法:proxy_cache_valid [code...] time

        • 默认:无

        • Context:http、server、location

      • proxy_cache_key(缓存的维度)

        • 配置语法:proxy_cache_key string;

        • 默认:proxy_cache_key $scheme$proxy_host$request_uri;

        • Context:http、server、location

      常见配置:

      proxy_cache_path cache_path levels=1:2 keys_zone=key_name:10m max_size=10g inactive=60m use_temp_path=off;
      
      server {
          loaction / {
              proxy_pass http://ronaldo;
              proxy_cache key_name;
              proxy_cache_valid 200 304 12h;
              proxy_cache_valid any 10m;
              proxy_cache_key $host$uri$is_args$args;
              add_header Nginx-Cache "$upstream_cache_status";
      
              proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
          }
      }
      Copier après la connexion

      2、清除指定缓存

      • rm -rf 缓存目录内容

      • 第三方扩展模块:ngx_cache_purge

      3、如何让部分页面不缓存

      • proxy_no_cache

        • 配置语法:proxy_no_cache string ...;

        • 默认:无

        • Context:http,server,location

      简单示例

      if ($request_uri ~ ^/(url_3|login|register|password\/reset)) {
          set $cookie_nocache 1;
      }
      
      location / {
          proxy_no_cache $cookie_nocache;
      }
      Copier après la connexion

      4、大文件分片请求

      • slice

        • 语法配置:slice size;

        • 默认:slice 0;

        • Context:http、server,location

      优势:每个子请求收到的数据都会形成一个独立的文件,一个请求断了,其他请求不受影响。
      缺点:当文件很大或者slice很小的时候,可能会导致文件描述符耗尽等待情况。

      相关推荐:

      关于Nginx的基础内容

      Nginx编译安装Lua模块

    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!

    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

    Outils d'IA chauds

    Undresser.AI Undress

    Undresser.AI Undress

    Application basée sur l'IA pour créer des photos de nu réalistes

    AI Clothes Remover

    AI Clothes Remover

    Outil d'IA en ligne pour supprimer les vêtements des photos.

    Undress AI Tool

    Undress AI Tool

    Images de déshabillage gratuites

    Clothoff.io

    Clothoff.io

    Dissolvant de vêtements AI

    AI Hentai Generator

    AI Hentai Generator

    Générez AI Hentai gratuitement.

    Article chaud

    R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
    3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Meilleurs paramètres graphiques
    3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Comment réparer l'audio si vous n'entendez personne
    3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
    Où trouver la courte de la grue à atomide atomique
    1 Il y a quelques semaines By DDD

    Outils chauds

    Bloc-notes++7.3.1

    Bloc-notes++7.3.1

    Éditeur de code facile à utiliser et gratuit

    SublimeText3 version chinoise

    SublimeText3 version chinoise

    Version chinoise, très simple à utiliser

    Envoyer Studio 13.0.1

    Envoyer Studio 13.0.1

    Puissant environnement de développement intégré PHP

    Dreamweaver CS6

    Dreamweaver CS6

    Outils de développement Web visuel

    SublimeText3 version Mac

    SublimeText3 version Mac

    Logiciel d'édition de code au niveau de Dieu (SublimeText3)

    Comment autoriser l'accès au réseau externe au serveur Tomcat Comment autoriser l'accès au réseau externe au serveur Tomcat Apr 21, 2024 am 07:22 AM

    Pour permettre au serveur Tomcat d'accéder au réseau externe, vous devez : modifier le fichier de configuration Tomcat pour autoriser les connexions externes. Ajoutez une règle de pare-feu pour autoriser l'accès au port du serveur Tomcat. Créez un enregistrement DNS pointant le nom de domaine vers l'adresse IP publique du serveur Tomcat. Facultatif : utilisez un proxy inverse pour améliorer la sécurité et les performances. Facultatif : configurez HTTPS pour une sécurité accrue.

    Comment résoudre le problème de la longue traîne dans les scénarios de conduite autonome ? Comment résoudre le problème de la longue traîne dans les scénarios de conduite autonome ? Jun 02, 2024 pm 02:44 PM

    Hier, lors de l'entretien, on m'a demandé si j'avais posé des questions à longue traîne, j'ai donc pensé faire un bref résumé. Le problème à longue traîne de la conduite autonome fait référence aux cas extrêmes dans les véhicules autonomes, c'est-à-dire à des scénarios possibles avec une faible probabilité d'occurrence. Le problème perçu de la longue traîne est l’une des principales raisons limitant actuellement le domaine de conception opérationnelle des véhicules autonomes intelligents à véhicule unique. L'architecture sous-jacente et la plupart des problèmes techniques de la conduite autonome ont été résolus, et les 5 % restants des problèmes à longue traîne sont progressivement devenus la clé pour restreindre le développement de la conduite autonome. Ces problèmes incluent une variété de scénarios fragmentés, de situations extrêmes et de comportements humains imprévisibles. La « longue traîne » des scénarios limites dans la conduite autonome fait référence aux cas limites dans les véhicules autonomes (VA). Les cas limites sont des scénarios possibles avec une faible probabilité d'occurrence. ces événements rares

    Comment exécuter thinkphp Comment exécuter thinkphp Apr 09, 2024 pm 05:39 PM

    Étapes pour exécuter ThinkPHP Framework localement : Téléchargez et décompressez ThinkPHP Framework dans un répertoire local. Créez un hôte virtuel (facultatif) pointant vers le répertoire racine ThinkPHP. Configurez les paramètres de connexion à la base de données. Démarrez le serveur Web. Initialisez l'application ThinkPHP. Accédez à l'URL de l'application ThinkPHP et exécutez-la.

    Bienvenue sur nginx !Comment le résoudre ? Bienvenue sur nginx !Comment le résoudre ? Apr 17, 2024 am 05:12 AM

    Pour résoudre l'erreur "Bienvenue sur nginx!", vous devez vérifier la configuration de l'hôte virtuel, activer l'hôte virtuel, recharger Nginx, si le fichier de configuration de l'hôte virtuel est introuvable, créer une page par défaut et recharger Nginx, puis le message d'erreur. disparaîtra et le site Web sera affiché normalement.

    Comment déployer le projet nodejs sur le serveur Comment déployer le projet nodejs sur le serveur Apr 21, 2024 am 04:40 AM

    Étapes de déploiement de serveur pour un projet Node.js : Préparez l'environnement de déploiement : obtenez l'accès au serveur, installez Node.js, configurez un référentiel Git. Créez l'application : utilisez npm run build pour générer du code et des dépendances déployables. Téléchargez le code sur le serveur : via Git ou File Transfer Protocol. Installer les dépendances : connectez-vous en SSH au serveur et installez les dépendances de l'application à l'aide de npm install. Démarrez l'application : utilisez une commande telle que node index.js pour démarrer l'application ou utilisez un gestionnaire de processus tel que pm2. Configurer un proxy inverse (facultatif) : utilisez un proxy inverse tel que Nginx ou Apache pour acheminer le trafic vers votre application

    Comment générer une URL à partir d'un fichier HTML Comment générer une URL à partir d'un fichier HTML Apr 21, 2024 pm 12:57 PM

    La conversion d'un fichier HTML en URL nécessite un serveur Web, ce qui implique les étapes suivantes : Obtenir un serveur Web. Configurez un serveur Web. Téléchargez le fichier HTML. Créez un nom de domaine. Acheminez la demande.

    Quelles sont les instructions les plus courantes dans un fichier docker Quelles sont les instructions les plus courantes dans un fichier docker Apr 07, 2024 pm 07:21 PM

    Les instructions les plus couramment utilisées dans Dockerfile sont : FROM : créer une nouvelle image ou dériver une nouvelle image RUN : exécuter des commandes (installer le logiciel, configurer le système) COPY : copier des fichiers locaux dans l'image ADD : similaire à COPY, il peut automatiquement décompresser tar ou obtenir des fichiers URL CMD : Spécifiez la commande au démarrage du conteneur EXPOSE : Déclarez le port d'écoute du conteneur (mais pas public) ENV : Définissez la variable d'environnement VOLUME : Montez le répertoire hôte ou le volume anonyme WORKDIR : Définissez le répertoire de travail dans le conteneur ENTRYPOINT : spécifiez ce qu'il faut exécuter lorsque le conteneur démarre. Fichier exécutable (similaire à CMD, mais ne peut pas être écrasé)

    Nodejs est-il accessible de l'extérieur ? Nodejs est-il accessible de l'extérieur ? Apr 21, 2024 am 04:43 AM

    Oui, Node.js est accessible de l’extérieur. Vous pouvez utiliser les méthodes suivantes : Utilisez Cloud Functions pour déployer la fonction et la rendre accessible au public. Utilisez le framework Express pour créer des itinéraires et définir des points de terminaison. Utilisez Nginx pour inverser les requêtes de proxy vers les applications Node.js. Utilisez des conteneurs Docker pour exécuter des applications Node.js et les exposer via le mappage de ports.

    See all articles