Optimisation Apache pour VPS bas de gamme sur Ubuntu 14.04

Apache est très facile à installer et à initialiser, mais il est livré avec de nombreux modules préinstallés et, par conséquent, vous pouvez rencontrer des problèmes de performances lors de l'exécution sur un VPS à faible RAM.

Ainsi, il n'est pas toujours nécessaire d'avoir un serveur plus grand, mais vous pouvez simplement configurer les paramètres Apache de la bonne manière et avoir les meilleures performances possibles. Voici quelques mesures à prendre pour y parvenir.

Ce tutoriel est pour Ubuntu 14.04 LTS mais les principes sont également similaires aux versions précédentes.


1. Désactivez les modules Apache

Vous pouvez voir une liste de tous les modules installés avec la commande ls /etc/apache2/mods-available/et de tous les modules actuellement actifs ls /etc/apache2/mods-enabled/.

Lors de l'installation initiale d'Apache, 15 modules ou plus sont activés par défaut. Ce sont trop et la plupart d'entre eux ne sont pas nécessaires.

Tout d'abord, vous devez faire une liste de tous les modules actuellement actifs et l'enregistrer pour référence future au cas où vous désactivez quelque chose qui est nécessaire et que vous devez le réactiver. Ensuite, désactivez simplement les modules un par un avec la commande (en utilisant moduleName comme exemple):

sudo a2dismod moduleName

... et redémarrez Apache après chaque modification pour voir si une erreur se produit.

Certains modules que vous devez désactiver si vous n'en avez pas besoin sont:

  • PHP
  • SSL
  • Récrire
  • Perl
  • Python

Après avoir désactivé un module et rechargé la configuration Apache, vous pouvez vérifier les erreurs en ouvrant le journal des erreurs Apache avec un éditeur de texte comme nano.

sudo nano /var/log/apache2/error.log

Si vous obtenez une erreur, réactivez simplement le module correspondant avec:

sudo a2enmod moduleName

Ensuite, redémarrez Apache jusqu'à ce que la liste minimale soit triée!


2. Configurez mpm_prefork

