Nginx

Comment installer Nginx et configurer sur CentOS 8

Comment installer Nginx et configurer sur CentOS 8
Nginx est un serveur Web rapide et léger. Les fichiers de configuration de Nginx sont vraiment simples et faciles à utiliser. C'est une excellente alternative au serveur Web Apache.  Dans cet article, je vais vous montrer comment installer et configurer le serveur Web Nginx sur CentOS 8. Alors, commençons.

Installation de Nginx :

Nginx est disponible dans le référentiel de packages officiel de CentOS 8. Donc, c'est très facile à installer.

Tout d'abord, mettez à jour le cache du référentiel de packages DNF comme suit :

$ sudo dnf makecache

Maintenant, installez Nginx avec la commande suivante :

$ sudo dnf installer nginx

Pour confirmer l'installation, appuyez sur Oui puis appuyez sur .

Nginx doit être installé.

Gestion du service nginx :

Par défaut, nginx le service devrait être inactif (ne fonctionne pas) et désactivée (ne démarre pas automatiquement au démarrage).

$ sudo systemctl status nginx

Vous pouvez démarrer le nginx service comme suit :

$ sudo systemctl démarrer nginx

nginx le service devrait être fonctionnement.

$ sudo systemctl status nginx

Maintenant, ajoutez nginx service au démarrage du système comme suit :

$ sudo systemctl activer nginx

Configuration du pare-feu :

Vous devez configurer le pare-feu pour autoriser l'accès au port HTTP 80 et au port HTTPS 443 afin d'accéder au serveur Web Nginx à partir d'autres ordinateurs du réseau.

Vous pouvez autoriser l'accès au port HTTP et HTTPS avec la commande suivante :

$ sudo firewall-cmd --add-service=http,https --permanent

Maintenant, pour que les modifications prennent effet, exécutez la commande suivante :

$ sudo firewall-cmd --reload

Test du serveur Web :

Vous devez connaître l'adresse IP ou le nom de domaine du serveur Web Nginx pour y accéder.

Vous pouvez trouver l'adresse IP de votre serveur Web Nginx avec la commande suivante :

$ ip a

Dans mon cas, l'adresse IP est 192.168.20.175. Ce sera différent pour toi. Alors, assurez-vous de le remplacer par le vôtre à partir de maintenant.

Maintenant, visitez http://192.168.20.175 depuis votre navigateur Web. Vous devriez voir la page suivante. Cela signifie que le serveur Web Nginx fonctionne.

Fichiers de configuration de nginx :

Les fichiers de configuration du serveur Web Nginx sont dans le /etc/nginx/ annuaire.

$ arbre /etc/nginx

/etc/nginx/nginx.conf est le fichier de configuration principal de Nginx.

Le répertoire racine Web par défaut du serveur Web Nginx est /usr/share/nginx/html/. C'est donc ici que vous devez conserver les fichiers de votre site Web.

Configuration d'un serveur Web de base :

Dans cette section, je vais vous montrer comment configurer un serveur Web Nginx de base.

Tout d'abord, effectuez une sauvegarde du fichier de configuration Nginx d'origine avec la commande suivante :

$ sudo mv -v /etc/nginx/nginx.conf /etc/nginx/nginx.conf.original

Maintenant, créez un nouveau fichier de configuration Nginx comme suit :

$ sudo nano /etc/nginx/nginx.conf

Maintenant, tapez les lignes suivantes dans le /etc/nginx/nginx.conf fichier et enregistrez le fichier.

utilisateur nginx nginx;
worker_processes auto;
error_log /var/log/nginx/error.Journal;
pid /exécuter/nginx.pid;
 
événements
connexions_travailleurs 1024 ;

 
http
inclure             /etc/nginx/mime.les types;
default_type        application/octet-stream ;
 
serveur
écouter          80 ;
server_name     exemple.com www.Exemple.com;
racine            /usr/share/nginx/html ;
index           index.html;
access_log      /var/log/nginx/access.Journal;

