Installation de l'environnement Linux à l'aide d'une explication détaillée de nginx

01-Installation de Nginx

  Nginx est un serveur Web / proxy inverse léger et un serveur proxy de messagerie (IMAP/POP3) publié sous un protocole de type BSD . Développé par le programmeur russe Igor Sysoev, il est utilisé par le grand portail et moteur de recherche russe Rambler (russe : Рамблер). Sa caractéristique est qu'il occupe moins de mémoire et possède une forte capacité de concurrence . En fait, la capacité de concurrence de nginx fonctionne mieux parmi les serveurs Web similaires. Les utilisateurs de sites Web nginx en Chine continentale incluent : Jingdong , Sina , NetEase , Tencent , Taobao , etc. .

installation de nginx

# 0. Il faut d'abord avoir des dépendances
miam install -y gcc pcre-devel zlib-devel
# 1. Téléchargez Nginx
http://nginx.org/en/download.html
# 2. Téléchargez Nginx sur Linux et décompressez-le
tar -zxvf nginx-1.11.1.tar.gz
# 3. Exécutez la commande suivante dans le répertoire nginx décompressé : (précisez l'emplacement d'installation)
./configure --prefix=/usr/nginx
# 5. Après avoir exécuté la commande ci-dessus, exécutez la commande suivante :
faire && faire installer
# 6. Une fois la compilation terminée, entrez dans le répertoire d'installation de la compilation /usr/nginx pour afficher :
[root@localhost nginx]# ls -l
Utilisation totale 4
drwxr-xr-x. 2 racine racine 4096 10月 14 21:17 conf
drwxr-xr-x. 2 racine racine 40 10月 14 21:17 html
drwxr-xr-x. 2 racine racine 6 10h14 21h17 journaux
drwxr-xr-x. 2 racine racine 19 10/14 21:17 sbin
# 7. Démarrez nginx, entrez dans le répertoire sbin du répertoire d'installation de nginx et exécutez :
./nginx
# 8. Visitez le navigateur sous Windows, vous pouvez voir la page d'accueil de nginx :
http://10.15.0.8:80/ --Entrez votre propre adresse de serveur : numéro de port nginx
Remarque : désactivez le pare-feu réseau
# 9. Fermez nginx, entrez dans le répertoire sbin du répertoire d'installation de nginx et exécutez :
./nginx -s arrêter
# 10. Le fichier de configuration nginx se trouve dans le répertoire conf du répertoire d'installation de nginx :
[root@localhost conf]# ls -l
Dosage total 60
-rw-r--r--. 1 racine racine 2656 10 juillet 21:17 nginx.conf
.......
Remarque : nginx.conf est le fichier de configuration de nginx, vous pouvez modifier la configuration par défaut de nginx dans nginx.conf

02-Stratégie d'équilibrage de charge Nginx

# 1. Sondage
Description : La politique par défaut, chaque requête sera attribuée à différents serveurs backend un par un par ordre chronologique
# 2.poids poids
Description : Le paramètre de poids est utilisé pour spécifier la probabilité d'interrogation, la valeur par défaut du poids est 1 ; la valeur du poids est proportionnelle au taux d'accès.
serveurs Tomcat en amont {
    hôte local du serveur : 8080 poids = 2 ;
    hôte local du serveur : 8081 ;
    serveur localhost : sauvegarde 8082 ;
}
Remarque : 1. Plus le poids est élevé, plus il y a de demandes à traiter. 2. Cette stratégie peut être utilisée en combinaison avec less_conn et ip_hash, principalement pour les performances inégales des serveurs backend
# 3.ip_hash 4%3=1
 Description : Spécifiez l'équilibreur de charge à allouer en fonction de l'adresse IP du client. Cette méthode garantit que la demande du même client est toujours envoyée au même serveur pour garantir la session. De cette manière, chaque visiteur visite un serveur principal fixe, ce qui peut résoudre le problème de l'impossibilité pour les sessions de traverser les serveurs.
 serveurs Tomcat en amont {
        ip_hash; #Garantir que chaque visiteur visite un serveur backend
        hôte local du serveur : 8080 ;
        ......
    }
