Cet article explique comment faire en sorte que le contenu statique de votre application Node.js, Ruby ou Python soit servi par le serveur.
Prérequis
Saisissez dans votre navigateur web l’adresse suivante : https://mg.n0c.com/fr/.
Introduction
Les serveurs N0C utilisent Passenger afin de faire fonctionner vos applications web Node.js, Ruby et Python.
L’une des philosophies de Passenger est de tenir compte du fait qu’en pratique, de nombreuses applications web partagent les mêmes conventions en regard des caractéristiques structurelles. Entre autres choses, la plupart des applications web ont un répertoire dans lequel elles stockent les fichiers statiques.
Pour vous faciliter la vie, Phusion Passenger « assume » ces conventions par défaut de sorte que, si votre application s’y conforme, vous obtiendrez de nombreuses fonctionnalités clés en mains, sans aucune configuration. Ainsi, dans le cas de Node.js par exemple, Passenger part du principe que le répertoire de votre application possède la structure suivante :
répertoire de votre application
|
+-- app.js
|
+-- public/
|
+-- tmp/
Où :
app.js
est le point d’entrée de votre application Node.js. Phusion Passenger démarre votre application en chargeant ce fichier. Il doit enregistrer un gestionnaire de requêtes, comme on le verra plus loin;- le répertoire
public
contient des fichiers statiques qui sont automatiquement servis par le serveur web. Par exemple, s’il y a un fichierpublic/image.jpg
, toutes les requêtes vers/image.jpg
seront traitées par le serveur web et ne seront jamais transmises à l’application; - le répertoire
tmp
peut être utilisé par l’application, mais il est également utilisé par Phusion Passenger pour redémarrer l’application.
Tous les fichiers statiques de votre application doivent être conservés dans le répertoire public
comme, par exemple, les images, les fichiers css, les fichier js, etc. En outre, il faut y placer un fichier .htaccess dans lequel on est en mesure de spécifier d’ajouter des headers de cache et leur temps d’expiration. De fait, si le htaccess reste dans public_html, il ne sera pas utilisé pour votre application.
Pour y parvenir, il faut avant tout préparer Phusion Passenger à servir le contenu statique de votre application. C’est là l’objet de cet article.
Préparation automatique de Passenger
Certaines étapes sont automatiques et exécutées dans le Panneau MG, à savoir :
- la création de la structure du répertoire;
- la définition de
app.js
,config.ru
ourun.py
comme le point d’entrée de votre application.
Les autres étapes sont manuelles.
Préparation manuelle de Passenger
Voici les étapes manuelles à suivre pour que Phusion Passenger serve et gère votre application.
Étape 1 — Configurez et redémarrez votre application
Après avoir configuré votre application selon le langage de votre choix, il suffit de la redémarrer. Cela déclenche la mise en marche de votre application Phusion Passenger.
Veuillez vous référer aux articles suivants, qui expliquent comment configurer et redémarrer votre application :
- Comment gérer les applications Ruby.
- Comment gérer des applications Python.
- Comment gérer les applications Node.js.
Étape 2 — Créez le répertoire public pour les fichiers statiques
Créez le répertoire public
et déplacez-y tous les fichiers statiques.
Veuillez vous référer au paragraphe expliquant comment déplacer un fichier dans l’article intitulé « Comment utiliser le gestionnaire de fichiers ».
Étape 3 — Placez le fichier .htaccess dans le répertoire public
Par défaut, N0C storage contient un répertoire public
. Il vous suffit d’y placer le fichier .htaccess.
Vous pouvez retrouver le dossier qui contient le .htaccess de l’application en allant sur l’option « Gestionnaire de fichiers » de votre panneau N0C. Sur cette page, vous allez pouvoir retrouver tous vos domaines ainsi que la racine du document relié à ce domaine.
Veuillez vous référer à l’article Comment utiliser le gestionnaire de fichiers.
Documentation
On peut trouver de la documentation sur le sujet sur le Web, en particulier à l’adresse : https://github.com/phusion/passenger/wiki/Phusion-Passenger%3A-Node.js-tutorial#prepare-your-app.