Installer et compiler «Nginx 1.dix.0 ”(libération stable) à partir de sources de Rhel / Centos 7.0

Installer et compiler «Nginx 1.dix.0 ”(libération stable) à partir de sources de Rhel / Centos 7.0

Nginx est le serveur Web à croissance la plus rapide aujourd'hui sur les serveurs publics à l'Internet en raison de son modèle modulaire open source gratuit, de ses fichiers de configurations simples à haute performance, de stabilité, d'architecture asynchrone (axée sur l'événement) et de faibles ressources nécessaires pour exécuter.

Exigences

Pour rhel 7.0
  1. Installation minimale de RHEL 7.0
  2. Abonnement actif Redhat et référentiels sur RHEL 7.0
Pour les centos 7.0
  1. Installation minimale de CentOS 7.0
Configurer l'adresse IP statique
  1. Définissez l'adresse IP statique sur RHEL / CentOS 7.0

Ce tutoriel vous guidera sur l'installation de la dernière version stable de Nginx 1.dix.0 Sur Red Hat Enterprise ou Centos 7 à partir de sources, car les référentiels officiels de RHEL / CentOS 7 ne fournissent pas de package binaire. Si vous souhaitez éviter l'installation de sources, vous pouvez ajouter le référentiel Nginx officiel et installer le package binaire (les versions disponibles sont 1.9.X) avec l'aide de Yum Package Manager comme indiqué:

Pour activer le référentiel officiel de Nginx Yum pour RHEL / CentOS 7, créez un fichier / etc / yum.se soustraire.d / nginx.repo avec le contenu suivant:

[nginx] name = nginx repo substanl = http: // nginx.org / packages / mainline / centos / 7 / $ basearch / gpgcheck = 0 activé = 1 

Remplacer «Centos» avec "Rhel", Selon la distribution que vous utilisez et installez Nginx avec YUM Package Manager comme indiqué:

# yum install nginx 

Important: Veuillez noter que les dépôts officiels de Nginx Yum officiels vous donneront une version plus ancienne de Nginx, si vous souhaitez vraiment créer une version la plus récente de Nginx, alors je vous suggère de suivre l'installation de la source comme indiqué ci-dessous.

L'utilisation de la compilation et de l'installation de sources présente certains avantages, en raison du fait que vous pouvez installer la dernière version disponible, vous pouvez modifier la configuration de Nginx en ajoutant ou en supprimant les modules, modifier le chemin du système d'installation ou d'autres paramètres importants, en d'autres termes, vous avez un Contrôle complet sur le processus d'installation.

Étape 1: Télécharger, compiler et installer nginx

1. Avant de commencer le processus de compilation et d'installation de Nginx, assurez-vous que vous avez Compilateur C / C ++, PCRE (Expressions régulières compatibles perl), Zrib Bibliothèque de compression et OpenSSL (Si vous avez l'intention d'exécuter NXing avec la prise en charge SSL) Packages installés sur votre machine en émettant la commande suivante.

