NGINX : Différence entre versions

De SLM - MediaWiki
(Created page with "NGINX est un serveur web performant, la hierarchie des fichiers de configuration est la suivante : *les fichiers de configurations se trouvent généralement dans /etc/nginx/...")
 
 
(2 révisions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
 +
[[Debian|Retour]]
 +
 
NGINX est un serveur web performant, la hierarchie des fichiers de configuration est la suivante :
 
NGINX est un serveur web performant, la hierarchie des fichiers de configuration est la suivante :
  
*les fichiers de configurations se trouvent généralement dans /etc/nginx/
+
==Emplacement des fichiers==
*les fichiers de configurations des sites se trouvent dans :
+
les fichiers de configurations se trouvent généralement dans /etc/nginx/
:*/etc/nginx/sites-enabled/
 
:*/etc/nginx/sites-available/
 
  
=== Avantages : ===
+
les fichiers de configurations des sites se trouvent dans :
 +
*/etc/nginx/sites-enabled/
 +
*/etc/nginx/sites-available/
  
 +
== Avantages : ==
 
*performant
 
*performant
 
*faible consommation de ressources, léger
 
*faible consommation de ressources, léger
Ligne 13 : Ligne 16 :
 
*idéal en tant que proxy inverse ou pour de l'équlibrage de charges
 
*idéal en tant que proxy inverse ou pour de l'équlibrage de charges
 
*options et extensions disponible en masse
 
*options et extensions disponible en masse
=== Inconvénients : ===
+
== Inconvénients : ==
  
 
*ignore les .htaccess ce qui peut engendrer de la configuration supplémentaire pour les CMS/frameworks populaires facilitant Apache avec les .htaccess comme Joomla (par exemple si l'on veut activer la réecriture d'URLs)
 
*ignore les .htaccess ce qui peut engendrer de la configuration supplémentaire pour les CMS/frameworks populaires facilitant Apache avec les .htaccess comme Joomla (par exemple si l'on veut activer la réecriture d'URLs)
Ligne 51 : Ligne 54 :
 
== Test des fichiers de configuration ==
 
== Test des fichiers de configuration ==
  
<code>
+
  nginx -t
  nginx -t</code>
 
  
 
== Reload. des fichiers de configuration ==
 
== Reload. des fichiers de configuration ==
  
<code>
+
  nginx -s reload
  nginx -s reload</code>
 
  
 
== Redémarrage du service NGINX sous Debian ==
 
== Redémarrage du service NGINX sous Debian ==
  
<code>
+
  /etc/init.d/nginx restart
  /etc/init.d/nginx restart</code>
 
  
 
ou
 
ou
 
+
  service nginx restart
<code>
 
  service nginx restart</code>
 
  
 
== Désactiver le service NGINX sous Debian ==
 
== Désactiver le service NGINX sous Debian ==
  
<code>
+
  update-rc.d nginx disable
  update-rc.d nginx disable</code>
 
  
 
== Bloquer une IP ==
 
== Bloquer une IP ==
Ligne 78 : Ligne 75 :
 
Dans une règle de type "location" :
 
Dans une règle de type "location" :
  
<code>
+
  deny x.x.x.x;
  deny x.x.x.x;</code>
 
  
 
== Bloquer un nom d'hôte en retournant un code HTTP  ==
 
== Bloquer un nom d'hôte en retournant un code HTTP  ==
Ligne 85 : Ligne 81 :
 
Dans un bloc (exemple avec le nom d'hôte "'''super.ae'''") :
 
Dans un bloc (exemple avec le nom d'hôte "'''super.ae'''") :
  
<code>
 
 
  if ($http_host ~* (super.ae)) {
 
  if ($http_host ~* (super.ae)) {
 
     return 444;
 
     return 444;
  }</code>
+
  }
  
 
== Retour du code 503 dans les cas de maintenance / interruption de service ==
 
== Retour du code 503 dans les cas de maintenance / interruption de service ==
  
<code>
+
Le code de réponse HTTP d'erreur serveur 503 Service Unavailable indique que le serveur n'est pas prêt à traiter la requête.
Le code de réponse HTTP d'erreur serveur 503 Service Unavailable indique que le serveur n'est pas prêt à traiter la requête.</code>
 
  
 
La présence d'une réponse 503 permet d'indiquer aux moteurs de recherche de revenir plus tard, n'impactant pas le SEO.
 
La présence d'une réponse 503 permet d'indiquer aux moteurs de recherche de revenir plus tard, n'impactant pas le SEO.
Ligne 99 : Ligne 93 :
 
Dans un bloc :
 
Dans un bloc :
  
<code>
+
  return 503;
  return 503;</code>
 

Version actuelle datée du 1 avril 2020 à 07:56

Retour

NGINX est un serveur web performant, la hierarchie des fichiers de configuration est la suivante :

Emplacement des fichiers

les fichiers de configurations se trouvent généralement dans /etc/nginx/

les fichiers de configurations des sites se trouvent dans :

*/etc/nginx/sites-enabled/
*/etc/nginx/sites-available/

Avantages :

  • performant
  • faible consommation de ressources, léger
  • config. souple, language de configuration simple et accessible pour peu que l'on connaisse les REGEX pour tout ce qui est filtrage
  • idéal en tant que proxy inverse ou pour de l'équlibrage de charges
  • options et extensions disponible en masse

Inconvénients :

  • ignore les .htaccess ce qui peut engendrer de la configuration supplémentaire pour les CMS/frameworks populaires facilitant Apache avec les .htaccess comme Joomla (par exemple si l'on veut activer la réecriture d'URLs)
  • plus difficile à configurer dans certain cas contrairement à Apache (notamment pour les fonctionnalités avancées des CMS/frameworks populaires comme la réecriture d'URL)

NGINX en tant que proxy inverse

Exemple de configuration HTTPS (HTTP étant redirigé en HTTPS) pour un site ayant le domaine "monsite.com" :

       server { 
           listen 80;
           server_name monsite.com;
           # redirect to HTTPS
           rewrite ^ https://$server_name$request_uri? permanent;
           access_log /var/log/nginx/monsite.access_log;
       }
       server {
           listen 443;
           server_name monsite.com;
           # simple SSL setup with self-signed certificates available on the turnkey nginx images (https://letsencrypt.org/ can be used to obtain a trusted free certificate)
           ssl on;
           ssl_certificate /etc/nginx/ssl/server.crt;
           ssl_certificate_key /etc/nginx/ssl/server.key;
           # generic inverse proxy scheme to local VM http://10.0.1.113:80 with real ip forwarding
           location / {
               proxy_set_header X-Real-IP $remote_addr;
               proxy_set_header Host $host;
               proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
               proxy_set_header X-Forwarded-Proto $scheme; # this line is only useful for HTTPS
               proxy_pass http://10.0.1.113:80;
           }
           access_log /var/log/nginx/monsite.access_log;
           error_log /var/log/nginx/monsite.error_log info;
       }

Test des fichiers de configuration

nginx -t

Reload. des fichiers de configuration

nginx -s reload

Redémarrage du service NGINX sous Debian

/etc/init.d/nginx restart

ou

service nginx restart

Désactiver le service NGINX sous Debian

update-rc.d nginx disable

Bloquer une IP

Dans une règle de type "location" :

deny x.x.x.x;

Bloquer un nom d'hôte en retournant un code HTTP

Dans un bloc (exemple avec le nom d'hôte "super.ae") :

if ($http_host ~* (super.ae)) {
   return 444;
}

Retour du code 503 dans les cas de maintenance / interruption de service

Le code de réponse HTTP d'erreur serveur 503 Service Unavailable indique que le serveur n'est pas prêt à traiter la requête.

La présence d'une réponse 503 permet d'indiquer aux moteurs de recherche de revenir plus tard, n'impactant pas le SEO.

Dans un bloc :

return 503;