NGINX
De SLM - MediaWiki
Révision datée du 29 mars 2020 à 10:18 par Admin (discussion | contributions)
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/
- les fichiers de configurations des sites se trouvent dans :
- /etc/nginx/sites-enabled/
- /etc/nginx/sites-available/
Sommaire
- 1 Avantages :
- 2 Inconvénients :
- 3 NGINX en tant que proxy inverse
- 4 Test des fichiers de configuration
- 5 Reload. des fichiers de configuration
- 6 Redémarrage du service NGINX sous Debian
- 7 Désactiver le service NGINX sous Debian
- 8 Bloquer une IP
- 9 Bloquer un nom d'hôte en retournant un code HTTP
- 10 Retour du code 503 dans les cas de maintenance / interruption de service
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;