Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
serveurs:installation:web-srv:nginx [2021/03/24 11:36] – [Éviter l'erreur "bind() to 172.18.5.1:9090 failed (99: Cannot assign requested address)"] jpmilcent | serveurs:installation:web-srv:nginx [2023/08/03 13:47] (Version actuelle) – [Ajouter le support de GeoIp] jpmilcent | ||
---|---|---|---|
Ligne 4: | Ligne 4: | ||
===== Installation ===== | ===== Installation ===== | ||
- | * Installer //Nginx// et //Certbot// : '' | + | * Installer //Nginx// et //Certbot// : '' |
* Activer le redémarrage automatique du service : '' | * Activer le redémarrage automatique du service : '' | ||
- | * Activer le démarrage automatique du service Systemd lançant deux fois par jour '' | + | * Activer le démarrage automatique du service Systemd lançant deux fois par jour '' |
* Vérifier le status et démarrer le service si nécessaire : '' | * Vérifier le status et démarrer le service si nécessaire : '' | ||
Ligne 45: | Ligne 45: | ||
===== Modification du format des logs ===== | ===== Modification du format des logs ===== | ||
Modifier les logs d' | Modifier les logs d' | ||
- | * Éditer la conf de Nginx '' | + | * Éditer la conf de Nginx '' |
access_log / | access_log / | ||
- | error_log / | ||
</ | </ | ||
* Par le contenu suivant : <code nginx> | * Par le contenu suivant : <code nginx> | ||
# Enabling request time | # Enabling request time | ||
- | log_format enhanced-fmt ' | + | log_format enhanced-fmt ' |
'" | '" | ||
'" | '" | ||
- | ' | + | 'rt="$request_time" |
' | ' | ||
access_log / | access_log / | ||
- | error_log / | ||
</ | </ | ||
+ | **ATTENTION** : vérifier la présence du nom de domaine de l' | ||
===== Configuration de la compression ===== | ===== Configuration de la compression ===== | ||
Activer la compression Gzip du contenu renvoyé par Nginx pour tous les types Mime (JS, CSS...) : | Activer la compression Gzip du contenu renvoyé par Nginx pour tous les types Mime (JS, CSS...) : | ||
Ligne 109: | Ligne 107: | ||
text/ | text/ | ||
</ | </ | ||
+ | |||
+ | ===== Configuration de la taille maximum des fichiers téléverssables ===== | ||
+ | * Il est nécessaire d' | ||
+ | client_max_body_size 12M; | ||
+ | </ | ||
+ | * Indiquer la taille maximum des fichiers téléverssables en Méga Octets. Dans l' | ||
+ | |||
===== Ajouter le support de GeoIp ===== | ===== Ajouter le support de GeoIp ===== | ||
* Vérifier le support de GeoIp par Ngninx : '' | * Vérifier le support de GeoIp par Ngninx : '' | ||
- | * GeoIP n'est plus maintenu => geoip2 dont le module et le support dans Nginx nécessite [[https:// | + | * GeoIP n'est plus maintenu => geoip2 dont le module et le support dans Nginx nécessite [[https:// |
- | * À voir plus tard... | + | * Debian 11+ : installer le module avec : '' |
- | * Apparemment, | + | |
===== Ajouter le support des fichiers d' | ===== Ajouter le support des fichiers d' | ||
- | * Installer le paquet suivant : '' | + | * Installer le paquet suivant : '' |
* Pour créer une fichier // | * Pour créer une fichier // | ||
* Ensuite, pour ajouter des utilisateurs (sans l' | * Ensuite, pour ajouter des utilisateurs (sans l' | ||
- | * Pour limiter l' | + | * Pour limiter l' |
- | auth_basic " | + | satisfy any; |
+ | allow < | ||
+ | deny all; | ||
+ | auth_basic " | ||
auth_basic_user_file / | auth_basic_user_file / | ||
</ | </ | ||
Ligne 160: | Ligne 168: | ||
* Vérifier la présence du texte // | * Vérifier la présence du texte // | ||
* Redémarrer la machine, attendre son redémarrage, | * Redémarrer la machine, attendre son redémarrage, | ||
+ | |||
+ | ===== Création d'un certificat SSL avec Certbot ===== | ||
+ | D'une manière générale la démarche à suivre pour créer un certificat SSL chez Letsencrypt à l'aide de Certbot : | ||
+ | * Installer un certificat SSL via Certbot (Letsencrypt) : ''< | ||
+ | * Ex. pour PACA : ''< | ||
+ | * Lors de la première utilisation de certbot sur un serveur, il est nécessaire d' | ||
+ | * Email à fournir : adminsys@< | ||
+ | * Pour les 2 questions suivantes, répondre : A -> N | ||
+ | * Lors de la demande de redirection du HTTP vers HTTPS, il est souhaitable de réponde 1 afin de le configurer manuellement comme indiqué ci-dessous. Dans le cas contraire, répondre 2. | ||
+ | * Si vous avez répondu 2, vous pouvez tester immédiatement la redirection auto de HTTP vers HTTPS : < | ||
+ | * Tester les configurations SSL : | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * Exemple de fichier de conf Nginx contenant la redirection HTTP vers HTTPS (en 302 afin d' | ||
+ | server { | ||
+ | listen 443 ssl http2; | ||
+ | listen [::]:443 ssl http2; | ||
+ | |||
+ | server_name < | ||
+ | root / | ||
+ | |||
+ | # Exemple pour une API Python utilisant Gunicorn | ||
+ | location ^~ "/ | ||
+ | proxy_set_header X-Forwarded-Host $host: | ||
+ | proxy_set_header X-Forwarded-Server $host; | ||
+ | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | ||
+ | proxy_set_header X-Forwarded-Proto $scheme; | ||
+ | | ||
+ | # Set timeout like Gunicorn in API | ||
+ | proxy_read_timeout 300s; | ||
+ | proxy_connect_timeout 75s; | ||
+ | proxy_pass http:// | ||
+ | } | ||
+ | |||
+ | ssl_certificate / | ||
+ | ssl_certificate_key / | ||
+ | include / | ||
+ | ssl_dhparam / | ||
+ | } | ||
+ | |||
+ | server { | ||
+ | listen 443 ssl http2; | ||
+ | listen [::]:443 ssl http2; | ||
+ | server_name < | ||
+ | |||
+ | ssl_certificate / | ||
+ | ssl_certificate_key / | ||
+ | include / | ||
+ | ssl_dhparam / | ||
+ | |||
+ | return 302 https://< | ||
+ | } | ||
+ | |||
+ | server { | ||
+ | listen 80; | ||
+ | listen [::]:80; | ||
+ | server_name < | ||
+ | return 302 https://< | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== Suppression d'un certificat SSL avec Certbot ===== | ||
+ | Si vous souhaitez supprimer une certificat SSL créé par l' | ||
+ |