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
Installation, configuration and hardening of a nginx proxy with one website.
ansible-galaxy install hoall.nginx-proxy