# 4.least_conn
Description : transférez la demande au serveur principal avec moins de connexions. L'algorithme d'interrogation consiste à transmettre les requêtes à chaque backend en moyenne, de sorte que leurs charges soient à peu près les mêmes ; cependant, certaines requêtes prennent beaucoup de temps, ce qui entraînera une charge plus élevée sur le backend où elles se trouvent. Dans ce cas, less_conn peut obtenir un meilleur effet d'équilibrage de charge.
serveurs Tomcat en amont{
    least_conn; #Transférer la requête au serveur backend avec moins de connexions
    hôte local du serveur : 8080 ;
}

03-Nginx implémente le cluster d'équilibrage de charge Tomcat

# 0. Préparez plusieurs matous
tar -zxvf apache-tomcat-8.5.46.tar.gz #Décompresser un nouveau package d'installation de Tomcat
mv apache-tomcat-8.5.46 tomcat1 #Changez le nom en tomcat1
cp -r tomcat1/ tomcat2 #copier une copie
cp -r tomcat1/ tomcat3 #copier une copie
# 1. À l'heure actuelle, il y a trois serveurs dans le répertoire courant, comme suit :
[root@localhost ~]# ls -l
Utilisation totale 12248
-rwxrwxrwx. 1 racine racine 11623939 13 octobre 12:25 apache-tomcat-8.5.46.tar.gz
drwxr-xr-x. 9 racine racine 220 10月 14 21:28 tomcat1
drwxr-xr-x. 9 racine racine 220 10月 14 21:38 tomcat2
drwxr-xr-x. 9 racine racine 220 10月 14 21:38 tomcat3
# 2. Modifier le numéro de port tomcat1 : (pseudo-distribué)
vim tomcat1/conf/server.xml, commande pour modifier le contenu suivant :
a.<Server port="8001" shutdown="SHUTDOWN"> --- fermez le port
b.<Connector port="8888" protocol="HTTP/1.1" ---port de protocole http
connexionTimeout="20000"
redirectPort="8443" />
c.<Connector port="10010" protocol="AJP/1.3" redirectPort="8443" /> ---Port de protocole AJP
# 3. Modifier le numéro de port tomcat2 : (pseudo-distribué)
vim tomcat2/conf/server.xml, commande pour modifier le contenu suivant :
a.<Port du serveur="8002" shutdown="SHUTDOWN">
b.<Port du connecteur="8889" protocole="HTTP/1.1"
connexionTimeout="20000"
redirectPort="8443" />
c.<Connector port="10011" protocol="AJP/1.3" redirectPort="8443" />
# 4. Modifier le numéro de port tomcat3 : (pseudo-distribué)
vim tomcat2/conf/server.xml, commande pour modifier le contenu suivant :
a.<Port du serveur="8003" shutdown="SHUTDOWN">
b.<Port du connecteur="8890" protocole="HTTP/1.1"
connexionTimeout="20000"
redirectPort="8443" />
c.<Connector port="10012" protocol="AJP/1.3" redirectPort="8443" />
# 5. Démarrez plusieurs matous :
tomcat1/bin/startup.sh
tomcat2/bin/startup.sh
tomcat3/bin/startup.sh
# 6. Vérifiez si Tomcat démarre avec succès
ps -aux|grep tomcat
# 7. Visitez Tomcat séparément dans Windows et vous pouvez voir la page d'accueil indiquant que le démarrage a réussi :
http://10.15.0.8:8888/
http://10.15.0.8:8889/
http://10.15.0.8:8890/
Remarque : Cette étape doit désactiver le pare-feu réseau
# 8. Configurez plusieurs Tomcats dans le fichier de configuration nginx :
1) Entrez le répertoire sbin de nginx et désactivez le service nginx
./nginx -s arrêter
2) Entrez dans le répertoire conf et modifiez le fichier nginx.conf
vi nginx.conf
3). Ajoutez la configuration suivante à l'étiquette du serveur :
serveurs Tomcat en amont {
serveur 192.168.80.130:8090 ;
serveur 192.168.80.130:8091 ;
serveur 192.168.80.130:8092 ;
}
4) Commentez la configuration suivante dans le fichier de configuration (dans la configuration du serveur)
        emplacement / {
            racine HTML ;
            index index.html index.htm;
        }
