GNU/Linux >> Tutoriels Linux >  >> AlmaLinux

Comment installer Nginx sur AlmaLinux 8

NGINX est un logiciel serveur HTTP open-source et gratuit. En plus de ses capacités de serveur HTTP, NGINX peut également fonctionner comme un serveur proxy pour le courrier électronique (IMAP, POP3 et SMTP) et un proxy inverse et un équilibreur de charge pour les serveurs HTTP, TCP et UDP. L'objectif derrière NGINX était de créer le serveur Web le plus rapide du marché, et le maintien de cette excellence est toujours un objectif central du projet Nginx. NGINX bat constamment Apache et d'autres serveurs dans les benchmarks mesurant les performances des serveurs Web et est désormais le serveur Web le plus utilisé selon W3Tech.

Dans le didacticiel, vous apprendrez comment installer Nginx sur AlmaLinux 8 avec un certificat TLS/SSL gratuit de Let's Encrypt.

Prérequis

  • OS recommandé : AlmaLinux 8.
  • Compte utilisateur : Un compte utilisateur avec des privilèges sudo ou accès root (commande su) .

Mise à jour du système d'exploitation

Mettez à jour votre AlmaLinux système d'exploitation pour s'assurer que tous les packages existants sont à jour :

sudo dnf upgrade --refresh

Le tutoriel utilisera la commande sudo et en supposant que vous avez le statut sudo .

Pour vérifier le statut sudo sur votre compte :

sudo whoami

Exemple de sortie montrant l'état de sudo :

[joshua@localhost ~]$ sudo whoami
root

Pour configurer un compte sudo existant ou nouveau, visitez notre tutoriel sur Comment ajouter un utilisateur aux Sudoers sur AlmaLinux .

Pour utiliser le compte racine , utilisez la commande suivante avec le mot de passe root pour vous connecter.

su

Installer Nginx

Méthode 1. Installer Nginx depuis AlmaLinux AppStream

La première méthode consiste à installer Nginx à partir du flux AlmaLinux App. Cette version est plus ancienne mais stable et sécurisée. Si vous devez exécuter un serveur Web principal ou un proxy inverse, l'installation du référentiel App Stream est souvent recommandée.

Pour installer Nginx, exécutez la commande suivante.

sudo dnf install nginx

Exemple de résultat :

Tapez "O" , puis appuyez sur la « TOUCHE ENTRÉE » pour poursuivre l'installation.

Ensuite, vérifiez la version de build et si l'installation a réussi.

sudo nginx -v

Exemple de résultat :

nginx version: nginx/1.14.1

Notez que vos sorties seront différentes selon le module que vous activez.

Avant de continuer, vous devez démarrer le service Nginx.

sudo systemctl start nginx

Ensuite, vérifiez l'état pour vous assurer qu'il n'y a pas d'erreurs.

systemctl status nginx

Exemple de sortie si tout fonctionne correctement :

Méthode 2. Installer Nginx depuis EPEL

La deuxième option consiste à installer Nginx à partir du référentiel EPEL. Cela vous apportera une version beaucoup plus à jour de Nginx qui est toujours considérée comme stable que l'installation des dernières versions obsolètes de Nginx lui-même. Le processus est relativement simple.

Tout d'abord, installez le référentiel EPEL :

sudo dnf install epel-release

Exemple de résultat :

Tapez "O", puis appuyez sur la « TOUCHE ENTRÉE » pour poursuivre l'installation.

Maintenant, avec l'EPEL installé, vous devez réinitialiser les modules Nginx.

sudo dnf module reset nginx

Ensuite, répertoriez les modules disponibles disponibles avec dnf à partir de tous les référentiels connus.

sudo dnf module list nginx

Exemple de résultat :

Comme ci-dessus, vous pouvez soit passer à une version supérieure de stable ou mainline. Notez que la version stable est toujours dans le numéro de build, et la ligne principale est naturellement la ligne principale.