# yum -y installer gcc gcc-c ++ faire zlib-devel pcre-devel openssl-devel 
Installez le compilateur GCC et C ++
Plugins chargés: FastSetMirror Chargement des vitesses de miroir à partir du fichier hôte mis en cache * Base: CentOS.miroir.filet.Dans * Extras: Centos.miroir.filet.Dans * Mises à jour: Centos.miroir.filet.Dans Package 1: Make-3.82-21.EL7.x86_64 Dépendage des dépendances de résolution des versions déjà installées et la dernière version -> Exécution de chèques de transaction ---> package gcc.x86_64 0: 4.8.5-4.EL7 sera installé -> Traitement Dépendance: libgomp = 4.8.5-4.EL7 pour le package: gcc-4.8.5-4.EL7.x86_64 -> Traitement la dépendance: cpp = 4.8.5-4.EL7 pour le package: gcc-4.8.5-4.EL7.x86_64 -> Traitement la dépendance: libgcc> = 4.8.5-4.EL7 pour le package: gcc-4.8.5-4.EL7.x86_64 -> Traitement Dépendance: glibc-devel> = 2.2.90-12 pour le package: gcc-4.8.5-4.EL7.x86_64 -> Traitement la dépendance: libmpfr.donc.4 () (64 bits) pour le package: gcc-4.8.5-4.EL7.x86_64 -> Traitement Dépendance: libmpc.donc.3 () (64 bits) pour le package: gcc-4.8.5-4.EL7.x86_64 ---> package gcc-c++.x86_64 0: 4.8.5-4.EL7 sera installé -> Traitement Dépendance: libstdc ++ - devel = 4.8.5-4.el7 pour le package: gcc-c ++ - 4.8.5-4.EL7.x86_64 -> Traitement Dépendance: libstdc ++ = 4.8.5-4.el7 pour le package: gcc-c ++ - 4.8.5-4.EL7.x86_64 ---> Package OpenSSL-Devel.x86_64 1: 1.0.1E-51.el7_2.4 sera installé -> Traitement Dépendance: OpenSSL-libs (x86-64) = 1: 1.0.1E-51.el7_2.4 pour le package: 1: openssl-devel-1.0.1E-51.el7_2.4.x86_64 -> Traitement de dépendance: krb5-devel (x86-64) pour le package: 1: openssl-devel-1.0.1E-51.el7_2.4.x86_64 ---> package pcre-devel.x86_64 0: 8.32-15.EL7 sera installé -> Traitement Dépendance: PCRE (x86-64) = 8.32-15.EL7 pour le package: pcre-devel-8.32-15.EL7.x86_64 ---> package zlib-devel.x86_64 0: 1.2.7-15.EL7 sera installé -> Traitement Dépendance: ZLIB = 1.2.7-15.EL7 pour le package: Zlib-devel-1.2.7-15.EL7.x86_64… 

2. Accédez maintenant à la page officielle de Nginx et prenez la dernière version stable (nginx 1.dix.0) Disponible en utilisant wget commande, extraire l'archive TAR et entrez le répertoire extrait nginx, en utilisant la séquence de commandes suivante.

# wget http: // nginx.org / download / nginx-1.dix.0.le goudron.gz # tar xfz nginx-1.dix.0.le goudron.gz # cd nginx-1.dix.0 / # ls-tout 
Télécharger Nginx Source
--2016-03-21 09: 30: 15-- http: // nginx.org / download / nginx-1.dix.0.le goudron.GZ résolvant Nginx.org (nginx.org)… 206.251.255.63, 95.211.80.227, 2001: 1AF8: 4060: A004: 21 :: E3 Connexion à Nginx.org (nginx.org) | 206.251.255.63 |: 80… connecté. Demande HTTP envoyée, en attente de réponse… 200 OK Longueur: 908954 (888K) [Application / Octet-Stream] Enregistrement vers: 'nginx-1.dix.0.le goudron.GZ '100% [=========================================================== ==============================================. ==============================================. ====>] 9,08 954 81.0KB / S en 11S 2016-03-21 09:30:27 (77.4 kb / s) - 'nginx-1.dix.0.le goudron.GZ 'Saved [908954/908954] 

3. L'étape suivante consiste à personnaliser le processus d'installation de Nginx. Utilisez le configurer Fichier pour visualiser les options de configuration et les modules nécessaires à votre processus de compilation à l'aide de la commande suivante et assurez-vous que vous êtes dans nginx-1.6.0 / chemin.

# ./ Configurer - help 
Nginx configurer l'aide
-Aide à imprimer ce message - Prefix = Path Set Installation Prefix --Sbin-Path = Path Set Nginx Binary PathName - Modules-Path = Path Set Modules Path --Conf-Path = Path Set Nginx.confr pathname --error-log-path = path set error log pathname --pid-path = path set nginx.Pid PathName --Lock-Path = Path Set nginx.Lock PathName --User = utilisateur d'utilisateur Utilisateur non priviaire pour les processus de travail --group = groupe de groupe Set Group non priviaire pour les processus de travail --Build = Nom Set Build Name --BuildDir = Dir Set Build Directory --with-Select_Module Activer Sélectionner le module --without-select_module Désactiver le module Sélectionner --with-poll_module Activer le module de sond IPv6 Activer la prise en charge IPv6 --with-http_ssl_module activer ngx_http_ssl_module --with-http_v2_module activer ngx_http_v2_module… 

