NGINX
De SLM - MediaWiki
NGINX est un serveur web performant, la hierarchie des fichiers de configuration est la suivante :
Sommaire
- 1 Emplacement des fichiers
- 2 Avantages :
- 3 Inconvénients :
- 4 NGINX en tant que proxy inverse
- 5 Test des fichiers de configuration
- 6 Reload. des fichiers de configuration
- 7 Redémarrage du service NGINX sous Debian
- 8 Désactiver le service NGINX sous Debian
- 9 Bloquer une IP
- 10 Bloquer un nom d'hôte en retournant un code HTTP
- 11 Retour du code 503 dans les cas de maintenance / interruption de service
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;