Comment optimiser les performances ?
SSLcat est conçu pour des performances élevées, mais il existe plusieurs façons d'optimiser davantage votre configuration pour gérer des charges de trafic importantes et réduire la latence.
1. Activer HTTP/2 et HTTP/3 (QUIC)
Les protocoles modernes comme HTTP/2 et HTTP/3 peuvent améliorer considérablement les temps de chargement des pages grâce au multiplexage, à la compression des en-têtes et à une latence de connexion réduite. SSLcat les active par défaut.
# sslcat.conf
server:
http2: true
http3: true # Activer QUIC
2. Optimisation des paramètres TLS
L'ajustement des paramètres TLS peut réduire la surcharge du handshake et améliorer la sécurité.
- Reprise de session TLS : Réduit la latence pour les clients qui se reconnectent. SSLcat gère cela automatiquement.
- Suites de chiffrement modernes : Utilisez des suites de chiffrement efficaces et sécurisées. SSLcat utilise par défaut un ensemble moderne de suites de chiffrement optimisées pour les performances.
- Agrafage OCSP : Réduit le temps de validation du certificat pour les clients. SSLcat active l'agrafage OCSP par défaut.
3. Utiliser l'équilibrage de charge
Pour les services à fort trafic, répartissez la charge sur plusieurs serveurs backend. Choisissez l'algorithme d'équilibrage de charge qui convient le mieux à votre application (par exemple, least_conn
pour les connexions longue durée).
proxies:
- domain: "app.exemple.com"
targets:
- "http://backend1:8080"
- "http://backend2:8080"
load_balance: "least_conn" # Moins de connexions
4. Activer la mise en cache
Pour les contenus qui ne changent pas souvent, la mise en cache peut réduire considérablement la charge sur vos serveurs backend.
- Mise en cache du proxy : SSLcat peut mettre en cache les réponses des backends.
- Cache GitHub Proxy : Si vous utilisez la fonction de proxy GitHub, activez la mise en cache Redis pour réduire les requêtes vers l'API GitHub et accélérer les réponses.
github_proxy:
enabled: true
cache:
redis_addr: "localhost:6379"
ttl: 3600 # Cache pour 1 heure
5. Réglage du pool de connexions backend
Ajustez les paramètres du pool de connexions pour optimiser la communication avec vos services backend. L'activation de keep_alive
est cruciale pour les performances.
proxies:
- domain: "api.exemple.com"
target: "http://backend"
connection_pool:
max_connections: 200
max_idle_connections: 20
idle_timeout: 120
keep_alive: true
6. Réglage au niveau du système d'exploitation
L'optimisation du système d'exploitation sous-jacent peut avoir un impact significatif.
- Limites de descripteurs de fichiers : Augmentez le nombre de descripteurs de fichiers autorisés pour le processus SSLcat afin de gérer un grand nombre de connexions simultanées. (
ulimit -n
) - Réglage de la pile TCP : Ajustez les paramètres du noyau comme
net.core.somaxconn
,net.ipv4.tcp_tw_reuse
, et les tampons de socket pour optimiser le débit du réseau. - Utiliser I/O Poll : SSLcat utilise automatiquement les mécanismes I/O les plus efficaces pour la plateforme (epoll sur Linux, kqueue sur BSD/macOS).
7. Surveillance des performances
Utilisez le panneau d'administration de SSLcat ou les métriques Prometheus pour surveiller les performances en temps réel. Gardez un œil sur :
- L'utilisation du CPU et de la mémoire
- Le nombre de connexions actives
- La latence des requêtes
- Le taux d'erreur
L'identification des goulots d'étranglement est la première étape de l'optimisation.