4. Il est maintenant temps de compiler Nginx avec vos configurations spécifiques et vos modules activés ou désactivés. Pour ce tutoriel, les modules et spécifications suivants sont utilisés, mais vous pouvez modifier la compilation à tous les besoins.

  1. -user = nginx -group = nginx => Utilisateur et groupe système que Nginx s'exécutera comme.
  2. -préfixe = / etc / nginx => répertoire des fichiers serveur (nginx.Fichier Conf et autres fichiers de configuration) - Le répertoire par défaut est / usr / local / nginx.
  3. -sbin-path = / usr / sbin / nginx => Emplacement du fichier exécutable Nginx.
  4. -conf-path = / etc / nginx / nginx.confli => définit le nom du nginx.Fichier de configuration conf - vous pouvez le modifier.
  5. -error-log-path = / var / log / nginx / error.enregistrer => Définit l'emplacement du fichier journal des erreurs de Nginx.
  6. -http-log-path = / var / log / nginx / access.enregistrer => Définit l'emplacement du fichier journal d'accès Nginx.
  7. -pid-path = / var / run / nginx.piquer => Définit le nom du fichier d'identification du processus principal.
  8. -lock-path = / var / run / nginx.serrure => Définit le nom du fichier de verrouillage Nginx.
  9. -avec http_ssl_module => Active la construction du module HTTPS - non construit par défaut et nécessite une bibliothèque OpenSSL.
  10. -avec pcre => Définit le chemin d'accès aux sources de la bibliothèque PCRE - non construite par défaut et nécessite la bibliothèque PCRE.

Pour afficher une liste de tous les modules Nginx, visitez la page Web Nginx Wiki sur http: // wiki.nginx.org / modules.

Si vous n'avez pas besoin d'un module spécifique installé sur Nginx, vous pouvez le désactiver en utilisant la commande suivante.

--sans module_name

Commencez maintenant à compiler Nginx en émettant la commande suivante, qui utilisera toutes les configurations et modules discutés ci-dessus (Assurez-vous que la commande reste sur une seule ligne).

# ./ configure --User = nginx --group = nginx --prefix = / etc / nginx --sbin-path = / usr / sbin / nginx --conf-path = / etc / nginx / nginx.conf --error-log-path = / var / log / nginx / error.log --http-log-path = / var / log / nginx / access.log --pid-path = / var / run / nginx.pid --Lock-Path = / var / run / nginx.Lock --with-http_ssl_module - avec-pcre 
Configurer nginx avec des modules
Vérification de l'OS + Linux 3.dix.0-229.EL7.x86_64 x86_64 Vérification du compilateur C… trouvé + en utilisant le compilateur GNU C + GCC Version: 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC) Vérification de l'interrupteur GCC -Pipe… Trouvé Vérification pour -wl, -e Switch… Found Vérification des opérations atomiques intégrées GCC… Found Vérification des macros variadiques C99… Found Vérification des macros variadiques GCC… Found Envoye for GCC Intégrée 64 bits Byteswap… Found vérification pour unistd.H… Found Vérification des inttypes.H… trouvé en vérifiant les limites.H… Found Vérification de Sys / Filio.H… pas trouvé en vérifiant SYS / PARAM.H… Found Vérification de Sys / Mount.H… Found Vérification de SYS / STATVFS.H… trouvé en vérifiant la crypte.H… Found Vérification des fonctionnalités spécifiques de Linux Vérification de Epoll… Found Contrôlant pour epollrdHup… Found Controching for O_Path… Found Heroking for SendFile ()… Found Heroking for SendFile64 ()… Found Heroking for SYS / PRCTL.H… Found Heatking pour PRCTL (PR_SET_DUMPABLE)… Found Heating pour sched_setAffinity ()… Found Heating pour crypt_r ()… trouvé en vérifiant pour SYS / VFS.H… Found Hearking for Poll ()… trouvé en vérifiant / Dev / Poll… non trouvé… 

