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 à travailler. 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 officiel de Package de CentOS 8. Donc, c'est très facile à installer.

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

$ sudo dnf makecache

Maintenant, installez Nginx avec la commande suivante:

$ sudo dnf installer nginx

Pour confirmer l'installation, appuyez sur Y Et puis appuyez sur .

Nginx doit être installé.

Gestion du service Nginx:

Par défaut, nginx Le service doit être inactif (ne pas courir) et désactivé (ne démarre pas automatiquement sur le démarrage).

$ sudo systemctl status nginx

Vous pouvez commencer le nginx Service comme suit:

$ sudo systemctl start nginx

nginx Le service doit être en cours.

$ sudo systemctl status nginx

Maintenant, ajouter 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 permettre l'accès au port HTTP 80 et HTTPS Port 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 afin d'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 vous. Alors, assurez-vous de le remplacer par le vôtre à partir de maintenant.

Maintenant, visitez http: // 192.168.20.175 de 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.confli est le fichier de configuration Nginx principal.

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

Configuration d'un serveur Web de base:

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

Premièrement, prenez une sauvegarde du fichier de configuration Nginx d'origine avec la commande suivante:

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

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

$ sudo nano / etc / nginx / nginx.confli

Maintenant, saisissez les lignes suivantes dans le / etc / nginx / nginx.confli fichier et enregistrer le fichier.

utilisateur nginx nginx;
wearch_prosses auto;
error_log / var / log / nginx / error.enregistrer;
pid / run / nginx.pid;
événements
Worker_Connections 1024;

http
inclure / etc / nginx / mime.les types;
Default_type Application / Octet-Stream;
serveur
Écoutez 80;
Exemple de nom.com www.exemple.com;
root / usr / share / nginx / html;
Index index.html;
Access_log / var / log / nginx / access.enregistrer;

Ici, utilisateur L'option est utilisée pour définir l'utilisateur et le groupe Ninx Run en nginx respectivement.

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

La configuration du serveur Nginx principal est définie dans le serveur section à l'intérieur du http section. Vous pouvez en définir plus d'un serveur section à l'intérieur du http Section si nécessaire.

Dans le serveur section,

écouter L'option est utilisée pour configurer Nginx pour écouter le port 80 (port HTTP) pour les demandes 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 à l'aide de ces noms de domaine.

Access_log est utilisé pour définir le chemin d'accès au fichier journal vers / var / log / nginx / accès.enregistrer. 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) sera enregistrée 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 de site Web doivent être conservés. Le indice Ensemble d'options indice.html Comme le fichier par défaut à servir si aucun fichier spécifique n'est demandé. Par exemple, si vous visitez http: // 192.168.20.175 / myfile.html, alors vous nginx reviendra mon fichier.html déposer. Mais, si vous visitez http: // 192.168.20.175 /, alors nginx vous enverra l'index.Fichier HTML car aucun fichier spécifique n'a été demandé.

Maintenant, supprimez tous les fichiers du / usr / share / nginx / html / répertoire (web root) 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, saisissez les lignes suivantes dans indice.html fichier et enregistrer 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 de votre navigateur Web et vous devriez voir la page suivante. Bravo! 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 / fichier / 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.confli déposer.

serveur

error_page 404/404.html;

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

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

Maintenant, saisissez les lignes suivantes dans 404.html et enregistrer 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 / nopage.html) et vous devriez voir la page d'erreur suivante.

Si la 404.html Le fichier est dans un chemin de système de fichiers différent (disons / usr / share / nginx / html / errers / répertoire), vous pouvez cartographier l'URL / 404.html à lui comme suit:

serveur

error_page 404/404.html;
Emplacement / 404.html
root / usr / share / nginx / html / erreurs;


Maintenant, faites un nouveau répertoire / usr / share / nginx / html / errers / comme suit:

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

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

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

Maintenant, saisissez les lignes suivantes dans le 404.html fichier et enregistrer 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 / nopage.html) et vous devriez voir la page d'erreur mise à jour.

De la même manière, vous pouvez définir la 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 error_page Option comme suit:

error_page 403 404/404.html;

Configuration des journaux:

Dans nginx, le error_log et Access_log Les options sont utilisées pour les messages d'erreur de l'exploitation forestière 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: personnalisé-nom-nom];
access_log / path / to / access / log / file [Facultatif: nom personnalisé-nom];

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