5) Remplacez l'emplacement / dans le fichier de configuration par la configuration suivante :
emplacement / {
proxy_pass http://tomcat-servers ;
proxy_redirect désactivé ;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Hôte $http_host ;
proxy_next_upstream http_502 http_504 délai d'expiration d'erreur invalid_header ;
}
# 9. Entrez le répertoire sbin du répertoire d'installation de nginx pour démarrer nginx
./nginx -c /usr/nginx/conf/nginx.conf
# 10. Visitez nginx et voyez l'un des écrans Tomcat :
http://10.15.0.8/

Fichier de configuration 04-nginx.conf

    4.1 Introduction à nginx.conf

Le fichier de configuration de Nginx est généralement un fichier texte, généralement nommé nginx.conf , et son contenu comprend les aspects suivants :
  1. Configuration globale : cette partie contient des instructions de configuration globale, telles que l'instruction utilisateur spécifie l'utilisateur en cours d'exécution du processus Nginx, l'instruction work_processes spécifie le nombre de processus de travail à démarrer par Nginx, etc.
  2. Configuration des événements : cette partie contient des instructions de configuration liées au traitement des événements. Par exemple, l' instruction worker_connections spécifie le nombre de connexions que chaque processus de travail peut gérer en même temps. L' instruction use peut spécifier le modèle d'événement, tel que use epoll ou utilisez kqueue .
  3. Configuration HTTP : cette partie contient toutes les directives de configuration liées à HTTP. Par exemple, la directive serveur définit un serveur HTTP, la directive location définit un emplacement de traitement des requêtes et la directive proxy_pass peut envoyer des requêtes par proxy à d'autres serveurs.
Voici un exemple de fichier de configuration Nginx simple :
utilisateur nginx ;
travailleur_processes auto ;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
événements {
    connexions_travailleur 1024 ;
}
http{
    inclure mime.types ;
    application de type_par défaut/flux d'octets ;
    envoyer le fichier sur ;
    keepalive_timeout 65 ;
    serveur {
        écoutez 80 ;
        nom_serveur exemple.com ;
        emplacement / {
            racine /var/www/example.com ;
            index index.html;
        }
        emplacement /api/ {
            proxy_pass http://api.example.com/ ;
        }
    }
}

    4.2. Commandes communes

4.2.1. alias : La commande alias peut mapper l'URI demandé sur un autre chemin dans le système de fichiers local, afin d'obtenir l'effet de remplacement de chemin.

Par exemple, pour mapper http://example.com/resource à /var/www/cdn/resource , la configuration suivante peut être utilisée :
emplacement/ressource {
    alias /var/www/cdn/resource ;
    index index.html;
}
La configuration ci-dessus mappera la requête http://example.com/resource au chemin /var/www/cdn/resource du système de fichiers local , et Nginx recherchera automatiquement le fichier index.html dans ce répertoire et le renverra. vers le client. Si aucun fichier index.html n'est trouvé, une liste de répertoires est renvoyée.
Il convient de noter que lors de l'utilisation de la commande alias , vous devez spécifier un chemin local complet et le chemin ne peut pas contenir d'expressions régulières. De plus, l'utilisation de la directive alias peut affecter les performances, car Nginx doit effectuer un remplacement de chemin pour chaque requête. S'il ne s'agit que d'un simple remplacement de chemin, il est recommandé d'utiliser la commande rewrite ou de la gérer dans le code de l'application.
Il existe également une commande similaire root , qui peut également mapper l'URI demandé à un chemin dans le système de fichiers local, mais elle fusionnera l'URI demandé et le chemin spécifié par root . Par exemple, si la configuration suivante est utilisée :
emplacement/ressource {
    racine /var/www/cdn;
    index index.html;
}
Ensuite, la requête http://example.com/resource sera mappée sur le chemin /var/www/cdn/resource du système de fichiers local . La commande root convient aux services de fichiers statiques simples, mais elle ne peut pas obtenir l'effet de remplacement de chemin.

