Déployer des fichiers statiques web
Remarque
Les plans Essentiel, Standard et Entreprise seront déconseillés à compter de la mi-mars 2025, avec une période de mise hors service de trois ans. Nous vous recommandons de passer à Azure Container Apps. Pour plus d’informations, consultez l’annonce concernant la mise hors service d’Azure Spring Apps.
La consommation Standard et le plan dédié seront déconseillés à compter du 30 septembre 2024, avec un arrêt complet six mois après. Nous vous recommandons de passer à Azure Container Apps. Pour plus d’informations, consultez Migrer la consommation Standard et le plan dédié Azure Spring Apps vers Azure Container Apps.
Cet article s’applique à :❌ De base/Standard ✔️ Entreprise
Cet article explique comment déployer vos fichiers statiques sur une instance de plan Azure Spring Apps Entreprise à l’aide du buildpack Tanzu Web Servers. Cette approche est utile si vous avez des applications qui sont strictement destinées à contenir des fichiers statiques tels que HTML ou CSS, ou des applications front-end créées avec l’infrastructure JavaScript de votre choix. Vous pouvez déployer directement ces applications avec un serveur web configuré automatiquement (HTTPD et NGINX) pour servir ces ressources.
Prérequis
- Une instance de plan Azure Spring Apps Entreprise déjà approvisionnée. Pour plus d’informations, consultez Démarrage rapide : Générer et déployer des applications sur Azure Spring Apps à l’aide du plan Enterprise.
- Une ou plusieurs applications s’exécutant dans Azure Spring Apps.
- Azure CLI, version 2.45.0 ou ultérieure.
- Vos fichiers statiques ou votre application front-end dynamique, par exemple une application React.
Déployer vos fichiers statiques
Remarque
Cet article se concentre sur la description des configurations de déploiement et sur la résolution des problèmes propres au déploiement de fichiers statiques web. Pour comprendre les scénarios généraux de génération et de déploiement pour le plan Azure Springs Apps Entreprise, consultez la section Créer un service à la demande de l’article Utiliser Tanzu Build Service et le Guide pratique pour déployer des applications polyglottes.
Vous pouvez déployer des fichiers statiques sur Azure Spring Apps en utilisant des serveurs web NGINX ou HTTPD des manières suivantes :
- Vous pouvez déployer des fichiers statiques directement. Azure Spring Apps configure automatiquement le serveur web spécifié pour servir les fichiers statiques.
- Vous pouvez créer votre application front-end dans l’infrastructure JavaScript de votre choix, puis déployer votre application front-end dynamique à partir du code source. Azure Spring Apps génère votre application en contenu statique, et utilise votre serveur web configuré pour servir les fichiers statiques.
Vous pouvez également créer un fichier de configuration de serveur pour personnaliser le serveur web.
Exemples de déploiement
Les exemples Azure CLI de cette section montrent la génération et le déploiement de fichiers statiques pour deux scénarios de registre de conteneurs :
- Registre de conteneurs Azure Spring Apps géré.
- Registre de conteneurs géré par l’utilisateur.
Générer et déployer des fichiers statiques directement
Cet exemple déploie des fichiers statiques directement à l’aide d’un fichier de configuration de serveur par défaut généré automatiquement.
La commande suivante déploie un fichier statique :
az spring app deploy
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--name <app-name> \
--source-path <path-to-source-code> \
--build-env BP_WEB_SERVER=nginx
Pour plus d’informations sur l’utilisation de variables d’environnement, consultez la section Configurer un fichier de configuration de serveur généré automatiquement.
Générer et déployer votre application front-end en tant que contenu statique
Cet exemple déploie une application front-end dynamique à partir du code source.
La commande suivante déploie une application :
az spring app deploy \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--name <app-name> \
--source-path <path-to-source-code> \
--build-env BP_WEB_SERVER=nginx BP_NODE_RUN_SCRIPTS=build BP_WEB_SERVER_ROOT=build
Générer et déployer des fichiers statiques à l’aide d’un fichier de configuration personnalisé
Cet exemple déploie des fichiers statiques à l’aide d’un fichier de configuration de serveur personnalisé.
La commande suivante déploie une application :
az spring app deploy \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--name <app-name> \
--source-path <path-to-source-code>
Pour plus d’informations, consultez la section Utiliser un fichier de configuration de serveur personnalisé de cet article.
Exemple de code
Remarque
L’exemple de code est géré par la communauté open source Paketo.
Les exemples de buildpacks Paketo illustrent des cas d’usage courants pour plusieurs types d’applications différents, notamment les cas d’usage suivants :
- Servir les fichiers statiques avec un fichier de configuration de serveur par défaut avec
BP_WEB_SERVER
pour sélectionner HTTPD ou NGINX. - Utilisation de Node Package Manager (NPM) pour générer une application React en fichiers statiques qui peuvent être servis par un serveur web. Utiliser les étapes suivantes :
- Définissez un script sous la propriété
scripts
du fichier package.json qui génère vos ressources statiques prêtes pour la production. Pour React, il s’agit debuild
. - Découvrez où les ressources statiques sont stockées après l’exécution du script de build. Pour React, les ressources statiques sont stockées dans
./build
par défaut. - Définissez
BP_NODE_RUN_SCRIPTS
sur le nom du script de build. - Définissez
BP_WEB_SERVER_ROOT
sur le répertoire de sortie de build.
- Définissez un script sous la propriété
- Servir les fichiers statiques avec votre propre fichier de configuration de serveur en utilisant HTTPD ou NGINX.
Configurer un fichier de configuration de serveur généré automatiquement
Vous pouvez utiliser des variables d’environnement pour modifier le fichier de configuration de serveur généré automatiquement. Le tableau suivant montre les variables d’environnement prises en charge.
Variable d’environnement | Valeur prise en charge | Description |
---|---|---|
BP_WEB_SERVER |
nginx ou httpd | Spécifie le type de serveur web, nginx pour Nginx ou httpd pour Apache HTTP Server. Obligatoire lors de l’utilisation du fichier de configuration de serveur généré automatiquement. |
BP_WEB_SERVER_ROOT |
Chemin de fichier absolu ou chemin de fichier relatif à /workspace. | Définit le répertoire racine des fichiers statiques. Par défaut, il s’agit de public . |
BP_WEB_SERVER_ENABLE_PUSH_STATE |
true ou false | Active le routage d’état push pour votre application. Quelle que soit la route demandée, index.html est toujours servi. Utile pour les applications web monopages. |
BP_WEB_SERVER_FORCE_HTTPS |
true ou false | Applique HTTPS pour les connexions de serveur en redirigeant toutes les demandes d’utilisation du protocole HTTPS. |
Les variables d’environnement suivantes ne sont pas prises en charge.
BP_LIVE_RELOAD_ENABLED
BP_NGINX_VERSION
BP_HTTPD_VERSION
Utiliser un fichier de configuration de serveur personnalisé
Vous pouvez configurer un serveur web à l’aide d’un fichier de configuration de serveur personnalisé. Le tableau suivant montre le chemin du fichier de configuration :
Serveur web | Chemin du fichier de configuration par défaut | Comment personnaliser le chemin du fichier de configuration de serveur |
---|---|---|
nginx | nginx.conf sous le chemin racine de votre code source. | Utilisez la variable d’environnement BP_NGINX_CONF_LOCATION pour spécifier le nom du fichier de configuration. Placez le fichier sous le chemin racine de votre code source. |
httpd | httpd.conf sous le chemin racine de votre code source. | Non pris en charge. |
Votre fichier de configuration doit être conforme aux restrictions décrites dans le tableau suivant.
Configuration | Description | Configuration de Nginx | Configuration de Httpd |
---|---|---|---|
Port d’écoute | Le serveur web doit écouter sur le port 8080. Le service vérifie la disponibilité et l’activité du port TCP. Vous devez utiliser la variable modèle PORT dans le fichier de configuration. Le numéro de port approprié est injecté lors du lancement du serveur web. |
listen {{PORT}} |
Listen "${PORT}" |
chemin du journal | Chemin du journal de configuration de la console. | access_log /dev/stdout , error_log stderr |
ErrorLog /proc/self/fd/2 |
Chemin du fichier avec autorisation en écriture | Le serveur web reçoit l’autorisation en écriture sur le répertoire /tmp. La configuration du chemin complet demande une autorisation en écriture sous le répertoire /tmp. | Par exemple : client_body_temp_path /tmp/client_body_temp | |
Taille maximale acceptée du corps de la demande cliente | Le serveur web se trouve derrière la passerelle. La taille maximale acceptée du corps de la requête cliente est définie sur 500 m dans la passerelle, tandis que la valeur pour le serveur web doit être inférieure à 500 m. | client_max_body_size doit être inférieur à 500 m. |
LimitRequestBody doit être inférieur à 500 m. |
Liaisons des Buildpacks
Le déploiement de fichiers statiques sur le plan Azure Spring Apps Entreprise prend en charge la liaison de buildpack Dynatrace. La liaison de buildpack htpasswd
n’est pas prise en charge.
Pour plus d’informations, consultez Comment configurer l’intégration APM et les certificats d’autorité de certification.
Erreurs courantes de génération et de déploiement
Votre déploiement de fichiers statiques sur une instance Azure Spring Apps Entreprise peut générer les erreurs de build courantes suivantes :
ERROR: No buildpack groups passed detection.
ERROR: Please check that you're running against the correct path.
ERROR: failed to detect: no buildpacks participating
La cause racine de ces erreurs est que le type de serveur web n’est pas spécifié. Pour résoudre ces erreurs, définissez la variable d’environnement BP_WEB_SERVER
sur nginx ou httpd.
Le tableau suivant décrit les erreurs de déploiement courantes lorsque vous déployez des fichiers statiques sur Azure Spring Apps Entreprise.
Message d’erreur | Origine | Solution |
---|---|---|
112404: Exit code 0: purposely stopped, please refer to https://aka.ms/exitcode |
Le serveur web n’a pas pu démarrer. | Validez votre fichier de configuration de serveur pour voir s’il existe une erreur de configuration. Vérifiez ensuite si votre fichier de configuration est conforme aux restrictions décrites dans la section Utiliser un fichier de configuration de serveur personnalisé. |
mkdir() "/var/client_body_temp" failed (13: Permission denied) |
Le serveur web n’a pas d’autorisation en écriture sur le chemin spécifié. | Configurez le chemin sous le répertoire /tmp ; par exemple : /tmp/client_body_temp. |