Rediriger HTTP vers HTTPS avec Elastic Beanstalk dans l'environnement Go / Java SE

Il n'a peut-être pas été nécessaire de le résumer, mais j'y suis assez accro, alors j'aimerais l'écrire.

supposition

Nous partirons du principe que la configuration SSL de base est terminée. Veuillez vérifier à nouveau si Elastic Load Balancer (ELB) est lié à l'environnement Elastic Beanstalk (EB) et si le certificat SSL et HTTPS / port appropriés sont définis pour ELB.

Rediriger les paramètres

Puisque ELB stocke le protocole de la demande reçue dans l'en-tête X-Forwarded-Proto, la redirection HTTP → HTTPS peut être réalisée en lisant les paramètres suivants dans le bloc de serveur nginx.

if ($http_x_forwarded_proto != 'https') {
    rewrite ^ https://$host$request_uri? permanent;
}

paramètres nginx

Alors, comment écraser les paramètres essentiels de nginx? Aller/ [Java SE](http://docs.aws.amazon.com/ja_jp/ Elasticbeanstalk / latest / dg / java-se-platform.html) Dans l'environnement, un mécanisme est introduit pour modifier facilement les paramètres de nginx. La méthode de réglage est la même pour les deux.

Si vous créez un fichier appelé «.ebextensions / nginx / nginx.conf» et le placez dans le répertoire racine de l'application à déployer avec EB, ce «nginx.conf» écrasera «/ etc / nginx / nginx.conf» sur EC2. Sera fait.

Autre chose, si vous placez les fichiers dans .ebextensions / nginx / conf.d / *. Conf, ces fichiers seront copiés / etc / nginx / conf.d / élastiquebeanstalk, et nginx.conf sera copié. Si vous ne l'avez pas écrasé, dans le bloc server {} dedans, ou si vous avez écrasé nginx.conf, écrivez ʻinclude conf.d / élastiquebeanstalk / *. Conf;Il sera lu, mais pour une raison quelconque, si vous placez le fichier qui décrit les paramètres de redirection ci-dessus comme.ebextensions / nginx / conf.d / 02_proxy.conf`, l'instruction if ne sera pas autorisée et sera lue lors de la lecture du fichier de paramètres nginx.

Mise en garde

Veuillez noter que si vous mordez CodeBuild, si vous oubliez de sortir des extensions .eb lors de la sortie de l'artefact, il ne sera pas copié, bien sûr.

Préparation de nginx.conf

C'est pourquoi l'écrire dans le fichier inclus ne fonctionne pas, donc il écrase le fichier de configuration nginx existant. Si vous écrivez les paramètres de redirection ci-dessus dans le bloc server {}, ce sera comme suit.

# Elastic Beanstalk Nginx Configuration File

user                    nginx;
error_log               /var/log/nginx/error.log warn;
pid                     /var/run/nginx.pid;
worker_processes        auto;
worker_rlimit_nofile    33193;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    include       conf.d/*.conf;

    map $http_upgrade $connection_upgrade {
        default     "upgrade";
    }

    server {
        listen        80 default_server;
        access_log    /var/log/nginx/access.log main;

        client_header_timeout 60;
        client_body_timeout   60;
        keepalive_timeout     60;
        gzip                  off;
        gzip_comp_level       4;
        gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript;

        # Redirect to https
        if ($http_x_forwarded_proto != 'https') {
           rewrite ^ https://$host$request_uri? permanent;
        }

        # Include the Elastic Beanstalk generated locations
        include conf.d/elasticbeanstalk/*.conf;
    }
}

Si vous copiez et collez ce qui précède et enregistrez-le sous .ebextensions / nginx / nginx.conf, la redirection HTTP → HTTPS doit être activée.

Recommended Posts

Rediriger HTTP vers HTTPS avec Elastic Beanstalk dans l'environnement Go / Java SE
Hello World avec gRPC / go dans l'environnement Docker
[AWS] J'ai essayé de créer un environnement Python avec un environnement de développement eb [Elastic Beanstalk]
Comment créer un serveur HTTPS avec Go / Gin
Double-cliquez sur ipynb dans l'environnement windows + anaconda pour l'ouvrir dans jupyter-notebook
[AWS] Version de déploiement d'application Flask qui a tenté de créer un environnement Python avec eb [Elastic Beanstalk]
Connectez-vous à Postgresql avec GO
Variables d'environnement HTTP dans Flask
Je veux utiliser des rails avec des rails même dans un environnement vagabond
[AWS] Préparation du déploiement de l'application Flask pour la création d'un environnement Python avec eb [Elastic Beanstalk]