web-dev-qa-db-fra.com

Vitesse de prefork + ruid2 avec plus de connexions sur une mémoire limitée

Actuellement, j'utilise Apache sur un serveur avec WHM/Cpanel et j'utilise Prefork MPM avec Mod Ruid2 pour traiter les pages PHP. Bien que la configuration lui permette de fonctionner très rapidement, je suis limité au traitement d'environ 80 requêtes HTTP simultanément, car la machine dispose de 8 Go de RAM.

Je pense que Google n'est pas assez satisfait de cela. Je me sens obligé de faire en sorte que mes sites Web et le serveur suivent le rythme du temps. Je dois augmenter le nombre maximal de demandes pouvant être traitées en même temps.

J'ai donc pensé à utiliser FastCGI avec PHP-FPM. J'ai ensuite commencé à jouer avec mon httpd.conf (sur mon propre serveur de test privé bien sûr) pour voir comment le configurer pour plusieurs utilisateurs. Chaque utilisateur a son propre domaine sur le serveur.

Pour l'instant, je montre ma configuration pour un utilisateur. Son site Web est 127.0.0.1:81. /daemon est un dossier accessible par le démon utilisateur.

C’est mon fichier de configuration php fpm que j’applique lors de l’exécution du démon php-fpm.

[global]
pid = /daemon/x.pid
daemonize = yes
[www]
user = daemon
group = daemon
listen = /daemon/x.sock
listen.owner=daemon
listen.group=daemon
listen.backlog = 65534
pm = static
pm.max_children = 10
pm.max_requests = 10000
pm.status_path = /STAT
request_terminate_timeout = 100s
clear_env = no
security.limit_extensions=.php

C'est l'extrait dans mon fichier httpd.conf

<virtualhost 127.0.0.1:81>
AddHandler php51 .php 
Action php51 /php51
Alias /php51 /daemon/1
FastCgiExternalServer /daemon/1 -socket /daemon/x.sock -pass-header Authorization -idle-timeout 120 -flush
<Directory "/daemon">
Order allow,deny
Allow from all
</Directory>
ServerName 127.0.0.1
</virtualhost>

Ce que je veux faire, c’est essayer de compresser ces lignes afin que, lors de la configuration multi-utilisateur, le nombre de saisies que j’ai à faire sera réduit.

Parce que je sentais une certaine redondance, j'ai remplacé:

Alias /php51 /daemon/1
FastCgiExternalServer /daemon/1 -socket /daemon/x.sock -pass-header Authorization -idle-timeout 120 -flush

avec:

# Alias /php51 /daemon/1
FastCgiExternalServer /php51 -socket /daemon/x.sock -pass-header Authorization -idle-timeout 120 -flush

et redémarré Apache et tenté d'accéder à un fichier php et on me dit que le fichier n'a pas été trouvé, mais je n'ai jamais modifié le fichier lui-même et j'ai utilisé la même URL dans les deux tests.

De plus, dans le journal Apache, j'ai reçu:

File does not exist: /usr/local/Apache2/htdocs/php51

Quand j'ai enlevé:

<Directory "/daemon">
Order allow,deny
Allow from all
</Directory>

J'ai reçu "permission refusée".

Je n'ai jamais eu à ajouter toute cette configuration lors de l'utilisation de prefork avec ruid2.

Existe-t-il une configuration plus minimale que je puisse utiliser autrement que de devoir définir une action, un alias en plus de la définition d'un serveur externe? Je souhaite augmenter le nombre de connexions qu'Apache peut gérer sans utiliser toute la mémoire, ni même le processeur. Je souhaite également pouvoir utiliser PHP.

2
Mike

Il y a plutôt beaucoup de questions dans ce post.

quand je vais faire une configuration multi-utilisateur, la quantité de dactylographie que je dois faire sera moindre.

Ce n'est pas la façon de résoudre le problème. Vous avez déjà plein d'autres choses à faire pour intégrer un nouvel utilisateur. WHM/Cpanel est un outil de base très conçu pour les utilisateurs de sites Web de base qui ne disposent ni de l’expérience ni du temps nécessaires pour configurer un serveur Web. Si vous êtes préoccupé par le temps qu'il vous faudra pour copier, éditer et coller un petit bloc de configuration comme celui-ci, vous devriez alors réfléchir à la façon dont vous résolvez tous les étapes dans la création d'un nouveau compte/service; vous devriez les scripter.

Il est tout à fait possible de configurer un script sous Linux ou Unix (également sous MSWindows, mais c'est beaucoup beaucoup plus de travail), de configurer un site Web squelette, de le dire à Apache et PHP-FPM, Ajoutez des enregistrements DNS et de messagerie, configurez une base de données MySQL, des utilisateurs et plus encore à partir d'un simple script Shell. Et la quantité de contenu à modifier est alors sans importance.

Je pense que Google n'est pas assez content de ça

Tant que vous avez la capacité de traiter les demandes, Google ne se préoccupe pas beaucoup des performances (oui, cela a un impact sur le classement, mais il est très petit). Les utilisateurs d'OTOH se soucient beaucoup plus .

PHP-FPM est un moyen raisonnable de résoudre vos problèmes de capacité et de performances sans avoir à redéfinir radicalement l'architecture de votre serveur.

Je souhaite augmenter le nombre de connexions qu'Apache peut gérer sans utiliser toute la mémoire, ni même le processeur. Je souhaite également pouvoir utiliser PHP.

Ce n'est pas quelque chose qui peut raisonnablement être répondu ici - son chemin est trop large. Bien que ce soit surtout une question de performance plutôt que de capacité, ce livre vous permettra de mieux comprendre comment utiliser au mieux votre infrastructure. Vous trouverez également d'autres conseils sur capacité sur le site Web qui l'accompagne.

1
symcbean