Dans la langue Nginx profane

avant-propos

Nginx est un serveur Web léger, serveur proxy inverse, en raison de sa faible empreinte mémoire, démarrage rapide, forte forte concurrence, largement utilisé dans les projets Internet.

La figure illustre l'architecture technologique populaire courant sensiblement, dans laquelle l'entrée Nginx peu passerelle goût.

Inverser le serveur proxy?

Souvent, les gens entendent dire que certains des termes, tels que proxy inverse, alors ce qui est un proxy inverse, proxy direct Qu'est-ce?

proxy direct:

Reverse Proxy:

En raison du pare-feu, nous ne pouvons pas accéder directement à Google, alors nous pouvons être mis en uvre par ***, c'est un exemple simple d'un proxy direct. Ici vous pouvez trouver, proxy direct « agent » est le client, et le client est conscient de l'objectif, et l'objectif est de connaître le client n'est pas accessible par ***.

Quand nous sommes en dehors du réseau de Baidu d'accès, en fait, sera un agent de transfert au sein du réseau pour aller, on appelle cela un proxy inverse, côté serveur-à-dire proxy inverse « proxy », et ce processus est pour le client en termes de il est transparent.

Le mode maître-ouvrier Nginx

Après le démarrage Nginx, en effet, lancé sur le port 80 Socket Services pour surveiller, comme le montre, le processus Nginx impliquant Maître et processus de travail.

Le rôle du processus maître est?

Lire et vérifier le fichier de configuration nginx.conf, processus de gestion des travailleurs;

Le processus de travail est le rôle?