4.2.2, autoindex : affichage du répertoire

Tout d'abord, vous devez vous assurer que les droits d'accès au répertoire sont correctement définis afin que l'utilisateur Nginx (généralement l' utilisateur nginx ) ait l'autorisation de lire le répertoire. Ensuite, dans le fichier de configuration Nginx, recherchez le bloc d'emplacement correspondant et ajoutez l'autoindex on command, par exemple :
serveur {
    écoutez 80 ;
    nom_serveur exemple.com ;
    emplacement / {
        racine /var/www/example.com ;
        index index.html;
    }
    emplacement /fichiers/ {
        racine /var/www/example.com ;
        indexation automatique activée ;
    }
}
La configuration ci-dessus spécifie le chemin /files/ pour afficher le répertoire. Lors de la demande de http://example.com/files/ , Nginx listera automatiquement tous les fichiers et sous-répertoires du répertoire et les affichera sur la page Web.
Vous pouvez personnaliser le format d'affichage du listing des répertoires en configurant la directive autoindex_format , par exemple :
emplacement /fichiers/ {
    racine /var/www/example.com ;
    indexation automatique activée ;
    autoindex_format html ;
    autoindex_exact_size désactivé ;
    autoindex_localtime activé ;
}
La configuration ci-dessus spécifie l'affichage des listes de répertoires au format HTML, ne pas afficher les valeurs exactes de la taille des fichiers, afficher l'heure locale au lieu de l'heure GMT, etc.
A noter que lors de l'affichage d'un répertoire, s'il y a un fichier index.html dans le répertoire, Nginx donnera la priorité à l'affichage du contenu du fichier au lieu de la liste des répertoires. Vous pouvez changer le fichier d'index par défaut en modifiant la commande index , par exemple :
emplacement /fichiers/ {
    racine /var/www/example.com ;
    indexation automatique activée ;
    index index.html index.php;
}
La configuration ci-dessus recherchera les fichiers index.html et index.php dans le répertoire. Si l'un des fichiers est trouvé, le contenu du fichier sera affiché en premier, sinon la liste des répertoires sera affichée.

4.2.3, proxy_pass : Indique l'adresse du proxy inverse, qui peut transmettre la demande du client au service backend spécifié par l'adresse pour traitement.

  Il est plus courant d'utiliser l'élément de configuration proxy_pass dans le bloc location, les exemples sont les suivants   :   
emplacement /app/ {
  proxy_pass http://localhost:8000/;
  proxy_set_header Hôte $host ;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
La configuration ci-dessus transmettra   la requête contenant le chemin /app/ vers   http://localhost:8000/ et transmettra les paramètres de l'en-tête de requête Host , X-Real-IP et X-Forwarded-For au service backend.      
Dans   l'élément de configuration proxy_pass   , des protocoles tels que HTTP, HTTPS et FTP peuvent être spécifiés, et la cible du proxy inverse peut également être spécifiée via le nom de domaine. Par exemple:
    1. Utilisez HTTPS :
emplacement /app/ {
  proxy_pass https://localhost:8000/;
  ...
}
    2. Utilisez un nom de domaine :
emplacement /app/ {
  proxy_pass http://backend.example.com ;
  ...
}
Il convient de noter que pour   l'adresse spécifiée dans proxy_pass, s'il s'agit d'un nom de domaine ou d'une autre adresse qui doit être résolue, il est nécessaire de confirmer si la résolution DNS est correcte et d'envisager des solutions de sécurité associées, telles que comme SSL/TLS, etc.   De plus, lorsque vous utilisez   proxy_pass   , vous devez prendre en compte le réglage des performances du proxy inverse, comme   l'optimisation via keepalive , proxy_cache et d'autres éléments de configuration, pour éviter que le proxy inverse ne devienne un goulot d'étranglement des performances du système. 

Continuellement mis à jour !

Je suppose que tu aimes

Origine blog.csdn.net/weixin_51689532/article/details/129893094
conseillé
Classement