5. Une fois que le processus de compilation a vérifié tous les utilitaires requis du système comme le compilateur GNU C, les bibliothèques PCRE et OpenSSL, il crée le faire.confli fichier et sort un résumé de toutes les configurations.

Résumé de la compilation Nginx
Résumé de la configuration + Utilisation du système bibliothèque PCRE + Utilisation du système OpenSSL Library + MD5: Utilisation de la bibliothèque OpenSSL + Sha1: Utilisation de la bibliothèque OpenSSL + Utilisation de la bibliothèque ZLIB NGINX PRÉFIX: "/ etc / nginx" Nginx Fichier binaire: "/ usr / sbin / nginx "Path des modules Nginx:" / etc / nginx / modules "Préfixe de configuration Nginx:" / etc / nginx "Fichier de configuration Nginx:" / etc / nginx / nginx.Fichier PID conf "nginx:" / var / run / nginx.PID "Ninx Error Fichier journal:" / var / log / nginx / error.Journal "Ninx HTTP Access Log Fichier:" / var / log / nginx / Access.Log "Nginx HTTP Client Demande Body Temporary Fichiers Temporary:" Client_Body_Temp "Nginx HTTP Files temporaires Proxy:" Proxy_Temp "Nginx Http Fastcgi Files temporaires:" FASTCGI_ 

6. La dernière étape consiste à construire les binaires en utilisant faire commande, qui peut prendre un certain temps pour terminer en fonction de vos ressources de machine, et installer nginx sur votre système avec faire l'installation commande.

Soyez prudent que faire l'installation nécessite des privilèges racine Pour effectuer l'installation, donc si vous n'êtes pas connecté avec le compte racine, utilisez un utilisateur de privilège avec Sudo.

# faire # faire l'installation 
Exécuter la commande nginx make
make -f objs / makefile Make [1]: entrée répertoire '/ root / nginx-1.dix.0 'Make [1]: Avertissement: fichier' src / core / nginx.h 'a le temps de modification 3110036 s dans le futur cc -c -pipe -o -w -wall -wpointer-arith -wno-unlé-paramètre -werror -g -i src / core -i src / event -i src / event / modules -i src / os / unix -i objs \ -o objs / src / core / nginx.o \ src / core / nginx.C cc -c -pipe -o -w -wall -wpointer-arith -wno-unus-paramètre -werror -g -i src / core -i src / event -i src / event / modules -i src / os / unix -I objs \ -o objs / src / core / ngx_log.o \ src / core / ngx_log.C cc -c -pipe -o -w -wall -wpointer-arith -wno-unus-paramètre -werror -g -i src / core -i src / event -i src / event / modules -i src / os / unix -I objs \ -o objs / src / core / ngx_palloc.o \ src / core / ngx_palloc.C cc -c -pipe -o -w -wall -wpointer-arith -wno-unus-paramètre -werror -g -i src / core -i src / event -i src / event / modules -i src / os / unix -I objs \ -o objs / src / core / ngx_array.o \ src / core / ngx_array.C cc -c -pipe -o -w -wall -wpointer-arith -wno-unus-paramètre -werror -g -i src / core -i src / event -i src / event / modules -i src / os / unix -I objs \ -o objs / src / core / ngx_list.o \ src / core / ngx_list.C cc -c -pipe -o -w -wall -wpointer-arith -wno-unus-paramètre -werror -g -i src / core -i src / event -i src / event / modules -i src / os / unix -I objs \ -o objs / src / core / ngx_hash.o \ src / core / ngx_hash.C cc -c -pipe -o -w -wall -wpointer-arith -wno-unus-paramètre -werror -g -i src / core -i src / event -i src / event / modules -i src / os / unix -I objs \ -o objs / src / core / ngx_buf.o \ src / core / ngx_buf.C cc -c -pipe -o -w -wall -wpointer-arith -wno-unus-paramètre -werror -g -i src / core -i src / event -i src / event / modules -i src / os / unix -I objs \ -o objs / src / core / ngx_queue.O \… 
Exécuter la commande d'installation de Nginx Make
Make -f objs / makefile install make [1]: entrée répertoire '/ root / nginx-1.dix.0 'Make [1]: Avertissement: fichier' src / core / nginx.h 'a le temps de modification 3109935 s dans le futur cc -c -pipe -o -w -wall -wpointer-arith -wno-unlé-paramètre -werror -g -i src / core -i src / event -i src / event / modules -i src / os / unix -i objs \ -o objs / src / core / nginx.o \ src / core / nginx.C cc -c -pipe -o -w -wall -wpointer-arith -wno-unus-paramètre -werror -g -i src / core -i src / event -i src / event / modules -i src / os / unix -I objs \ -o objs / src / core / ngx_log.o \ src / core / ngx_log.C cc -c -pipe -o -w -wall -wpointer-arith -wno-unus-paramètre -werror -g -i src / core -i src / event -i src / event / modules -i src / os / unix -I objs \ -o objs / src / core / ngx_palloc.o \ src / core / ngx_palloc.C cc -c -pipe -o -w -wall -wpointer-arith -wno-unus-paramètre -werror -g -i src / core -i src / event -i src / event / modules -i src / os / unix -I objs \ -o objs / src / core / ngx_array.o \ src / core / ngx_array.C cc -c -pipe -o -w -wall -wpointer-arith -wno-unus-paramètre -werror -g -i src / core -i src / event -i src / event / modules -i src / os / unix -I objs \ -o objs / src / core / ngx_list.o \ src / core / ngx_list.C cc -c -pipe -o -w -wall -wpointer-arith -wno-unus-paramètre -werror -g -i src / core -i src / event -i src / event / modules -i src / os / unix -I objs \ -o objs / src / core / ngx_hash.o \ src / core / ngx_hash.C cc -c -pipe -o -w -wall -wpointer-arith -wno-unus-paramètre -werror -g -i src / core -i src / event -i src / event / modules -i src / os / unix -I objs \ -o objs / src / core / ngx_buf.o \ src / core / ngx_buf.C cc -c -pipe -o -w -wall -wpointer-arith -wno-unus-paramètre -werror -g -i src / core -i src / event -i src / event / modules -i src / os / unix -I objs \ -o objs / src / core / ngx_queue.O \… 