Chaque processus de travail maintient un fil (pour éviter l'interrupteur de fil) et gérer la demande de connexion, note Le processus de travail est déterminé par le nombre de fichiers de configuration, et généralement lié au nombre de CPU (en faveur du processus de commutation), il existe plusieurs configuration plusieurs Le processus de travail.

Question: Comment Nginx déploiement à chaud?

Le soi-disant déploiement à chaud, qui est, après nginx.conf modifier le fichier de configuration, n'a pas besoin d'arrêter Nginx, ne pas besoin de demande d'interruption, vous pouvez rendre le fichier de configuration pour prendre effet! (Nginx -s rechargement pour recharger / nginx -t vérifier la configuration / nginx -s stop)

Nous savons déjà que le travailleur à travers le processus ci-dessus est chargé de traiter les demandes spécifiques de, donc si vous voulez obtenir l'effet du déploiement à chaud, il est concevable:

Première option:

Après avoir modifié le fichier de configuration nginx.conf, le processus principal responsable du maître poussé processus de woker pour mettre à jour les informations de configuration, les informations de processus reçues après woker, des informations de mise à jour de fil processus internes. (Valatile un peu de goût)

Deuxième option:

Après avoir modifié le fichier de configuration nginx.conf, régénérer un nouveau processus de travail, bien sûr, sera traité la demande à la nouvelle configuration, et une nouvelle demande doit être remis au nouveau processus de travail, comme l'ancien processus de travail, comme les précédentes demandes Une fois traitée, tuer la boîte.

Nginx est utilisé pour réaliser le programme de deux déploiement à chaud!

Question: Comment Nginx un traitement efficace à haute concurrence?

Nginx déjà mentionné ci-dessus, le nombre de processus de travail et de la CPU de liaison, processus de travail interne contient une boucle de fil traiter efficacement la demande, il contribue à l'efficacité, mais cela ne suffit pas.

En tant que programmeur professionnel, nous pouvons regarder le cerveau trou ouvert: BIO / NIO / AIO, asynchrone / synchrone, blocage / non-blocage ...

Jongler avec tant de demandes, vous le savez, certains besoins de demande de se produire IO, peut prendre beaucoup de temps, si en attendant, il va ralentir la vitesse de traitement du travailleur.

Nginx utilise un modèle de modèle epoll, epoll Linux basé sur un mécanisme événementiel, il peut surveiller plusieurs événements sont prêts, si OK, puis mis epoll file d'attente, le processus est asynchrone. travailleur seulement du cycle de traitement de file d'attente epoll peut être.

Pensées: Nginx raccrocha comment faire?

Depuis Nginx comme la porte d'entrée, est très important, si le problème en un seul point, est clairement inacceptable.

La réponse est: Keepalived + Nginx obtenir une haute disponibilité.

Keepalived est une des solutions de haute disponibilité, principalement pour empêcher le serveur est un point de défaillance unique, une haute disponibilité peut être obtenue grâce à des services Web et ajustement Nginx. (En fait, Keepalived et Nginx peut non seulement s'adapter, mais aussi avec de nombreux autres services)

Keepalived + Nginx obtenir des idées de haute disponibilité:

Tout d'abord: Je ne demande pas frappé directement Nginx, devrait d'abord passer Keepalived (ce qui est appelé IP virtuelle, VIP)

Deuxièmement: Keepalived devrait être en mesure de surveiller l'état de vie de Nginx (un script défini par l'utilisateur, le processus d'inspection régulière état Nginx, afin d'obtenir un changement de poids ,, basculement Nginx)

Notre principal champ de bataille: nginx.conf

Dans de nombreux cas, le développement, l'environnement de test, nous devons posséder pour configurer Nginx, il est de configurer nginx.conf.

nginx.conf est le profil typique du segment, ici nous devons analyser.

Hébergement Web

En fait, c'est le Nginx comme serveur Web pour gérer les ressources statiques.

Le premier: l'emplacement peut être un match régulier, il convient de noter que plusieurs formes régulières et de priorité. (Ici de ne pas poursuivre)

Deuxièmement: la vitesse peut être augmentée Nginx dans laquelle une fonction est: statique et dynamique de séparation, est placé sur la ressource statique Nginx, transmis par la direction Nginx, demande dynamique au backend.

Troisièmement: Nous pouvons mettre dans la ressource statique Nginx, les fichiers journaux appartiennent à un nom de domaine différent (qui est, répertoire), si facile à gérer et à entretenir.

Quatrièmement: l'accès Nginx IP peut être contrôlé, une plate-forme de commerce électronique, cette couche peut être Nginx, faire un peu de traitement, construit un module liste noire, et il ne doit pas atteindre la demande Nginx back-end en effectuant l'interception, mais directement dans cette couche Nginx seront éliminés.

[] Proxy inverse proxy_pass

Le soi-disant proxy inverse est très simple, en fait, est l'emplacement racine dans la configuration de cette section peut être remplacé proxy_pass. note fondamentale est ressource statique peut être renvoyée par le Nginx, PROXY_PASS les requêtes dynamiques sont décrites, doivent être transmises à l'agent tel que Tomcat.

proxy inverse, il a été dit ci-dessus, le processus est transparent, par exemple, la demande - >  nginx - >  Tomcat, puis pour Tomcat, demande d'adresse IP est l'adresse Nginx, plutôt que l'adresse la demande réelle, il convient de noter. Heureusement, cependant, peut non seulement la demande inverse proxy Nginx, vous pouvez également être défini par l'utilisateur à personnaliser ENTETE HTTP.

L'équilibrage de charge [en amont]

Le proxy inverse ci-dessus, nous adresse proxy_pass spécifiée par le Tomcat, il est clair que nous ne pouvons spécifier une adresse Tomcat, donc si nous voulons spécifier plusieurs équilibrage de charge pour y parvenir?

Tout d'abord, un ensemble est défini par Tomcat en amont, et la politique de charge (IPHASH, l'argument pondéré les moins connexions), le contrôle de la politique de santé (le Nginx Tomcat peut surveiller l'état de ce groupe) et autres.

D'autre part, la valeur peut être remplacée proxy_pass spécifié en amont.

L'équilibrage de charge peut apporter?

La question évidente qui se pose est l'équilibrage de charge, une demande peut aller au serveur A, vous pouvez aussi aller sur le serveur B, ce qui est tout à fait hors de notre contrôle, bien sûr, ce n'est pas un problème, mais nous devons noter que: le statut de l'utilisateur la conservation, telles que les informations de session de session ne peut pas être enregistré sur le serveur.

cachette

Cache, Nginx est fourni, peut accélérer la vitesse d'accès du mécanisme, dit clairement, il est un tour sur la configuration, alors que le répertoire spécifié, de sorte que le cache peut être stocké sur le disque. La configuration spécifique, vous pouvez vous référer au document officiel Nginx, pas ici commencé.

adresse du lien réimprimer: http: //blog.51cto.com/zhangfengzhe/2064524

Auteur: zfz_linux_boy uvres originales

Ligue des femmes tenue en Corée du Sud, les conditions de concurrence sont très lâches! Netizen: Ligue des femmes de Chine en quoi?
Précédent
Le Japon et les Etats-Unis a pu culture cette collision? ! Visvim New York, intérieur boutique exactement comment le stress?
Prochain
La nouvelle exposition de modélisation Toyota Prado: grille comme l'Audi Q7?
« Z 4 Tempête » au box-office casser 400 millions serré assis dans la prison avec le calendrier fixé pour décrocher le titre d'infiltration exposition anti-corruption de Port classique Fan
Nginx Web Service Optimisation
LOL version officielle des derniers classements sur la liste! Liste IG Hutch! Le joueur est un peu inattendu
Imprimé au-dessus d'un moins? ! Ceci est seulement Presto double NIKE X du monde où les chaussures ah! Il est tout simplement une étape!
La nouvelle Camry prendre le nouveau moteur 2.5L efficacité thermique jusqu'à 40%
« Invaincue Kowloon, » l'agent de police a tué comique « détective Kowloon » Zhang Jin ultime élève
5 ans: Institut d'intelligence artificielle pour faire Facebook une vue de texte réalisations importantes au fil des ans
PALACE semaine, ce sont le principal produit unique? La vente Raiders détails pour vous aider à démarrer rapide, précis!
frais passagers Dongfeng Nissan sur la ligne d'assemblage sera officiellement inscrite le 11 Juillet
« Sarrasin flambée » premier trailer Masi pur Zhongchu Xi Huang Jingyu flambée terre étrangère
IG gagner frères baguettes de feu! Inventaire frappé de la surface des joueurs! Utilisateur: Il y a des parents?