Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
Aéquilibreur de chargefait partie de l'infrastructure informatique moderne cruciale conçue pour distribuer efficacement le trafic réseau sur plusieurs serveurs ou ressources. Cela améliore l'évolutivité et les performances du système en évitant qu'un seul serveur ne soit surchargé. Le répartiteur de charge, qui se situe entre les clients et les serveurs à l'arrière, minimise le temps de réponse tout en utilisant les ressources disponibles.
Les équilibreurs de charge effectuent ces tâches de base, qui incluent la tolérance aux pannes, la distribution du trafic et la persistance de session. Un répartiteur de charge peut être un programme logiciel principal, un produit physique ou un service en nuage fourni par AWS ou Azure. Certains des algorithmes les plus couramment utilisés pour l'allocation du trafic sont le Round Robin, le Least Connections et le IP Hash.
HAProxy Dockerfait référence à la mise du load balancer HAProxy dans un conteneur Docker. La puissance des capacités de gestion du trafic de HAProxy peut désormais être combinée avec la flexibilité et la portabilité de Docker. HAProxy est un équilibreur de charge open source populaire et largement utilisé pour les applications web et les environnements de microservices, offrant une haute disponibilité et le proxy inverse. Les avantages de l'exécution de HAProxy dans un hôte de conteneur Docker incluent le déploiement facile, l'isolation, la scalabilité et l'indépendance de la plateforme. HAProxy Docker peut distribuer le trafic entre plusieurs services backend de manière efficace, surveiller l'état de santé des conteneurs et ajuster dynamiquement le routage en fonction de la disponibilité des conteneurs.
Image cassée Ajouter depuis Pixabay, sélectionner depuis vos fichiers ou glisser-déposer une image ici.
Il prend en charge des fonctionnalités telles que la terminaison SSL/TLS, la persistance de session et plusieurs algorithmes d'équilibrage de charge, y compris le Round Robin et Least Connections. Cela fait de HAProxy Docker un excellent moyen de gérer le trafic conteneurisé, car il peut même bien s'intégrer avec des outils d'orchestration comme Kubernetes ou Docker Swarm pour offrir une mise à l'échelle dynamique et une découverte de service automatisée. Cela garantit que les applications modernes disposent d'une gestion de trafic robuste, performante et sécurisée sans aucun problème de fichier.
HAProxy excelle à répartir la charge du trafic réseau sur de nombreux serveurs backend. Ses nombreux algorithmes de répartition de charge incluent le Round Robin, le Least Connections et l'IP Hash, permettant ainsi aux clients d'adapter le flux de trafic en fonction des besoins spécifiques de leurs applications. Cela permet à HAProxy d'accepter le trafic sur la couche 4(TCP)et couche 7(HTTP/HTTPS)architectures prises en charge, ce qui le place dans une gamme de performances élevées allant des applications de routage TCP simples aux équilibrages de charge complexes de la couche application.
La caractéristique centrale, haute disponibilité, signifie que le service est maintenu opérationnel et toujours en cours d'exécution. HAProxy redirige le trafic des serveurs considérés comme non sains ou défaillants en fonction de l'état de santé des serveurs backend. Le basculement empêche trop de temps d'arrêt dans les cas où un serveur n'est pas actif ou tombe en panne de manière inattendue.
HAProxy prend entièrement en charge SSL/TLS, garantissant une communication sécurisée entre le client et les serveurs. De plus, HAProxy peut terminer les connexions SSL/TLS pour décharger les tâches de cryptage et de décryptage des serveurs backend, améliorant ainsi les performances de ces derniers. Si un chiffrement de bout en bout est requis, HAProxy peut transférer le trafic chiffré vers les services situés derrière lui.
HAProxy est l'un des meilleurs reverse proxies pour diriger tout le trafic des requêtes client vers les services associés du côté backend. Il prend en charge des fonctionnalités telles que la modification des en-têtes, la redirection à partir des URL, voire un routage spécialisé basé sur des conditions utilisateur spécifiques qui peuvent être définies selon des règles spécifiques. Ainsi, HAProxy peut également être considéré comme l'un des candidats viables pour l'architecture multi-services, avec les microservices.
HAProxy est doté de nombreuses fonctionnalités de sécurité telles que la limitation de taux, la protection DDoS et les ACLs. Tous ces éléments sont utilisés pour filtrer le trafic entrant, ce qui signifie que les requêtes malveillantes qui pourraient autrement atteindre vos serveurs back-end seront arrêtées, garantissant ainsi la stabilité de vos applications.
HAProxy est hautement évolutif. Il peut facilement prendre en charge des millions de connexions simultanées sans latence associée à l'utilisation et à l'extension, sans rencontrer de problèmes de latence. Cet environnement prend en charge les environnements d'orchestration de conteneurs comme Kubernetes et Docker Swarm, avec leurs charges de travail conteneurisées offrant les avantages de la mise à l'échelle dynamique et de la découverte de services.
HAProxy dispose d'une journalisation granulaire qui peut aider à comprendre les flux, à résoudre les problèmes et à analyser les performances. Il s'intègre parfaitement avec l'outil de surveillance Prometheus, Grafana, et Datadog, entre autres, représentant des données en temps réel concernant l'état de santé des serveurs, le flux de trafic réseau et l'utilisation des ressources.
HAProxy offre une capacité de configuration très flexible et puissante. En l'utilisant, les utilisateurs peuvent définir des règles de routage assez sophistiquées, comme le routage conditionnel basé sur les en-têtes ou les cookies. La réécriture d'URL ainsi que la persistance de session sont prises en charge, y compris la multi-location, permettant à une instance de HAProxy de servir plusieurs domaines ou applications.
L'installation et l'exécution de HAProxy à l'aide de Docker est un processus assez simple. Voici les étapes réalisées une à une.
Assurez-vous que Docker est installé sur votre système. Pour vérifier l'installation, vous pouvez exécuter la commande ci-dessous :
docker --version
docker --version
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'docker --version
Si Docker n'est pas installé sur le système, visitez le Lien Dockerici pour le télécharger et l'installer depuis le site officiel.
Extraire l'image officielle d'HAProxy depuis Docker Hub. La dernière version de HAProxy téléchargera la version stable la plus récente :
docker pull haproxy:latest
docker pull haproxy:latest
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'docker pull haproxy:latest
HAProxy a besoin d'un fichier de configuration qui définit son comportement. Après avoir téléchargé les liens Dockerfile respectifs pour Docker et HAProxy, créez un fichier appelé haproxy.cfg avec le contenu d'exemple suivant :
global
log stdout format raw local0
defaults
log global
mode http
timeout connect 5s
timeout client 50s
timeout server 50s
frontend http_front
bind *:80
default_backend http_back
backend http_back
server app1 host.docker.internal:32769 check
global
log stdout format raw local0
defaults
log global
mode http
timeout connect 5s
timeout client 50s
timeout server 50s
frontend http_front
bind *:80
default_backend http_back
backend http_back
server app1 host.docker.internal:32769 check
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'global log stdout format raw local0 defaults log global mode http timeout connect 5s timeout client 50s timeout server 50s frontend http_front bind *:80 default_backend http_back backend http_back server app1 host.docker.internal:32769 check
Cette configuration HAProxy définit :
Frontend : Écoutez sur le port 4500 et redirigez le trafic vers le backend.
Backend : Distribue le trafic entre deux serveurs, à savoir app1
Exécutez le conteneur Docker HAProxy, en montant le fichier de configuration et en exposant les ports nécessaires :
docker run -d --network haproxy --name haproxy-container -p 4500:4500 -v D:\Docker\haproxy-config\haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro haproxy:latest
docker run -d --network haproxy --name haproxy-container -p 4500:4500 -v D:\Docker\haproxy-config\haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro haproxy:latest
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'docker run -d --network haproxy --name haproxy-container -p 4500:4500 -v D:\Docker\haproxy-config\haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro haproxy:latest
-d : Le mode détaché est activé pour le conteneur.
-p 4500:4500 : Mappe le port 4500 de l'hôte au port 4500 dans le conteneur.
Ouvrez un navigateur web et accédez à http://localhost:4500 ou à l'adresse IP de votre serveur pour tester l'acheminement du trafic.
Pour vérifier les statistiques de HAProxy, exécutez la commande ci-dessous :
IronSecureDocest un utilitaire pour la gestion et la sécurité des documents qui repose sur le chiffrement puissant, la manipulation avancée de PDF et la signature numérique. Il assure la confidentialité et l'intégrité des documents aux entreprises et aux développeurs avec un accès fluide et facilite ainsi le traitement des documents PDF sans dépendances directes ou indirectes. Ceci peut également être appelé API PDF Aggressive dans les cas où ses fonctionnalités permettent aux développeurs de créer, télécharger, manipuler et sécuriser des fichiers et documents PDF de manière programmatique.
De plus, IronPDF est une API PDF qui facilite la création d'un PDF à partir de n'importe quelle source de données et permet d'ajouter ou de modifier le contenu en utilisant des paramètres tels que le texte, les images et les métadonnées. Cela inclut des fonctionnalités telles que la fusion de plusieurs PDF pour créer des fichiers composés, la division de documents, et même des commentaires, des surlignages ou des filigranes pour les annotations.
Il offre une protection par mot de passe, un chiffrement AES et des contrôles d'accès basés sur des certificats qui verrouillent toutes vos informations et données sensibles. En dehors de cela, il permet la signature numérique pour authentifier vos documents et la non-répudiation - une fonctionnalité très importante dans les secteurs financier, médical et juridique. Sa fonctionnalité de piste d'audit permet de surveiller toutes les activités exécutées sur les documents pour plus de conformité et de responsabilisation.
Téléchargez l'image Docker d'IronSecureDoc en utilisant la commande dans l'invite de commande ou une fenêtre de terminal ouverte selon le dépôt suivant.
docker pull ironsoftwareofficial/ironsecuredoc
docker pull ironsoftwareofficial/ironsecuredoc
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'docker pull ironsoftwareofficial/ironsecuredoc
ironSecureDoc, un conteneur d'exploitation.IronSecureDoc, un conteneur d'exploitation.
docker container run --rm -p 8080:8080 -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest
docker container run --rm -p 8080:8080 -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'docker container run --rm -p 8080:8080 -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest
La commande Docker run ci-dessus démarrera une instance de conteneur de l'IronSecureDoc. Vous pouvez maintenant accéder à IronSecureDoc sur le port http://localhost:8080/swagger/index.html comme la page ci-dessous.
Préparez un fichier haproxy.cfg pour définir vos configurations frontend et backend. Voici un simple exemple de configuration :
explain below haproxy.cfg file
global
log stdout format raw local0
defaults
log global
mode http
option httplog
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
frontend http_front
bind *:4500
acl body_has_data req.hdr_val(Content-Length) gt 0
http-request set-method POST if METH_GET body_has_data
use_backend ironsecuredoc if { path /ironsecuredoc }
{ path_beg /ironsecuredoc/ }
use_backend ironsecuredoc_ping if { path /ping }
{ path_beg /ping/ }
use_backend ironsecuredoc_encrypt if { path /encrypt }
{ path_beg /encrypt/ }
#default_backend ironsecuredoc
backend ironsecuredoc
balance roundrobin
http-request set-path /swagger/index.html
server ironsecuredoc_server3 host.docker.internal:8080 check
backend ironsecuredoc_encrypt
balance roundrobin
http-request set-path /v1/document-services/pdfs/encrypt
server ironsecuredoc_server3 host.docker.internal:8080 check
backend ironsecuredoc_ping
balance roundrobin
http-request set-path /v1/document-services/ping
server ironsecuredoc_server3 host.docker.internal:8080 check
explain below haproxy.cfg file
global
log stdout format raw local0
defaults
log global
mode http
option httplog
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
frontend http_front
bind *:4500
acl body_has_data req.hdr_val(Content-Length) gt 0
http-request set-method POST if METH_GET body_has_data
use_backend ironsecuredoc if { path /ironsecuredoc }
{ path_beg /ironsecuredoc/ }
use_backend ironsecuredoc_ping if { path /ping }
{ path_beg /ping/ }
use_backend ironsecuredoc_encrypt if { path /encrypt }
{ path_beg /encrypt/ }
#default_backend ironsecuredoc
backend ironsecuredoc
balance roundrobin
http-request set-path /swagger/index.html
server ironsecuredoc_server3 host.docker.internal:8080 check
backend ironsecuredoc_encrypt
balance roundrobin
http-request set-path /v1/document-services/pdfs/encrypt
server ironsecuredoc_server3 host.docker.internal:8080 check
backend ironsecuredoc_ping
balance roundrobin
http-request set-path /v1/document-services/ping
server ironsecuredoc_server3 host.docker.internal:8080 check
explain below haproxy.cfg file global log stdout format raw local0 defaults log global mode http [option] httplog timeout connect 5000Ds timeout client 50000Ds timeout server 50000Ds frontend http_front bind *:4500 acl Function req_hdr_val(Content- ByVal Length As ) As body_has_data Implements req.hdr_val
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
' path /ironsecuredoc }
' {
' path_beg /ironsecuredoc/
' }
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
' use_backend ironsecuredoc_ping if
' {
' path /ping }
' {
' path_beg /ping/
' }
' use_backend ironsecuredoc_encrypt if
' {
' path /encrypt }
' {
' #default_backend ironsecuredoc
' path_beg /encrypt/
' }
''INSTANT VB TODO TASK: The following line uses invalid syntax:
'' backend ironsecuredoc balance roundrobin http-request @set-path /swagger/index.html server ironsecuredoc_server3 host.docker.internal:8080 check backend ironsecuredoc_encrypt balance roundrobin http-request @set-path /v1/document-services/pdfs/encrypt server ironsecuredoc_server3 host.docker.internal:8080 check backend ironsecuredoc_ping balance roundrobin http-request @set-path /v1/document-services/ping server ironsecuredoc_server3 host.docker.internal:8080 check
Ce fichier de configuration d'HAProxy crée un système capable de gérer le trafic HTTP pour les multiples services IronSecureDoc. Il configure ensuite globalement la sortie de journal brut vers le stdout, et la section par défaut active le mode HTTP et le détail HTTP, tout en définissant le délai d'expiration de la connexion pour les clients et le serveur. Le frontal est http_front défini sur le port 4500, incluant des règles pour gérer le routage basé sur le chemin de la requête HTTP. Par exemple, les requêtes vers /ironsecuredoc sont dirigées vers le backend ironsecuredoc. Les requêtes vers /ping et /encrypt sont dirigées vers leurs backends respectifs. La règle ACL identifie les requêtes qui ont un corps grâce à l'en-tête Content-Length. Si un corps existe, il convertit les requêtes GET en POST.
L'algorithme Round Robin est utilisé pour répartir le trafic entre les serveurs back-end. Chaque backend réécrit le chemin de la requête avant de le transmettre au serveur correspondant. Par exemple, le backend ironsecuredoc réécrit les chemins vers /swagger/index.html. Les backends ironsecuredoc_encrypt et ironsecuredoc_ping réécrivent les chemins vers /v1/document-services/pdfs/encrypt et /v1/document-services/ping, respectivement. Tous pointent vers un seul serveur fonctionnant à host.docker.internal:8080. Des vérifications de l'état de santé sont ajoutées pour garantir qu'un serveur est disponible. Ainsi, la configuration assure une gestion fluide du trafic pour divers services tout en étant flexible dans la manipulation des demandes.
curl -X 'POST' \
'http://localhost:4500/encrypt?user_password=demo' \
-H 'accept: */*' \
-H 'Content-Type: multipart/form-data' \
-F 'pdf_file=@test.pdf;type=application/pdf'
curl -X 'POST' \
'http://localhost:4500/encrypt?user_password=demo' \
-H 'accept: */*' \
-H 'Content-Type: multipart/form-data' \
-F 'pdf_file=@test.pdf;type=application/pdf'
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'curl -X 'POST' \ 'http: -H 'accept: */ *' \ -H 'Content-Type: multipart/form-data' \ -F 'pdf_file=@test.pdf;type=application/pdf'
Mais si nous publions sur le IronSecureDoc API, nous pourrions également souhaiter demander le mot de passe pour chiffrer la requête avec le mot de passe d'un utilisateur pour un document. Le fichier de sortie du document sera envoyé et téléchargé automatiquement, et il sera enregistré en toute sécurité.
Il intégrera également HAProxy avec le logiciel IronSecureDoc inclus, afin d'assurer une solution fiable et évolutive dans la gestion des services pour la sécurité des documents avec un routage de trafic optimisé et un équilibrage de charge. La haute disponibilité est garantie grâce à la distribution efficace du trafic sur plusieurs instances d'IronSecureDoc, par la mise en œuvre de vérifications de l’état de santé pour gérer les basculements, ainsi que la fourniture de règles de routage personnalisées vers divers points de terminaison de service.
Cette configuration prend en charge la gestion de flux de travail complexes tels que le chiffrement et la surveillance de la santé de manière flexible, tout en étant évolutive à l'avenir. Que ce soit dans un environnement conteneurisé ou traditionnel, la conception légère mais haute performance de HAProxy est telle qu'elle complète la fonctionnalité de sécurité d'IronSecureDoc avec une gestion fiable et efficace pour les documents sécurisés. Les fonctionnalités de HAProxy aident ainsi les organisations à améliorer le déploiement d'IronSecureDoc en garantissant la performance et la résilience des applications.
En utilisant l'API REST IronSecureDoc, l'impression sécurisée et la gestion efficace du format PDF sont désormais facilement intégrées aux applications développées par les développeurs de systèmes web, mobiles et d'entreprise. Pour en savoir plus sur la licence de IronSecureDoc, visitez le page d'autorisation. Pour des informations sur les produits de Iron Software, suivez lepage de suite de bibliothèque.
10 produits API .NET pour vos documents de bureau