Configuration avancée du reverse proxy HTTP Nginx de Canopsis

Par défaut, l'interface Canopsis et ses API sont accessibles sur le port 8082, par le biais du serveur HTTP Gunicorn.

À partir de Canopsis 3.35.0, un reverse proxy HTTP (Nginx) est aussi proposé par défaut, afin d'apporter une configuration plus avancée du service HTTP lié à Canopsis.

Activation de Nginx dans une installation Canopsis

Mise en place dans une installation Docker

En environnement Docker, une image canopsis/nginx est publiquement disponible depuis Canopsis 3.35.0.

Vous devez, pour cela, posséder une section de ce type dans votre fichier Docker Compose :

nginx:
  image: canopsis/nginx:${CANOPSIS_IMAGE_TAG}
  ports:
    - "80:80"
  env_file:
    - compose.env
  environment:
    - TARGET=http://webserver:8082
  depends_on:
    - "webserver"
  restart: unless-stopped

La variable TARGET correspond à l'URL d'écoute du service Gunicorn, qui s'appelle webserver et qui utilise le port 8082 par défaut.

Mise en place dans une installation par paquets

Dans une installation par paquets, la commande canoctl s'occupe d'installer un serveur Nginx, pour toute nouvelle installation à partir de Canopsis 3.35.0.

Configuration de Nginx

Configuration par défaut

La configuration de Nginx proposée par défaut avec Canopsis se situe dans le fichier /etc/nginx/conf.d/default.conf (contenu dans l'image canopsis/nginx, en environnement Docker).

Ce fichier de configuration est amené à évoluer avec les mises à jour de Canopsis.

Actuellement, cette configuration apporte :

  • un accès unique à l'interface Canopsis par le port HTTP 80 standard ; 
  • une mise en cache de certains éléments (fichiers CSS, fichiers JavaScript, images), afin d'améliorer le temps de chargement de l'interface ;
  • une compression à la volée de la plupart des ressources, afin d'en accélérer le téléchargement dans les navigateurs ;
  • des entêtes de sécurité CORS, nécessaires pour certains applicatifs.

Configuration additionnelle

Vous pouvez compléter le fichier de configuration fourni, ou créer un nouveau fichier .conf dans le répertoire /etc/nginx/conf.d/, comportant vos propres ajouts.

Vous pouvez notamment vous en servir afin :

Canopsis ne supporte néanmoins que la configuration Nginx proposée par défaut.

Utilisation d'un autre serveur HTTP que Nginx

Vous pouvez aussi remplacer Nginx par tout autre serveur HTTP capable de faire du reverse proxy, tel qu'Apache HTTPD ou HAProxy, en fonction de vos besoins.

Vous devez, pour cela, désactiver le service Nginx fourni avec Canopsis (systemctl disable nginx ou arrêt de l'image Docker canopsis/nginx).

Vous pouvez ensuite transposer la configuration /etc/nginx/conf.d/default.conf existante vers la syntaxe de votre propre serveur HTTP. L'utilisation d'un autre serveur HTTP que Nginx est possible, mais n'est cependant pas officiellement supportée.


Dernière mise à jour: 2020-04-10