Pour activer l'un des nouveaux modules d'EPEL, utilisez ce qui suit dans votre terminal.

Activer la dernière version stable :

sudo dnf module enable nginx:1.20

Remarque pour Nginx EPEL stable : Cela pourrait changer à l'avenir. Assurez-vous de lister les modules et pas seulement de copier-coller.

Activer la dernière ligne principale :

sudo dnf module enable nginx:mainline

Maintenant, installez Nginx :

sudo dnf install nginx

Exemple de résultat :

Tapez "O," puis appuyez sur la « TOUCHE ENTRÉE » pour poursuivre l'installation.

Ensuite, vérifiez la version de build et si l'installation a réussi.

sudo nginx -v

Exemple de sortie (Mainline) :

nginx version: nginx/1.19.10

Notez que vos sorties seront différentes selon le module que vous activez.

Avant de continuer, vous devez démarrer le service Nginx.

sudo systemctl enable nginx --now

Ensuite, vérifiez l'état pour vous assurer qu'il n'y a pas d'erreurs.

systemctl status nginx

Exemple de sortie si tout fonctionne correctement :

Configurer les règles de pare-feu

Il n'ajoute pas automatiquement de règles de pare-feu aux ports standard 80 ou 443 lors de l'installation de Nginx. Avant de continuer, vous devez définir les règles suivantes, cela dépendra des ports que vous utiliserez, mais toutes les options sont répertoriées.

Ouvrir le port 80 ou HTTP :

sudo firewall-cmd --permanent --zone=public --add-service=http

Ouvrir le port 443 ou HTTPS :

sudo firewall-cmd --permanent --zone=public --add-service=https

Recharger le pare-feu pour appliquer les modifications

sudo firewall-cmd --reload

Configurer le serveur Nginx

Vous aurez besoin d'avoir l'adresse IP du serveur prête pour la configuration. La façon la plus simple de le faire est avec ce qui suit.

Rechercher l'adresse IP du serveur

Vous devrez préparer l'adresse IP du serveur pour la configuration. La façon la plus simple de le faire est avec ce qui suit.

curl -4 icanhazip.com

Exemple de résultat :

XXX.XXX.XXX.XXX IP address

Si les commandes ne fonctionnent pas, vous n'avez probablement pas installé le package curl. Exécutez la commande suivante :

sudo dnf install curl -y

Une fois que vous avez l'adresse IP de votre serveur, ouvrez votre navigateur Internet préféré et vérifiez que la page de destination par défaut fonctionne.

http://your_server_ip

Vous devriez obtenir la page suivante dans votre navigateur Internet. Si vous n'obtenez pas cette page mais une page d'erreur Nginx à la place, ce n'est pas grave car la version EPEL peut différer. Vous testez pour vous assurer que vous pouvez atteindre le serveur Nginx.

Configurer le répertoire source du site

Dans le didacticiel, vous configurerez un domaine appelé example.com , mais vous devez remplacer ceci par votre nom de domaine . Le didacticiel créera les répertoires Web et configurera les fichiers du site dans le répertoire parent /var/www/ .

Tout d'abord, créez le répertoire, pour example.com , comme suit, en utilisant le "-p" flag pour créer tous les répertoires parents nécessaires :

sudo mkdir -p /var/www/your_domain/html

Deuxièmement, vous devrez attribuer le propriétaire du répertoire.

sudo chown -R $USER:$USER /var/www/your_domain/html

Troisièmement, attribuez les autorisations du répertoire, afin que le propriétaire lise, écrive et exécute les fichiers tout en n'accordant que des autorisations de lecture et d'exécution aux groupes et autres. Vous pouvez saisir la commande suivante :

sudo chmod -R 755 /var/www/your_domain

Alternativement, vous pouvez utiliser le /usr/share/nginx/html à la place, mais le répertoire /var/www la méthode du répertoire est recommandée pour les nouveaux utilisateurs.

Configurer la page HTML de test

