hoall.nginx-proxy

Rôle nginx-proxy

Ce rôle installe nginx en tant que serveur proxy. Les paramètres sont uniquement pour une utilisation avec https. Assurez-vous donc de configurer votre certificat SSL. Le dhparam sera remplacé par une nouvelle version générée. La génération se fait pendant l'installation. Le rôle définit également quelques valeurs par défaut utiles pour les serveurs proxy.

Le niveau de sécurité est moderne selon la définition de la fondation Mozilla (voir leur générateur pour plus d'informations : https://mozilla.github.io/server-side-tls/ssl-config-generator/). La configuration devrait convenir à la plupart des systèmes. J'ai généré les modèles en utilisant Ubuntu 16.04. HSTS est activé. La configuration obtient un grade A+ de ssllabs.com.

Le site web par défaut est mappé à /. J'ai créé et utilise ce rôle pour abstraire et sécuriser la connexion à mon serveur tomcat.

Si vous avez des améliorations, créez une demande de tirage (pull request).

Exigences

Un certificat SSL et openssl (pour le dhparam). Si vous recherchez un bon rôle, je vous suggère de jeter un œil aux geerlingguy.certbot.

Variables du Rôle

REMARQUE : les variables qui doivent être remplacées sont écrites en MAJUSCULES

Nom Valeur par Défaut Description
NP_SERVER_NAME AUCUN 'Une chaîne contenant les noms auxquels le serveur (et l'emplacement) doit écouter. Par exemple, "example.com www.example.com"'
NP_SSL_CERTIFICATE AUCUN 'Le chemin vers votre certificat SSL (fullchain.pem). Par exemple, /etc/letsencrypt/live/example.de/fullchain.pem'
NP_SSL_CERTIFICATE_KEY AUCUN 'Le chemin vers la clé privée de votre certificat SSL (privkey.pem). Par exemple, /etc/letsencrypt/live/example.de/privkey.pem'
NP_PROXY_PASS AUCUN 'Le chemin vers l'emplacement. Par exemple, "http://127.0.0.1:8080/example/"'
NP_REWRITE AUCUN 'Règle de réécriture pour le site web. Par exemple, "^/example(.*)$ $1 last"'
np_worker_processes {{ ansible_processor_count }} 'Le nombre de processus de travail que nginx doit utiliser. La valeur par défaut est un par cœur, déterminée par la configuration d'ansible.'
np_worker_connections 1024 'Le nombre de connexions pour chaque processus de travail (y compris vers les serveurs en arrière-plan). Gardez à l'esprit qu'un navigateur ouvre plus d'une connexion pour augmenter la vitesse.'
np_keep_alive_timeout 15 'Temps d'attente pour une connexion client inactive en secondes.'
np_client_max_body_size 10m 'Définit la taille maximale autorisée du corps de la requête client, spécifiée dans le champ d'en-tête de requête “Content-Length”.'
np_client_body_buffer_size 10k 'Définit la taille du tampon pour lire le corps de la requête client.'
np_proxy_connect_timeout 10 'Définit un temps d'attente pour établir une connexion avec un serveur proxy. Il est à noter que ce temps d'attente ne peut généralement pas dépasser 75 secondes.'
np_proxy_send_timeout 10 'Définit un temps d'attente (en secondes) pour transmettre une requête au serveur proxy.'
np_proxy_read_timeout 10 'Définit un temps d'attente (en secondes) pour lire une réponse du serveur proxy.'
np_proxy_buffers "32 8k" 'Définit la taille du tampon utilisé pour lire la première partie de la réponse reçue du serveur proxy. Cette partie contient généralement un petit en-tête de réponse. Par défaut, la taille du tampon est égale à une page mémoire. Cela peut être soit 4K soit 8K, selon la plateforme. Il peut cependant être réduit.'

Remarque : certaines parties de cette documentation proviennent de la documentation officielle de nginx (https://nginx.org/en/docs/). Les sources et la documentation sont distribuées sous la licence BSD à deux clauses.

Modifiez les variables en fonction de vos besoins.

Dépendances

Exemple de Playbook

- hosts: serveurs
  roles:
     - { role: hoall.nginx-proxy, NP_SERVER_NAME: "example.com www.example.com", NP_SSL_CERTIFICATE: /etc/letsencrypt/live/fullchain.pem, NP_SSL_CERTIFICATE_KEY: /etc/letsencrypt/live/privkey.pem }

Licence

BSD

Informations sur l'Auteur

Felix Paetow fhmpaetow@fsfe.org

À propos du projet

Installation, configuration and hardening of a nginx proxy with one website.

Installer
ansible-galaxy install hoall.nginx-proxy
Licence
bsd-2-clause
Téléchargements
118
Propriétaire