Ici, utilisateur L'option est utilisée pour définir l'utilisateur et le groupe d'exécution Nginx sur nginx respectivement.

le error_log L'option est utilisée pour définir le chemin du fichier journal des erreurs sur /var/log/nginx/erreur.Journal. C'est là que les erreurs liées au serveur Nginx seront stockées.

La configuration du serveur principal Nginx est définie dans le serveur section à l'intérieur du http section. Vous pouvez définir plusieurs serveur section à l'intérieur du http rubrique si besoin.

Dans le serveur section,

Ecoutez L'option est utilisée pour configurer Nginx pour écouter le port 80 (port HTTP) pour les requêtes Web.

nom du serveur L'option est utilisée pour définir un ou plusieurs noms de domaine pour le serveur Web Nginx. Si vos paramètres DNS sont corrects, vous pouvez accéder au serveur Web Nginx en utilisant ces noms de domaine.

access_log est utilisé pour définir le chemin du fichier journal d'accès sur /var/log/nginx/access.Journal. Lorsque quelqu'un essaie d'accéder au serveur Web Nginx, les informations d'accès (i.e. adresse IP, URL, code d'état HTTP) seront enregistrés dans ce fichier.

le emplacement L'option est utilisée pour définir le répertoire racine du serveur Web Nginx.

Ici le racine le répertoire est /usr/share/nginx/html/.

C'est là que tous les fichiers du site Web doivent être conservés. le indice ensembles d'options indice.html comme fichier par défaut à servir si aucun fichier spécifique n'est demandé. Par exemple, si vous visitez http://192.168.20.175/mondossier.html , alors Nginx reviendra mon fichier.html déposer. Mais, si vous visitez http://192.168.20.175/, alors Nginx vous enverra l'index.html car aucun fichier spécifique n'a été demandé.

Maintenant, supprimez tous les fichiers du /usr/share/nginx/html/ répertoire (racine Web) comme suit :

$ sudo rm -rfv /usr/share/nginx/html/*

Maintenant, créez un nouveau indice.html fichier dans le /usr/share/nginx/html/ répertoire comme suit :

Maintenant, tapez les lignes suivantes dans indice.html fichier et enregistrez le fichier.

Bonjour le monde


© 2020 LinuxHint.com

Maintenant, redémarrez nginx service comme suit :

$ sudo systemctl redémarrer nginx

Maintenant, visitez http://192.168.20.175 à partir de votre navigateur Web et vous devriez voir la page suivante. félicitations! Vous avez configuré votre premier serveur Web Nginx.

Configuration des pages d'erreur :

Vous pouvez configurer des pages d'erreur dans Nginx. Par exemple, si une page/un fichier/un répertoire n'est pas disponible, le code d'état HTTP 404 sera renvoyé au navigateur. Vous pouvez définir une page d'erreur HTML personnalisée pour le code d'état HTTP 404 qui sera renvoyé au navigateur.

Pour ce faire, ajoutez la ligne suivante dans le serveur section de nginx.conf déposer.

serveur

page_erreur 404 /404.html;

Maintenant, créez un fichier 404.html dans la racine Web Nginx /usr/share/nginx/html/ comme suit:

$ sudo nano /usr/share/nginx/html/404.html

Maintenant, tapez les lignes suivantes dans 404.html et enregistrez le fichier.

Erreur 404


Page non trouvée


© 2020 LinuxHint.com

Maintenant, redémarrez nginx service comme suit :

$ sudo systemctl redémarrer nginx

Maintenant, essayez d'accéder à un chemin inexistant (http://192.168.20.175/pas de page.html) et vous devriez voir la page d'erreur suivante.

Si la 404.html est dans un chemin de système de fichiers différent (disons /usr/share/nginx/html/errors/ répertoire), vous pouvez mapper l'URL /404.html à celui-ci comme suit :

serveur

page_erreur 404 /404.html;
emplacement /404.html
root            /usr/share/nginx/html/errors ;


Maintenant, créez un nouveau répertoire  /usr/share/nginx/html/errors/ comme suit:

$ sudo mkdir /usr/share/nginx/html/errors

Maintenant, créez un nouveau fichier 404.html dans le  répertoire /usr/share/nginx/html/errors/ comme suit:

$ sudo nano /usr/share/nginx/html/errors/404.html

Maintenant, tapez les lignes suivantes dans le 404.html fichier et enregistrez le fichier.

PAGE NON TROUVÉE


RENTRER À LA MAISON

Maintenant, redémarrez nginx service comme suit :

$ sudo systemctl redémarrer nginx

Maintenant, essayez d'accéder à un chemin inexistant (http://192.168.20.175/pas de page.html) et vous devriez voir la page d'erreur mise à jour.

De la même manière, vous pouvez définir une page d'erreur pour d'autres codes d'état HTTP.

Vous pouvez également définir la même page d'erreur pour plusieurs codes d'état HTTP. Par exemple, pour définir la même page d'erreur /404.html pour les codes d'état HTTP 403 et 404, écrire le page_erreur option comme suit :

error_page    403 404    /404.html;

Configuration des journaux :

À Nginx, le error_log et access_log les options sont utilisées pour enregistrer les messages d'erreur et les informations d'accès.

Le format du error_log et access_log les options sont :

error_log /path/to/error/log/file [facultatif:custom-log-name] ;
access_log /chemin/vers/accès/log/fichier [facultatif:nom-journal personnalisé] ;

Vous pouvez définir votre propre journal d'erreurs et accéder aux formats de journal si vous le souhaitez.

Pour ce faire, utilisez le format_journal option dans le http section pour définir votre format de journal personnalisé comme suit.

http

log_format simple      '[$time_iso8601] $request_method $request_uri '
'[$status] ($request_time) -> $bytes_sent bytes';

serveur

access_log /var/log/nginx/access.journal simple;


Ici, le nom du format de journal est Facile. Certaines variables nginx sont utilisées pour définir le format de journal personnalisé. Visitez le manuel des variables intégrées Nginx pour en savoir plus sur toutes les variables Nginx.

Le format de journal personnalisé doit être entouré de guillemets simples. Le format du journal peut être défini sur une seule ligne ou sur plusieurs lignes. J'ai montré comment définir le format du journal sur plusieurs lignes dans cet article. Vous n'aurez aucun problème avec le format de journal sur une seule ligne, croyez-moi!

Une fois le format du journal Facile est défini, access_log L'option est utilisée pour dire à Nginx de l'utiliser comme journal d'accès.

De la même manière, vous pouvez définir un format de journal d'erreurs personnalisé à l'aide de la error_log option.

J'ai uniquement configuré le format de journal personnalisé pour le journal d'accès dans cet article.

Maintenant, redémarrez nginx service comme suit :

$ sudo systemctl redémarrer nginx

Maintenant, vous pouvez surveiller le fichier journal d'accès comme suit :

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

Vous pouvez également surveiller le fichier journal des erreurs comme suit :

$ sudo tail -f /var/log/nginx/error.Journal

Si vous le souhaitez, vous pouvez surveiller simultanément les fichiers journaux d'accès et d'erreurs comme suit :

$ sudo tail -f /var/log/nginx/error,access.Journal

Comme vous pouvez le voir, le nouveau format de journal d'accès est utilisé.

Refuser l'accès à certains chemins :

Vous pouvez utiliser des expressions régulières pour faire correspondre certains chemins d'URI et en refuser l'accès dans Nginx.

Disons que votre site Web est géré par Git et que vous souhaitez refuser l'accès au .git/ répertoire sur votre racine Web.

Pour ce faire, tapez les lignes suivantes dans le serveur section de /etc/nging/nginx.conf déposer:

serveur

emplacement ~ \.git
Nier tous;


Comme vous pouvez le voir, l'accès à n'importe quel chemin qui contient .git est refusé.

Configuration de la compression :

Vous pouvez compresser le contenu Web avant de l'envoyer au navigateur en utilisant gzip pour économiser l'utilisation de la bande passante du serveur Web Nginx.

J'ai quelques images JPEG dans le /usr/share/nginx/html/images/ annuaire.

Je peux accéder à ces images en utilisant le chemin URI /images.

Pour activer la compression gzip uniquement pour les images JPEG dans le chemin URI /images, tapez les lignes suivantes dans le serveur section de /etc/nginx/nginx.conf déposer.

serveur

emplacement / images
gzip activé ;
gzip_comp_level 9 ;
gzip_min_length 100000 ;
gzip_types image/jpeg;


Ici, gzip_comp_level est utilisé pour régler le niveau de compression. Il peut s'agir de n'importe quel nombre de 1 à 9. Plus le niveau est élevé, plus le fichier compressé sera petit.

Le fichier ne sera compressé que si la taille du fichier est supérieure gzip_min_length. Je l'ai mis à environ 100 Ko dans cet exemple. Ainsi, les fichiers JPEG inférieurs à 100 Ko ne seront pas compressés avec gzip.

le  gzip_types est utilisé pour définir le type mime des fichiers qui seront compressés.

Vous pouvez trouver le type mime à partir des extensions de fichiers comme suit :

$ grep jpg /etc/nginx/mime.les types

Comme vous pouvez le voir, pour .jpg ou alors .jpeg extension de fichier, le type mime est image/jpeg.

Vous pouvez définir un ou plusieurs types mime en utilisant gzip_types option.

Si vous souhaitez définir plusieurs types mime, assurez-vous de les séparer par des espaces comme suit :

"
gzip_types image/jpeg image/png image/gif;

Maintenant, redémarrez nginx service comme suit :

$ sudo systemctl redémarrer nginx

Comme vous pouvez le voir, Nginx envoie des fichiers image compressés gzip au navigateur lorsque cela est demandé.

Comme vous pouvez le voir dans la capture d'écran ci-dessous, le fichier compressé gzip est plus petit que le fichier d'origine.

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

Activer HTTPS :

Vous pouvez activer SSL dans Nginx très facilement. Dans cette section, je vais vous montrer comment définir un certificat SSL auto-signé dans Nginx.

Tout d'abord, accédez au /etc/ssl/ répertoire comme suit :

$ cd /etc/ssl

Maintenant, générez une clé SSL serveur.clé et certificat serveur.crt avec la commande suivante :

$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout
serveur.serveur de sortie de clé.crt

REMARQUE: Vous devez avoir ouvressl installé pour que cela fonctionne. Si la commande openssl n'est pas disponible, installez ouvressl avec la commande suivante :

$ sudo dnf install openssl -y

Maintenant, tapez votre code de pays à 2 lettres (i.e. US pour USA, UK pour Royaume-Uni, RU pour Russie, CN pour Chine) et appuyez sur .

Maintenant, tapez le nom de votre état/province et appuyez sur .

Maintenant, saisissez le nom de votre ville et appuyez sur .

Maintenant, tapez le nom de votre entreprise et appuyez sur .

Maintenant, tapez le nom de l'unité organisationnelle de votre entreprise qui utilisera ce certificat et appuyez sur .

Maintenant, tapez le nom de domaine complet (FQDN) de votre serveur Web Nginx et appuyez sur . Le certificat SSL ne sera valide que si le serveur Web Nginx est accessible à l'aide de ce nom de domaine.

Maintenant, saisissez votre adresse e-mail et appuyez sur .

Votre certificat SSL devrait être prêt.

Le certificat SSL et la clé doivent être générés dans le /etc/ssl/ annuaire.

$ ls -lh

Maintenant, ouvrez le fichier de configuration Nginx /etc/nginx/nginx.conf et changer Ecoutez port à 443 et tapez les lignes suivantes dans le serveur section.

serveur

SSL activé;
certificat_ssl /etc/ssl/server.crt;
ssl_certificate_key /etc/ssl/server.clé;

Maintenant, redémarrez nginx service comme suit :

$ sudo systemctl redémarrer nginx

Dans la vraie vie, vous aurez une configuration DNS correcte. Mais à des fins de test, j'ai configuré un nom de domaine local basé sur un fichier sur l'ordinateur que j'ai utilisé pour accéder au serveur Web Nginx à partir de.

Si vous voulez suivre, ouvrez le /etc/hôtes fichier comme suit :

$ sudo nano /etc/hosts

Ensuite, ajoutez la ligne suivante au /etc/hôtes déposer.

192.168.20.175 www.Exemple.com

Maintenant, essayez de visiter https://www.Exemple.com et vous devriez voir la page suivante. Tu verras Votre connexion n'est pas sécurisée message car il s'agit d'un certificat auto-signé. C'est bon à des fins de test seulement.

Dans la vraie vie, vous achèterez des certificats SSL auprès d'autorités de certification (CA) et les utiliserez. Donc, vous ne verrez pas ce type de message.

Comme vous pouvez le voir, Nginx a servi la page Web via HTTPS. Donc, SSL fonctionne.

Les informations SSL de www.Exemple.com.

Redirection des requêtes HTTP vers HTTPS :

Si quelqu'un visite votre site Web via le protocole HTTP (http://www.Exemple.com ou http://192.168.20.175) au lieu de HTTPS (https://www.Exemple.com), vous ne voulez pas rejeter la requête HTTP. Si vous faites cela, vous perdrez un visiteur. Ce que vous devez vraiment faire, c'est rediriger l'utilisateur vers le site compatible SSL. C'est vraiment simple à faire.

Tout d'abord, ouvrez le fichier de configuration Nginx /etc/nginx/nginx.conf et créer un nouveau serveur section à l'intérieur du http rubrique comme suit :

http

serveur
écouter 80 ;
nom_serveur www.Exemple.com;
retour 301 https://www.Exemple.com$request_uri;


C'est la finale /etc/nginx/nginx.conf déposer:

utilisateur nginx nginx;
worker_processes auto;
error_log /var/log/nginx/error.Journal;
pid /exécuter/nginx.pid;
événements
connexions_travailleurs 1024 ;

http
inclure             /etc/nginx/mime.les types;
default_type        application/octet-stream ;
log_format simple   '[$time_iso8601] $request_method $request_uri '
'[$status] ($request_time) -> $bytes_sent bytes';
 
serveur
écouter 80 ;
nom_serveur www.Exemple.com;
retour 301 https://www.Exemple.com$request_uri;

serveur
écouter          443 ;
nom_serveur     www.Exemple.com;
SSL activé;
certificat_ssl /etc/ssl/server.crt;
ssl_certificate_key /etc/ssl/server.clé;
access_log      /var/log/nginx/access.journal simple;
emplacement /
racine            /usr/share/nginx/html ;
index           index.html;

emplacement / images
gzip activé ;
gzip_comp_level 9 ;
gzip_min_length 100000 ;
gzip_types image/jpeg;

page_erreur 404 /404.html;
emplacement /404.html
root            /usr/share/nginx/html/errors ;

emplacement ~ \.git
Nier tous;


Maintenant, redémarrez nginx service comme suit :

$ sudo systemctl redémarrer nginx

Maintenant, si vous essayez d'accéder à http://192.168.20.175 ou http://www.Exemple.com, vous serez redirigé vers https://www.Exemple.com.

C'est ainsi que vous installez et configurez le serveur Web Nginx sur CentOS 8. Merci d'avoir lu cet article.

Meilleurs émulateurs de console de jeu pour Linux
Cet article répertorie les logiciels d'émulation de console de jeu populaires disponibles pour Linux. L'émulation est une couche de compatibilité logi...
Meilleures distributions Linux pour les jeux en 2021
Le système d'exploitation Linux a parcouru un long chemin depuis son apparence originale, simple et basée sur le serveur. Ce système d'exploitation s'...
Comment capturer et diffuser votre session de jeu sur Linux
Dans le passé, jouer à des jeux n'était considéré qu'un passe-temps, mais avec le temps, l'industrie du jeu a connu une croissance énorme en termes de...