Quatrièmement, créez une page de test que vous utiliserez pour confirmer que votre serveur Nginx est opérationnel.

nano /var/www/your_domain/html/index.html

À l'intérieur de l'éditeur nano et du nouveau fichier que vous avez créé. Entrez ce qui suit.

<html>
 <head>
  <title>Welcome to your_domain!</title>
 </head>
 <body>
   <h1>Success!  The your_domain server block is working!</h1>
 </body>
</html>

Enregistrez le fichier (CTRL+O), puis quittez (CTRL+X) .

Créer un bloc de serveur Nginx

Par défaut, le bloc serveur Nginx, similaire aux hôtes virtuels Apache, est traité dans le /etc/nginx/conf.d annuaire. Cependant, l'installation de Nginx varie selon les différentes versions et distributions utilisant soit le conf.d ou sites disponibles/sites activés par défaut. Pour le tutoriel, les répertoires du site seront utilisés pour garder un standard.

Tout d'abord, rendez les répertoires nécessaires pour les sites disponibles et compatible avec les sites . Les utilisateurs de Nginx connaissent également cette configuration.

sudo mkdir /etc/nginx/sites-available
sudo mkdir /etc/nginx/sites-enabled

Ensuite, ouvrez votre fichier nginx.conf et supprimez ou commentez le "include /etc/nginx/default.d/*.conf;" et directement en dessous, ajoutez include "/etc/nginx/sites-enabled/*.conf;" .

Exemple uniquement :

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 4096;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

###EDIT HERE###
#  include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*.conf;
}

Comme ci-dessus, un "#" le commentaire a été ajouté à inclure conf.d et incluez les sites activés était ajouté.

Enregistrez le fichier (CTRL+O) et quittez (CTRL+X) .

Ensuite, créez votre fichier de configuration de bloc de serveur. Le nom votre_domaine.conf sera utilisé pour le didacticiel, mais vous pouvez le nommer comme vous le souhaitez.

sudo nano /etc/nginx/sites-available/your_domain.conf

Vous pouvez coller l'exemple de code suivant dans le bloc. Ceci n'est qu'un exemple HTTP uniquement pour les tests de base.

server {
 listen 80;
 listen [::]:80;

 root /var/www/your_domain/html;

  index index.html index.htm;
  server_name your_domain www.your_domain;

 location / {
  try_files $uri $uri/ =404;
 }
}

L'exemple montre que votre serveur écoute deux noms de serveur, "votre_domaine" sur le port 80.

Vous devrez remplacer le répertoire racine par le nom/l'emplacement du répertoire racine que vous créez.

Activé le bloc serveur Nginx

Vous devez lier les fichiers de configuration de sites-available à sites-enabled dans votre répertoire Nginx pour activer les blocs de serveur Nginx. Cela peut être fait avec la commande ln -s comme suit.

sudo ln -s /etc/nginx/sites-available/your_domain.conf /etc/nginx/sites-enabled/

Configuration finale et test de fonctionnement

Dans la dernière étape, vous devrez ouvrir votre fichier nginx.conf par défaut fichier.

sudo nano /etc/nginx/nginx.conf

Et décommentez la ligne suivante.

server_names_hash_bucket_size 64;

La taille du compartiment de hachage du nom du serveur est modifiée, car des problèmes surviennent parfois lors de l'ajout de serveurs supplémentaires.

Ensuite, testez votre Nginx pour vous assurer qu'il fonctionne avant de redémarrer correctement.

sudo nginx -t

Le résultat devrait être s'il n'y a pas d'erreurs dans la syntaxe :

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Si vous obtenez la sortie ok suivante, redémarrez le serveur Nginx pour que les modifications aient lieu.

sudo systemctl restart nginx

Ouvrez maintenant votre navigateur Internet et saisissez le nom de domaine du serveur. Vous devriez voir que votre bloc de serveur est en ligne.

Sécuriser Nginx avec le certificat gratuit Let's Encrypt SSL

