Serveur

Optimiser les performances de NGINX

Nginx de part sa robustesse, sa structure minimaliste et son fonctionnement événementiel asynchrone est un serveur web plébiscité pour ses performances. Mais ce n’est pas parce qu’on a une Porsche qu’il ne faut pas tenter de la rendre encore plus puissante !

Pour des sites à fort trafic, un serveur bien optimisé signifie deux choses : des requêtes servies plus vite et un besoin en machines (scaling horizontal) inférieur. Alors pourquoi s’en priver ?

(suite…)

Optimiser la gestion des ressources système avec ulimit

Vous le saviez peut-être, Linux, comme d’autres systèmes, attribue des limites par défaut aux processus et aux utilisateurs. Ces limites sont définies par ulimit. Cela permet de s’assurer que l’OS reste disponible pour tous et ne vienne pas à crasher. Les réglages par défaut sont assez prudents et, il y a de nombreuses situations où il peut être intéressant d’adapter cela à nos propres besoins. Partons à l’exploration du pourquoi et du comment !

(suite…)

Automatiser la gestion des serveurs avec Ansible

Ansible est un outil qui permet – entre autre choses – d’automatiser l’installation, le déploiement et la gestion de vos serveurs. Vous utilisez certainement ssh pour installer les programmes dont vous avez besoin et configurer vos serveurs. Peut-être même avez-vous créé des scripts pour que tout ça aille plus vite. Ansible permet de créer des « Playbooks », qui ne sont autre que des scripts à la sauce Ansible, et permettent de configurer vos serveurs.

Sa grande force est qu’il est agentless, autrement dit, rien n’est à placer sur vos serveurs. Vous installez Ansible sur votre laptop par exemple, et le tour est joué. Vous pouvez ensuite lancer l’install de vos 40 serveurs de base de données en une seule commande ! Ça vous émoustille ? Alors allons-y !

(suite…)

Diagnostiquer et récupérer une défaillance RAID

Dans la quasi-totalité des cas, le RAID apporte une redondance qui permet de tolérer la perte d’un ou plusieurs disques. Néanmoins, il faut d’une part savoir lorsqu’une défaillance se produit pour agir, et d’autre part, savoir quoi faire. Il ne suffit pas d’enlever le disque défaillant et d’en mettre un autre à la place pour que tout rentre dans l’ordre. Petit manuel de survie dans l’admin d’un RAID.

(suite…)

Configurer Node.js pour le serveur

Node est génial. Quand on commence, on fait joujou avec et on lance toutes nos commandes en CLI à base de node server.js ou node index.js sans se poser plus de questions. Puis vient le jour où on veut mettre en ligne notre belle application codée avec amour, et là, on ne sait pas comment faire tourner Node comme un vrai serveur, indépendamment du shell. Voyons ça de plus près.

(suite…)

Commandes essentielles de MongoDB

Lorsque, comme beaucoup, on vient du monde des bases de données relationnelles et de la syntaxe SQL, l’apprentissage et l’usage du noSQL est au début un peu déroutant. Voici donc un bref aperçu des notions propres à MongoDB suivi d’un condensé des commandes les plus couramment utilisées (et utiles) dans MongoDB.

(suite…)

XHR cross domain avec Node.js

Les requêtes ajax entre domaines, ou XHR cross domain pour les intimes, permettent d’envoyer des requêtes JavaScript depuis une url A vers une url B. C’est par exemple ce que fait le script de Google Analytics. Il envoie des requêtes d’une url A (votre site) vers une url B (les serveurs de Google). De manière générale, cela sert par exemple pour faire des requêtes d’api. Pour d’évidentes raisons de sécurité, le CORS n’est pas activé par défaut. Voyons comment le paramétrer pour NodeJs.

(suite…)

Empêcher les timeout ssh

Lorsqu’on est connecté en ssh à un ordinateur distant et qu’on laisse la connexion inactive pendant un certain temps, il arrive que l’on soit déconnecté. On se retrouve alors avec un message du style :

Read from remote host buzut.fr: Connection reset by peer Connection to buzut.fr closed.

Voyons comment résoudre ce problème.

(suite…)