Étape 2: ajuster Nginx et créer un script init

7. Une fois le processus d'installation terminé avec succès, ajoutez nginx Utilisateur du système (avec / etc / nginx / En tant que répertoire domestique et sans shell valide), l'utilisateur que Nginx s'exécutera comme en émettant la commande suivante.

# userAdd -d / etc / nginx / -s / sbin / nologin nginx 
Ajouter un utilisateur Nginx

8. Parce que sur le processus de compilation, nous avions spécifié que Nginx s'étendra à partir de nginx Utilisateur du système, ouvert nginx.confli fichier et modifier l'instruction utilisateur en nginx.

# nano / etc / nginx / nginx.confli

Ici, localisez et modifiez l'utilisateur et, également, documentez les instructions d'emplacement des racines, avec les options suivantes.

utilisateur nginx; emplacement / root / srv / www / html; AutoIndex sur; Index index.index html.htm;
Exécutez Nginx en tant qu'utilisateur Activer Nginx DocumentRoot

9. Avant de démarrer Nginx, assurez-vous que vous avez créé le chemin de racine du document Web, puis démarrez Nginx en utilisant la commande suivante.

# mkdir -p / srv / www / html # / usr / sbin / nginx

Si vous souhaitez vérifier si Nginx s'exécute en utilisant votre invite de shell, exécutez netstat Commande pour vérifier les connexions d'écoute.

# netStat -Tulpn | grep nginx
Créer Nginx DocumentRoot

dix. Pour le vérifier à partir d'un système distant, ajoutez une règle de pare-feu pour ouvrir la connexion à l'extérieur sur le port 80, Ouvrez un navigateur et Direct URL vers votre adresse IP de serveur à http: // server_ip.

# Firewall-CMD --Add-Service = HTTP ## pour la règle de vol # Firewall-CMD --permanent --Add-Service = Http ## Pour une règle permanente # systemctl redémarrer le pare-feu
Vérifiez l'installation de Nginx