Idéalement, vous voudriez exécuter votre Nginx sur HTTPS en utilisant un certificat SSL . La meilleure façon de le faire est d'utiliser Let's Encrypt, une autorité de certification gratuite, automatisée et ouverte gérée par le Groupe de recherche sur la sécurité Internet (ISRG) à but non lucratif .

Tout d'abord, installez le EPEL référentiel et le mod_ssl package pour des packages et une sécurité mieux mis à jour.

sudo dnf install epel-release mod_ssl -y

Ensuite, installez le package certbot comme suit :

sudo dnf install python3-certbot-nginx -y

Une fois installé, exécutez la commande suivante pour lancer la création de votre certificat :

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d www.example.com

Il s'agit de la configuration idéale qui inclut les redirections HTTPS 301 forcées, l'en-tête Strict-Transport-Security et l'agrafage OCSP. Assurez-vous simplement d'adapter l'adresse e-mail et le nom de domaine à vos besoins.

Maintenant, votre URL sera HTTPS://www.example.com au lieu de HTTP://www.example.com .

Remarque, si vous utilisez l'ancienne URL HTTP , il redirigera automatiquement vers HTTPS .

En option, vous pouvez définir une tâche cron pour renouveler automatiquement les certificats. Certbot propose un script qui le fait automatiquement, et vous pouvez d'abord tester pour vous assurer que tout fonctionne en effectuant une simulation.

sudo certbot renew --dry-run

Si tout fonctionne, ouvrez votre fenêtre crontab en utilisant la commande de terminal suivante.

sudo crontab -e

Ensuite, spécifiez l'heure à laquelle il doit se renouveler automatiquement. Cela doit être vérifié quotidiennement au minimum, et si le certificat doit être renouvelé, le script ne mettra pas à jour le certificat. Si vous avez besoin d'aide pour trouver un bon moment pour vous installer, utilisez l'outil gratuit crontab.guru.

00 00 */1 * * /usr/sbin/certbot-auto renew

Enregistrer (CTRL+O) puis quittez (CTRL+X), et le cronjob sera automatiquement activé.

Gérer le service Nginx

Maintenant que Nginx s'exécute avec succès sur votre serveur, voici quelques notes clés de gestion.

Pour arrêter le serveur Web Nginx :

sudo systemctl stop nginx

Pour démarrer le serveur Web Nginx :

sudo systemctl start nginx

Pour redémarrer le serveur Web Nginx :

sudo systemctl restart nginx

Pour recharger le serveur Web Nginx (Pour des modifications plus mineures ne nécessitant pas de redémarrage) :

sudo systemctl reload nginx

Pour désactiver Nginx au démarrage du serveur :

sudo systemctl disable nginx

