Zend Platform Download Server en détail
- Produits complémentaires:
- Zend Core |
- Zend Studio |
- Zend Guard
Zend Download Server — Le serveur de téléchargement de Zend augmente l’extensibilité par un déchargement du processus d’envoi de fichiers du serveur web Apache. Ceci rend le serveur web disponible pour gérer les requêtes PHP plus compliquées. Zend Download Server permet de multiplier par 10 le nombre de téléchargements simultanés de fichiers.
Il existe deux moyens d’utiliser le Zend Download Server – de façon manuelle et de façon transparente. En mode manuel, on invoque la fonction PHP zend_send_file(), lui envoyant le nom du fichier que l’on souhaite télécharger. Le fait d’appeler zend_send_file() lance immédiatement le téléchargement du fichier et arrête l’exécution du script PHP.
En mode transparent, en revanche, on peut préconfigurer les fichiers à télécharger par le Zend Download Server en mappant ceux-ci dans le fichier de configuration du serveur Web (par exemple, ajouter «AddType application/x-httpd-php .mpeg ») et en spécifiant les fichiers « mime types » à gérer dans le fichier zend_mime_types.ini. On peut également configurer la directive min_file_size (utilisant l’IU d’administration du Zend Download Server). De cette manière, les fichiers où l’on a spécifié que la taille est plus importante que min_file_size seront traités automatiquement.
Comment fonctionne le Zend Download Server
Zend Download Server est un processus indépendant qui est créé au lancement de Zend Platform (au démarrage d’Apache). Généralement, une requête d’un client web demande le téléchargement d’un fichier du serveur web et cette requête est gérée par le même serveur web. Le dessin ci-dessous montre le processus :
Prenons l’exemple d’une nouvelle requête venant d’un client web, qui souhaite télécharger un fichier utilisant le Zend Download Server – (soit en utilisant la fonction API, soit via les réglages du mode transparent), Apache reçoit la requête, mais au lieu de la traiter directement (ce qui consommerait ses ressources), elle est placée dans un « tuyau » (une sorte d’IPC – inter-process communication) qui communique le descripteur du fichier de la connexion à l’assistant du Zend Download Server. En réponse, le Zend Download Server utilise « select », un appel au système utilisé pour les opérations I/O asynchrones. L’appel « select system » reste inactif jusqu’à l’arrivée d’une condition sur un descripteur de fichier, d’un temps de pause ou d’un signal. Dans ce cas, Zend Download Server examine le paramètre de retour de l’appel « select », trouve que le descripteur de fichier a été changé et utilise un socket par un port arbitraire (un port >1024 est sélectionné) pour traiter la requête. De cette façon, le téléchargement du fichier est re-routé vers un autre processus, qui utilise un socket dédié pour télécharger le fichier – sans déranger le processus Apache. Le dessin suivant montre ce processus :
Vous pouvez régler le nombre maximal de clients concurrents en utilisant Zend Download Server ainsi que d’autres réglages dans l’interface utilisateur de cette fonctionnalité. Pour plus d'information, lisez le white paper sur Zend Download Server.