11. Pour gérer le processus Nginx, utilisez les commandes suivantes.

  1. nginx -v = Affiche les modules et configurations nginx
  2. nginx -h = options d'aide
  3. nginx = Démarrer le processus Nginx
  4. Nginx -s arrêt = Processus d'arrêt de Nginx
  5. rechargement de nginx -s = Recharger le processus Nginx
# nginx -v 
Vérifiez la version installée Nginx
Version Nginx: Nginx / 1.dix.0 construit par gcc 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC) construit avec OpenSSL 1.0.1E-FIPS 11 février 2013 TLS SNI Prise en charge Activé des arguments de configuration: --User = nginx --group = nginx --prefix = / etc / nginx --sbin-path = / usr / sbin / nginx --conf-path = / etc / nginx / nginx.conf --error-log-path = / var / log / nginx / error.log --http-log-path = / var / log / nginx / access.log --pid-path = / var / run / nginx.pid --Lock-Path = / var / run / nginx.Lock --with-http_ssl_module - avec-pcre 

12. Si vous avez besoin de gérer le processus de démon Nginx via un init Script rhel / centos, créez le fichier nginx suivant sur / etc / init.d/ Chemin du système, puis, vous pouvez utiliser service ou systemctl Commandes pour gérer le processus.

# nano / etc / init.d / nginx

Ajouter le contenu du fichier suivant.

#!/ bin / sh # # nginx - Ce script démarre et arrête le daemon nginx # # chkconfig: - 85 15 # Description: nginx est un serveur http (s), http (s) reverse \ # proxy et imap / pop3 proxy serveur # # ProcessName: nginx # config: / etc / nginx / nginx.Conf # pidfile: / var / run / nginx.PID # Utilisateur: Nginx # Bibliothèque de fonctions source… / etc / rc.d / init.D / fonctions # configuration de réseautage source… / etc / sysconfig / réseau # Vérifiez que le réseautage est en place. ["$ Networking" = "no"] && exit 0 nginx = "/ usr / sbin / nginx" prog = $ (basename $ nginx) nginx_conf_file = "/ etc / nginx / nginx.conf "LockFile = / var / run / nginx.Lock start () [-x $ nginx] || exit 5 [-f $ nginx_conf_file] || exit 6 echo -n $ "start $ prog:" daema $ nginx -c $ nginx_conf_file retval = $? echo [$ retval -eq 0] && toucher $ lockfile return $ retval stop () echo -n $ "arrêt $ prog:" killProc $ prog -quit retval = $? echo [$ retval -eq 0] && rm -f $ lockfile return $ retval restart () configTest || retour $? stop start reload () configTest || retour $? echo -n $ "Recharger $ prog:" killproc $ nginx -hup retval = $? echo force_reload () restart configTest () $ nginx -t -c $ nginx_conf_file rh_status () status $ prog rh_status_q () rh_status> / dev / null 2> & 1 case "1" dans le début) RH_STATUS_Q && exit 0 $ 1 ;; stop) rh_status_q || sortir 0 1 $ ;; redémarrer | configTest) 1 $ ;; recharger) rh_status_q || sortir 7 1 $ ;; Force-Reload) force_reload ;; statut) rh_status ;; condestart | try-restart) rh_status_q || sortie 0 ;; notre
Ajouter le script init nginx

13. Une fois le fichier nginx init créé, ajoutez les autorisations d'exécution et gérez le démon à l'aide des options de commande ci-dessous.

# chmod + x / etc / init.d / nginx # service nginx start | stop | redémarrer | recharger | Force_reload | ConfigTest | Condrestart # SystemCTl Démarrage | Stop | Redémarrer Nginx
Démarrer le serveur Nginx

14. Si vous devez activer Nginx à l'échelle du système, utilisez la commande suivante pour démarrer au démarrage.

# chkconfig nginx on ou # systemctl activer nginx

C'est tout! Maintenant, vous avez une version de Nginx installée sur votre système RHEL / CENTOS 7. Sur le prochain tutoriel, je vais discuter de la façon d'installer et d'activer le gestionnaire de processus PHP-FPM à travers la passerelle Nginx Fastcgi.

Lisez également: Le guide ultime pour sécuriser, durcir et améliorer les performances du serveur Web Nginx