Pour démarrer Nginx au démarrage du serveur (automatiquement activé à l'installation) :

sudo systemctl enable nginx

Comment accéder aux journaux du serveur Nginx

Répertoire des journaux Nginx

Par défaut, tous les journaux d'accès/d'erreurs NGINX, sauf si vous les avez modifiés, se trouvent dans le répertoire des journaux, que la commande suivante peut afficher.

Tout d'abord, accédez au répertoire des journaux et répertoriez les fichiers :

cd /var/log/nginx && ls -l

Vous devriez trouver les fichiers d'accès et d'erreur suivants :

Journal d'accès :

/var/log/nginx/access.log

Journal des erreurs :

/var/log/nginx/error.log

Pour afficher les journaux en temps réel dans votre terminal à l'aide de la commande sudo tail -f /location/of/log path.

Exemple :

sudo tail -f /var/log/nginx/access.log

Une autre option consiste à imprimer le dernier nombre X de lignes. Par exemple, X est remplacé par 30 pour imprimer 30 lignes en ajoutant le drapeau -n 30 .

sudo tail -f /var/log/nginx/access.log -n 30

Ce ne sont là que quelques exemples de lecture de journaux, et grep peut également être utile.

Comment configurer la rotation des journaux Nginx

Nginx installe automatiquement la rotation des journaux et la configure par défaut, qui consiste à effectuer une rotation quotidienne. Vous pouvez modifier ces paramètres en accédant au fichier comme indiqué ci-dessous.

sudo nano /etc/nginx/logrotate.d/nginx

Ensuite, vous verrez la même structure de fichiers sinon similaire. Vous pouvez modifier le contenu ici. La plupart du temps, vous pouvez modifier le nombre de journaux à conserver ou passer de quotidien à hebdomadaire. Cela devrait être laissé par défaut, sauf si vous avez des besoins spécifiques en matière de journalisation pour des logiciels tels que la surveillance fail2ban ou similaire.

/var/log/nginx/*.log {
  daily
  missingok
  rotate 14
  compress
  delaycompress
  notifempty
  create 0640 www-data adm
  sharedscripts
  prerotate
  if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
  run-parts /etc/logrotate.d/httpd-prerotate; \
  fi \
  endscript
  postrotate
  invoke-rc.d nginx rotate >/dev/null 2>&1
  endscript
}

Les principaux paramètres que vous souhaiterez probablement modifier sont les suivants :

  • Tous les jours – Cela peut être changé en Hebdomadaire, Mensuel. Cela doit être conservé quotidiennement, sinon il sera difficile de parcourir le fichier journal.
  • Rotation 14 – C'est le nombre de journaux à conserver et à supprimer, donc au maximum il n'y a que 14 journaux, si vous ne voulez conserver que 7 jours de journaux, changez-le en 7.

Il est recommandé de ne toucher à aucun autre paramètre à moins que vous ne sachiez ce que vous faites.

Comment mettre à jour Nginx

Nginx sera mis à jour par défaut lorsqu'une nouvelle version arrivera dans les référentiels. Avant la mise à niveau, il est toujours conseillé de sauvegarder votre répertoire Nginx ou, à tout le moins, le nginx.conf dossier. Vous pouvez faire l'un ou l'autre avec la commande suivante.

Sauvegarder nginx.conf (fortement recommandé) :

sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx-backup.conf

Sauvegardez l'intégralité de votre dossier Nginx si vous préférez :

sudo cp /etc/nginx/ /etc/nginx-bkup

Ensuite, exécutez la commande de mise à jour standard.

sudo dnf upgrade --refresh

Si une mise à niveau est disponible, exécutez la mise à niveau.

Vous pouvez être invité à le faire lors d'une mise à niveau ou d'une installation, mais il est essentiel de le faire manuellement au préalable. Pour les grandes configurations Nginx de plusieurs sites, la sauvegarde sur quelque chose comme Github ou Gitlab serait encore plus bénéfique.

Comment supprimer (désinstaller) Nginx

Pour supprimer Nginx si vous ne l'utilisez plus, cela peut être fait à l'aide de la commande suivante :

sudo dnf autoremove nginx

Cette commande supprimera également toutes les dépendances inutilisées fournies avec l'installation.

N'oubliez pas que si vous installez Nginx à l'aide d'EPEL et que vous souhaitez le réinitialiser pour réinstaller la version d'origine, utilisez la commande suivante comme indiqué précédemment.

sudo dnf modules reset nginx

AlmaLinux
  1. Comment installer Nginx sur Ubuntu 16.04

  2. Comment installer Nginx sur CentOS 7

  3. Comment installer Nginx sur Debian 9

  4. Comment installer MongoDB sur AlmaLinux 8

  5. Comment installer Nginx sur Debian 11

Comment installer Elasticsearch sur AlmaLinux 8

Comment installer Ntopng sur AlmaLinux 8

Comment installer Laravel sur AlmaLinux 8

Comment installer Prometheus sur AlmaLinux 8

Comment installer la pile LEMP sur AlmaLinux 8

Comment installer Nginx sur AlmaLinux 8