Pour ce faire, utilisez le log_format 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 octets';

serveur

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


Ici, le nom du format de journal est simple. Certaines variables Nginx sont utilisées pour définir le format de journal personnalisé. Visitez le manuel Nginx Embedded Variables pour en savoir plus sur toutes les variables Nginx.

Le format de journal personnalisé doit être enfermé en citations uniques. Le format de journal peut être défini en une seule ligne ou dans plusieurs lignes. J'ai montré comment définir le format de journal en plusieurs lignes de cet article. Vous n'aurez pas de problème avec le format de journal unique, croyez-moi!

Une fois le format de journal simple 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'erreur personnalisé à l'aide du error_log option.

Je n'ai configuré que 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 / accès.enregistrer

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

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

Si vous le souhaitez, vous pouvez surveiller le journal d'accès et les fichiers journaux d'erreur en même temps que suit:

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

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

Nier l'accès à certains chemins:

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

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

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

serveur

Emplacement ~ \.git
Nier tous;


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

Configuration de la compression:

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

J'ai des 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 pour uniquement les images JPEG dans le chemin URI /images, Tapez les lignes suivantes dans le serveur section de / etc / nginx / nginx.confli déposer.

serveur

Emplacement / images
gzip sur;
gzip_comp_level 9;
gzip_min_length 100000;
GZIP_TYPES Image / JPEG;


Ici, gzip_comp_level est utilisé pour définir le niveau de compression. Cela peut être 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 réglé à environ 100 Ko dans cet exemple. Ainsi, les fichiers JPEG inférieurs à 100 kb ne seront pas compressés 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 .jpeg Extension de fichier, le type de mime est image / jpeg.

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

Si vous souhaitez définir plusieurs types de mime, assurez-vous de les séparer avec 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 d'image compressés GZIP au navigateur à la demande.

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 / accès.enregistrer

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é en Nginx.

Tout d'abord, accédez à la / 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 clé.CRT

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

$ sudo dnf install openssl -y

Maintenant, saisissez votre code de pays à 2 lettres (i.e. États-Unis pour les États-Unis, Royaume-Uni pour le Royaume-Uni, RU pour la Russie, CN pour la Chine) et la presse .

Maintenant, saisissez le nom et la presse de votre état / province .

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

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

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

Maintenant, saisissez le nom de domaine entièrement qualifié (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 doit être prêt.

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

$ ls -lh

Maintenant, ouvrez le fichier de configuration Nginx / etc / nginx / nginx.confli et changer écouter port 443 et tapez dans les lignes suivantes dans le serveur section.

serveur

ssl on;
ssl_certificate / etc / ssl / serveur.CRT;
ssl_certificate_key / etc / ssl / serveur.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é le nom de domaine local basé sur des fichiers sur l'ordinateur que j'ai utilisé pour accéder au serveur Web Nginx depuis.

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

$ sudo nano / etc / hôtes

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 à tester uniquement.

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

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

Les informations SSL de www.exemple.com.

Redirection des demandes HTTP vers HTTPS:

Si quelqu'un visite votre site Web sur 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 demande 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.confli et créer un nouveau serveur section à l'intérieur du http Section comme suit:

http

serveur
Écoutez 80;
server_name www.exemple.com;
retour 301 https: // www.exemple.com $ request_uri;


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

utilisateur nginx nginx;
wearch_prosses auto;
error_log / var / log / nginx / error.enregistrer;
pid / run / nginx.pid;
événements
Worker_Connections 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 octets';
serveur
Écoutez 80;
server_name www.exemple.com;
retour 301 https: // www.exemple.com $ request_uri;

serveur
Écoutez 443;
server_name www.exemple.com;
ssl on;
ssl_certificate / etc / ssl / serveur.CRT;
ssl_certificate_key / etc / ssl / serveur.clé;
Access_log / var / log / nginx / access.journal simple;
emplacement /
root / usr / share / nginx / html;
Index index.html;

Emplacement / images
gzip sur;
gzip_comp_level 9;
gzip_min_length 100000;
GZIP_TYPES Image / JPEG;

error_page 404/404.html;
Emplacement / 404.html
root / usr / share / nginx / html / erreurs;

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 donc ainsi que vous installez et configurez le serveur Web Nginx sur CentOS 8. Merci d'avoir lu cet article.