Apache, PHP de mise en cache
Une configuration d'un proxy interne genre de chose à l'aide de Curl et PHP. La configuration est comme ceci:
Le serveur proxy est un plutôt bon marché VPS (qui est lent et les i/o disque à la fois). Toutes les demandes de ce serveur sont gérées par une seule index.php script. L'index.php récupère des données à partir d'un autre, rapide serveur et l'affiche à l'utilisateur.
Le transfert de données entre les deux serveurs est très rapide et le goulot d'étranglement est seulement le disque i/o sur le serveur proxy. Depuis il y a seulement un index.php - je veux savoir
1) Comment puis-je m'assurer que index.php est définitivement "cahced" Apache sur le serveur proxy? (Googler pour le cache php, j'ai trouvé beaucoup de solutions personnalisées qui met en cache les "données de sortie" par php, je veux savoir s'il y a des pré-construire des modules apache qui cache le script php lui-même?).
2) les données sont récupérées à partir du serveur d'arrière-plan toujours dans la RAM et du cache sur le serveur proxy? (en supposant qu'il existe suffisamment de mémoire)
3) N'apache lire tous les fichiers de configuration ou d'autres fichiers à partir du disque dans le traitement des demandes?
4) N'apache attendre pour les journaux pour être écrit sur le disque avant de servir le contenu - si je vais donc désactiver l'enregistrement sur le serveur proxy (ou est-il un moyen de s'assurer que le contenu est d'abord servi sans attendre pour les journaux pour être écrit).?
En fait, je cherche à éliminer les i/o disque tous ensemble sur le "proxy" du serveur.
Merci,
JP
OriginalL'auteur | 2010-11-15
Vous devez vous connecter pour publier un commentaire.
1) Installer APC (http://pecl.php.net/apc), cela permettra de compiler votre script PHP une fois et de le conserver dans la mémoire partagée pour la durée de vie du processus du serveur web (ou un TTL).
2) Si votre script récupère des données et ne cache/stocker sur le système de fichiers, il sera dans la RAM, oui. Mais seulement pour la durée de la demande. PHP utilise une part rien' stratégie qui signifie que -tout - mémoire est libérée après une demande. Si vous n'en cache les données sur le système de fichiers, pensez à utiliser memcached (http://memcached.org/) au lieu de contourner les e/s de fichier.
3) Si vous en avez .htaccess soutien activé, Apache va rechercher dans chaque chemin menant à votre fichier php. Voir Pourquoi je ne peux pas le désactiver .htaccess d'Apache? pour plus d'info.
4) Pas sûr à 100%, mais il est sans doute attendre.
OriginalL'auteur NSSec
Pourquoi ne pas utiliser quelque chose comme Vernis qui est explicitement construit pour ce type de tâche et n'a pas la surcharge d'Apache?
OriginalL'auteur Tom
Je recommanderais "tinyproxy" pour ce puprose.
Fait tout ce que vous voulez très efficeintly.
OriginalL'auteur James Anderson