Architecte et expert technique freelance

Il aura fallu un peu plus de 3 ans pour que la solution de la « serrure connectée » soit autonome, et je la laisse entre de bonnes mains. Il est temps pour moi de proposer mes services à de nouvelles structures. Avec 10 d’expériences de conception et de développement et 10 ans d’architecture applicative et système […]

Purger les e-mails en attente dans exim4

un petit script simple pour purger tous les mails de la queue de message d’exim4 : Stocker tous les id de messages dans une variable (attention à la mémoire si la liste est grande, passer par un pipe sera plus judicieux dans ce cas) : # id_list=`exim -bp | awk ‘{print $3}’` Lancer la purge […]

Quelques outils pour charger un serveur web et surveiller son état

Outils de test de charge ab : Exemple de charge avec 500 clients concurrents, qui vont lancer une charge de 50000 requêtes au total. ab -c 500 -n 50000 « https://mon_serveur/page.html » siege Siege à la différence d’ab lance un maximum de requêtes avec les clients concurrents dont il dispose sur une durée définie lorsque l’option -t […]

Quelques liens pour comprendre certaines optimisations de serveur web

Le time-wait et pourquoi ne pas faire du recycle de socket: https://vincent.bernat.im/fr/blog/2014-tcp-time-wait-state-linux Gestion du backlog: http://veithen.github.io/2014/01/01/how-tcp-backlog-works-in-linux.html Gestion des limites https://lzone.de/cheat-sheet/ulimit https://unix.stackexchange.com/questions/345595/how-to-set-ulimits-on-service-with-systemd Un petit script python pour tracer les limites import platform if ‘linux’ in platform.system().lower(): import resource # Linux only limit_nofile = resource.getrlimit(resource.RLIMIT_NOFILE) limit_nproc = resource.getrlimit(resource.RLIMIT_NPROC) print ‘Max number of opened files allowed:’, limit_nofile print […]

Modifier la limite de fichiers sur ubuntu 16.x pour nginx et fpm

Le système de gestion des limites a évolué et utiliser /etc/security/limits.conf n’est plus valide sur ubuntu 16 car le système de gestion de service est maintenant basé sur systemd. Le plus frustrant c’est qu’à première vue rien a changé : dans /etc/init.d/ on retrouve nos scripts de lancement classique mais effectivement on observe un if […]

Mémos et liens utiles pour améliorer les performances d’nginx et php-fpm

Faut-il ou non mettre un cache ? Il faut se poser la question de la donnée reçue en réponse de la requête : est-ce que la donnée doit être rafraîchie à chaque requête ou non. Cette question s’applique aussi bien a des données dynamiques que statiques, car une donnée statique peut être mise à jour […]

Limiter le trafic externe mais autoriser le trafic interne sur nginx

Le tuto nginx est plutôt « léger » sur l’explication concrète de cette configuration de limitation, voici donc quelques compléments d’explication : geo $limit { default 1; 10.0.0.0/8 0; 192.168.0.0/24 0; } map $limit $limit_key { 0 «  »; 1 $binary_remote_addr; } limit_req_zone $limit_key zone=req_zone:10m rate=5r/s; server { location / { limit_req zone=req_zone burst=10 nodelay; # … } […]

Générer une CSR pour une paire de clé/certificat existante via le terminal sur IOS

Cette note peut être utile si vous devez renouveler votre certificat de push ou de distribution sur Apple et que l’outil Keychain rejette la demande de création de CSR sur le certificat existant. Le contournement est d’utiliser le terminal et les bonnes vieilles commandes classiques : exporter la clé privé dans un fichier p12 : […]