Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Configuration du serveur proxy
Elastic Beanstalk peut utiliser NGINX or Apache HTTPD comme proxy inverse pour mapper votre application à votre équilibreur de charge Elastic Load Balancing sur le port 80. La valeur par défaut est NGINX. Elastic Beanstalk fournit une configuration de proxy par défaut que vous pouvez étendre ou remplacer complètement par votre propre configuration.
Par défaut, Elastic Beanstalk configure le serveur proxy pour transmettre les demandes à votre application sur le port 5 000. Vous pouvez remplacer le port par défaut en définissant la PORT
propriété d'environnement sur le port écouté par votre application.
Note
Le port sur lequel votre application écoute n'a aucune incidence sur le port sur lequel NGINX le serveur écoute les demandes de l'équilibreur de charge.
Configuration du serveur proxy sur la version de votre plateforme
Toutes les AL2 plateformes AL2 023/ prennent en charge une fonctionnalité de configuration de proxy uniforme. Pour plus d'informations sur la configuration du serveur proxy sur les versions de votre plate-forme exécutant AL2 023/AL2, consultez. Configuration du proxy inverse
Si votre Elastic Beanstalk Node.js L'environnement utilise une version de AMI plateforme Amazon Linux (antérieure à Amazon Linux 2), lisez les informations de cette section.
Remarques
-
Les informations contenues dans cette rubrique s'appliquent uniquement aux branches de plateforme basées sur Amazon Linux AMI (AL1). AL2Les branches de AL2 plate-forme 023/ sont incompatibles avec les versions précédentes de la plateforme Amazon Linux AMI (AL1) et nécessitent des paramètres de configuration différents.
-
Le 18 juillet 2022, Elastic Beanstalk a défini le statut de toutes les branches de la plateforme basées sur Amazon AMI Linux () comme étant retirées. AL1 Pour plus d'informations sur la migration vers une branche de plateforme Amazon Linux 2023 actuelle et entièrement prise en charge, consultez Migration de votre application Elastic Beanstalk Linux vers Amazon Linux 2023 ou Amazon Linux 2.
Le Node.js la plateforme utilise un proxy inverse pour relayer les demandes du port 80 de l'instance vers votre application qui écoute sur le port 8081. Elastic Beanstalk fournit une configuration de proxy par défaut que vous pouvez étendre ou remplacer totalement par votre propre configuration.
Pour étendre la configuration par défaut, ajoutez des fichiers .conf
à /etc/nginx/conf.d
avec un fichier de configuration. Pour un exemple spécifique, veuillez consulter Suspension des connexions HTTPS sur des instances EC2 exécutant Node.js.
Le Node.js la plateforme définit le PORT variable d'environnement correspondant au port vers lequel le serveur proxy transmet le trafic. Lisez cette variable dans votre code pour configurer le port de votre application.
var port = process.env.PORT || 3000;
var server = app.listen(port, function () {
console.log('Server running at http://127.0.0.1:' + port + '/');
});
La valeur par défaut NGINX la configuration transmet le trafic vers un serveur en amont nommé nodejs
à127.0.0.1:8081
. Vous pouvez supprimer la configuration par défaut et fournir une configuration personnalisée dans un fichier de configuration.
Exemple .ebextensions/proxy.config
L'exemple suivant supprime la configuration par défaut et ajoute une configuration personnalisée qui achemine le trafic vers le port 5000 au lieu du port 8081.
files:
/etc/nginx/conf.d/proxy.conf:
mode: "000644"
owner: root
group: root
content: |
upstream nodejs {
server 127.0.0.1:5000;
keepalive 256;
}
server {
listen 8080;
if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})T(\d{2})") {
set $year $1;
set $month $2;
set $day $3;
set $hour $4;
}
access_log /var/log/nginx/healthd/application.log.$year-$month-$day-$hour healthd;
access_log /var/log/nginx/access.log main;
location / {
proxy_pass http://nodejs;
proxy_set_header Connection "";
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
gzip on;
gzip_comp_level 4;
gzip_types text/html text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
location /static {
alias /var/app/current/static;
}
}
/opt/elasticbeanstalk/hooks/configdeploy/post/99_kill_default_nginx.sh:
mode: "000755"
owner: root
group: root
content: |
#!/bin/bash -xe
rm -f /etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf
service nginx stop
service nginx start
container_commands:
removeconfig:
command: "rm -f /tmp/deployment/config/#etc#nginx#conf.d#00_elastic_beanstalk_proxy.conf /etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf"
L'exemple de configuration (/etc/nginx/conf.d/proxy.conf
) utilise la configuration par défaut dans /etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf
comme base pour inclure le bloc de serveur par défaut avec des paramètres de compression et de journalisation et un mappage de fichiers statiques.
La commande removeconfig
supprime la configuration par défaut du conteneur pour que le serveur proxy utilise bien la configuration personnalisée. Elastic Beanstalk recrée la configuration par défaut lorsque chaque configuration est déployée. Pour tenir compte de cela, dans l'exemple suivant, un post-configuration-deployment hook (/opt/elasticbeanstalk/hooks/configdeploy/post/99_kill_default_nginx.sh
) est ajouté. Celui-ci supprime la configuration par défaut et redémarre le serveur proxy.
Note
La configuration par défaut est susceptible de changer dans les futures versions du Node.js plateforme. Utilisez la version la plus récente de la configuration comme base pour vos personnalisations afin de garantir leur compatibilité.
Si vous remplacez la configuration par défaut, vous devez définir tous les mappages de fichiers statiques et GZIP compression. Cela s'explique par le fait que la plateforme ne peut pas appliquer les paramètres standard.