Avec la configuration Apache par défaut (qui n'est pas bien équilibrée pour les petits serveurs), la mémoire peut être épuisée rapidement et votre serveur cloud peut devenir surchargé. Cela entraînera le blocage de la page Web dans un état de chargement constant. Il est probable que le serveur maintienne ces processus Apache morts actifs, essayant de servir le contenu inutilement, réduisant le nombre de processus disponibles pour servir.

Pour résoudre ce problème, vous devez d'abord déterminer la quantité de RAM dont votre serveur a besoin en dehors d'Apache et la quantité moyenne de mémoire utilisée par les processus Apache.

Pendant l'exécution d'Apache, ouvrez la commande supérieure sur le serveur.

top -bn 1

Sur le tableau des résultats:

  • ajoutez les nombres dans la colonne RES pour chaque processus, sauf apache2 , puis supprimez-le de la quantité totale de RAM. Disons que vous obtenez 600 MB .
  • obtenir la moyenne de tous les processus apache2 . Disons obtenir 20 MB .
  • ensuite, il suffit de faire la division 600/20 = 30 processus Apache maximum

Étape suivante, modifiez le fichier de configuration du module mpm_prefork:

sudo nano /etc/apache2/mods-enabled/mpm_prefork.conf

Cela peut ressembler à ceci:

<IfModule mpm_prefork_module>
    StartServers             2
    MinSpareServers          2
    MaxSpareServers          5
    MaxRequestWorkers        30
    MaxConnectionsPerChild   0
</IfModule>

Où:

  • StartServers: nombre de processus serveur à démarrer.
  • MinSpareServers: nombre minimum de processus serveur qui sont conservés en réserve.
  • MaxSpareServers: nombre maximum de processus serveur qui sont conservés en réserve.
  • MaxRequestWorkers: nombre maximal de processus serveur autorisés à démarrer.
  • MaxConnectionsPerChild: nombre maximal de demandes servies par un processus serveur.

Dans le paramètre MaxRequestWorkers , vous devez le remplacer par ce que vous avez trouvé dans la division ci-dessus.

Maintenant, si votre VPS est surchargé et atteint le nombre maximum de clients qu'il peut servir à la fois, il servira ceux-ci et les autres utilisateurs auront simplement un échec rapide. Ils peuvent ensuite recharger la page pour réessayer. Il est préférable de fermer rapidement ces connexions, mais de laisser le serveur dans un état sain plutôt que de rester ouvert pour toujours.


3. Réduisez vos journaux

Pour maximiser les performances, vous pouvez certainement enregistrer moins d'informations. Dans la configuration Apache par défaut, le paramètre LogLevel est défini sur warn . Vous pouvez changer cela en erreur pour ne conserver que les messages d'erreur.

Ouvrez le fichier de configuration Apache:

sudo nano /etc/apache2/apache2.conf

Trouvez la ligne:

LogLevel warn

... et changez-le en:

LogLevel error

Ensuite, enregistrez le fichier et redémarrez Apache avec:

sudo service apache2 restart

Le fichier par défaut qu'Apache conserve les journaux est /var/log/apache2/error.log .


4. Envisagez de remplacer mod_php

Si vous exécutez un site PHP, il y a de grandes chances que vous utilisiez le module mod_php. Ce module peut faire en sorte que chaque processus enfant Apache utilise plus de 100 Mo de RAM même si les demandes concernent des ressources statiques telles que des images, css et javascript.

Une excellente alternative est le module php-fpm , qui est un processus distinct qui utilise le protocole fastcgi. Avec php-fpm, la mémoire des processus Apache peut chuter à 10 Mo pour le contenu statique et 60 Mo pour le dynamique.

Bien qu'il puisse être un peu difficile de faire fonctionner les choses avec ce changement, cela en vaut la peine.


5. Envisagez de remplacer mpm_prefork

La plupart des configurations Apache utilisent le module mpm_prefork qui est thread-safe et utilise plusieurs processus enfants avec un thread chacun et chaque processus gère une connexion à la fois. Si vous n'avez pas besoin de modules externes tels que PHP ou Rails, vous pouvez le remplacer par le module apache2-mpm-worker , qui est souvent plus rapide. Worker MPM utilise plusieurs processus enfants avec de nombreux threads chacun et chaque thread gère une connexion à la fois.

Pour activer le module de travail, vous devez l'installer.

sudo apt-get install apache2-mpm-worker

Cette commande désinstalle mpm_prefork , mos_php et d'autres modules complémentaires incompatibles.



Leave a Comment

Comment installer MODX Revolution sur un VPS CentOS 7 LAMP

Comment installer MODX Revolution sur un VPS CentOS 7 LAMP

Vous utilisez un système différent? MODX Revolution est un système de gestion de contenu (CMS) de niveau entreprise rapide, flexible, évolutif, gratuit et open source écrit i

Installation de McMyAdmin sur Ubuntu 14.10

Installation de McMyAdmin sur Ubuntu 14.10

McMyAdmin est un panneau de contrôle de serveur Minecraft utilisé pour administrer votre serveur. Bien que McMyAdmin soit gratuit, il existe plusieurs éditions, dont certaines sont pai

Configurer un serveur TeamTalk sous Linux

Configurer un serveur TeamTalk sous Linux

TeamTalk est un système de conférence qui permet aux utilisateurs davoir des conversations audio / vidéo de haute qualité, un chat textuel, de transférer des fichiers et de partager des écrans. Cest moi

Comment installer et configurer CyberPanel sur votre serveur CentOS 7

Comment installer et configurer CyberPanel sur votre serveur CentOS 7

Vous utilisez un système différent? Introduction CyberPanel est lun des premiers panneaux de contrôle du marché à la fois open source et utilisant OpenLiteSpeed. Quest-ce que

Installer phpBB avec Apache sur Ubuntu 16.04

Installer phpBB avec Apache sur Ubuntu 16.04

PhpBB est un programme de babillard open source. Cet article vous montrera comment installer phpBB sur un serveur Web Apache sur Ubuntu 16.04. Cétait écrit

Configurer un utilisateur non root avec Sudo Access sur Ubuntu

Configurer un utilisateur non root avec Sudo Access sur Ubuntu

Avoir un seul utilisateur, qui est root, peut être dangereux. Permet donc de résoudre ce problème. Vultr nous donne la liberté de faire ce que nous voulons avec nos utilisateurs et nos serveurs

Installer eSpeak sur CentOS 7

Installer eSpeak sur CentOS 7

Vous utilisez un système différent? ESpeak peut générer des fichiers audio de synthèse vocale (TTS). Ceux-ci peuvent être utiles pour de nombreuses raisons, telles que la création de votre propre Turin

Comment installer Thelia 2.3 sur CentOS 7

Comment installer Thelia 2.3 sur CentOS 7

Vous utilisez un système différent? Thelia est un outil open source pour la création de sites Web de commerce électronique et la gestion de contenu en ligne, écrit en PHP. Code source Thelia i

Installation de Fuel CMS sur Ubuntu 16.04 LTS

Installation de Fuel CMS sur Ubuntu 16.04 LTS

Vous utilisez un système différent? Fuel CMS est un système de gestion de contenu basé sur CodeIgniter. Son code source est hébergé sur GitHub. Ce guide vous montrera comment

Comment configurer loptimisation TCP sous Linux

Comment configurer loptimisation TCP sous Linux

Introduction Vous avez des problèmes de connectivité lorsque des visiteurs dautres pays accèdent à votre site Web? Vous vous demandez pourquoi la vitesse de téléchargement de votre Foreig

Comment déployer Ghost v0.11 LTS sur Ubuntu 16.04

Comment déployer Ghost v0.11 LTS sur Ubuntu 16.04

Vous utilisez un système différent? Ghost est une plate-forme de blogs open source qui gagne en popularité auprès des développeurs et des utilisateurs ordinaires depuis sa 201

Comment installer Pip sur Linux

Comment installer Pip sur Linux

Pip est un outil de gestion des packages Python. Lutilisation dun gestionnaire de packages permet une gestion efficace de votre serveur. Dans ce tutoriel, je vais expliquer comment t

Comment déployer Google BBR sur CentOS 7

Comment déployer Google BBR sur CentOS 7

BBR (Bottleneck Bandwidth and RTT) est un nouvel algorithme de contrôle de congestion qui est contribué à la pile TCP du noyau Linux par Google. Avec BBR en place,

Comment installer Icinga 2 et Icinga Web 2 sur Ubuntu 16.04

Comment installer Icinga 2 et Icinga Web 2 sur Ubuntu 16.04

Icinga 2 est un système de surveillance des ressources réseau open source largement utilisé, et Icinga Web 2 est linterface Web officielle pour Icinga 2. Dans ce didacticiel,

Comment installer YOURLS sur CentOS 7

Comment installer YOURLS sur CentOS 7

YOURLS (Your Own URL Shortener) est une application open source de raccourcissement dURL et danalyse de données. Dans cet article, nous couvrirons le processus dinstallation

Comment activer TLS 1.3 dans Apache sur Fedora 30

Comment activer TLS 1.3 dans Apache sur Fedora 30

Vous utilisez un système différent? TLS 1.3 est une version du protocole TLS (Transport Layer Security) qui a été publiée en 2018 en tant que norme proposée dans la RFC 8446

Configurer un Chroot sur Debian

Configurer un Chroot sur Debian

Cet article vous apprendra comment configurer une prison chroot sur Debian. Je suppose que vous utilisez Debian 7.x. Si vous utilisez Debian 6 ou 8, cela peut fonctionner, bu

Comment installer PiVPN sur Debian

Comment installer PiVPN sur Debian

Introduction Un moyen facile de configurer un serveur VPN sur Debian est avec PiVPN. PiVPN est un installateur et un wrapper pour OpenVPN. Il crée des commandes simples pour vous t

Comment installer Alfresco Community Edition sur Ubuntu 16.04

Comment installer Alfresco Community Edition sur Ubuntu 16.04

Vous utilisez un système différent? Alfresco Community Edition est une version open source des services de contenu Alfresco. Il est écrit en Java et utilise PostgreSQL t

Configurer Nginx-RTMP sur CentOS 7

Configurer Nginx-RTMP sur CentOS 7

Vous utilisez un système différent? RTMP est idéal pour diffuser du contenu en direct. Lorsque RTMP est associé à FFmpeg, les flux peuvent être convertis en différentes qualités. Vultr i

Comment générer des clés SSH?

Comment générer des clés SSH?

Découvrez comment générer une clé SSH pour accéder à votre serveur sans mot de passe. Suivez nos étapes faciles à comprendre pour créer et ajouter des clés SSH.

Créer un serveur de messagerie avec hMailServer sous Windows

Créer un serveur de messagerie avec hMailServer sous Windows

Découvrez comment créer un serveur de messagerie avec hMailServer sous Windows pour recevoir des e-mails facilement.

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

Les attaques de ransomware sont en augmentation, mais l'IA peut-elle aider à lutter contre le dernier virus informatique ? L'IA est-elle la réponse ? Lisez ici, sachez que l'IA est un boone ou un fléau

ReactOS : est-ce lavenir de Windows ?

ReactOS : est-ce lavenir de Windows ?

ReactOS, un système d'exploitation open source et gratuit est ici avec la dernière version. Cela peut-il suffire aux besoins des utilisateurs de Windows modernes et faire tomber Microsoft ? Découvrons-en plus sur cet ancien style, mais une expérience de système d'exploitation plus récente.

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Whatsapp a finalement lancé l'application de bureau pour les utilisateurs Mac et Windows. Vous pouvez désormais accéder facilement à Whatsapp depuis Windows ou Mac. Disponible pour Windows 8+ et Mac OS 10.9+

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Lisez ceci pour savoir comment l'intelligence artificielle devient populaire parmi les petites entreprises et comment elle augmente les probabilités de les faire grandir et de donner à leurs concurrents un avantage.

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

Récemment, Apple a publié macOS Catalina 10.15.4, une mise à jour supplémentaire pour résoudre les problèmes, mais il semble que la mise à jour cause davantage de problèmes, ce qui entraîne le bridage des machines mac. Lisez cet article pour en savoir plus

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux d'extraction de données de Big Data

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Notre ordinateur stocke toutes les données d'une manière organisée connue sous le nom de système de fichiers de journalisation. C'est une méthode efficace qui permet à l'ordinateur de rechercher et d'afficher des fichiers dès que vous appuyez sur la recherche.https://wethegeek.com/?p=94116&preview=true

Singularité technologique : un futur lointain de la civilisation humaine ?

Singularité technologique : un futur lointain de la civilisation humaine ?

Alors que la science évolue à un rythme rapide, prenant le pas sur une grande partie de nos efforts, les risques de nous soumettre à une Singularité inexplicable augmentent également. Lisez, ce que la singularité pourrait signifier pour nous.