HTTP к HTTPS на упругом beanstalk aws не работает для Spring Boot - PullRequest
0 голосов
/ 13 января 2019

Я пытаюсь заставить http -> https работать с эластичным бобовым стеблем, и их документация, похоже, не работает. Я настроил балансировщик нагрузки для успешного завершения http и https.

http://example.com
https://example.com

оба работают.

В этой документации объясняется, как настроить https для перенаправлений http. Я использую java-se с Spring Boot, поэтому я прочитал readme и поместил .ebextensions в мою папку src/main/resources.

Итак, моя готовая банка с пружинным башмаком имеет myapp.jar/BOOT-INF/classes/.ebextensions/nginx/conf.d/elasticbeanstalk/00_application.conf с:

location / {
     set $redirect 0;
     if ($http_x_forwarded_proto != "https") {
       set $redirect 1;
     }
     if ($http_user_agent ~* "ELB-HealthChecker") {
       set $redirect 0;
     }
     if ($redirect = 1) {
       return 301 https://$host$request_uri;
     }

     proxy_pass          http://127.0.0.1:5000;
     proxy_http_version  1.1;

     proxy_set_header    Connection          $connection_upgrade;
     proxy_set_header    Upgrade             $http_upgrade;
     proxy_set_header    Host                $host;
     proxy_set_header    X-Real-IP           $remote_addr;
     proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
}

внутри. Но ничто не перенаправляет на https.

1 Ответ

0 голосов
/ 14 января 2019

Хорошо, разобрался! Поместите .ebextensions в корневую папку вашего проекта, а не src/main/resources. Затем добавьте команду bootJar, чтобы поместить эту папку на верхний уровень готовой банки, где она должна быть, чтобы AWS поднял ее:

compileKotlin {
    kotlinOptions {
        freeCompilerArgs = ["-Xjsr305=strict"]
        jvmTarget = "1.8"
    }

    bootJar {
        from('.ebextensions') {
            into('.ebextensions' )
        }
    }
}

Спасибо, что ответили на этот вопрос за то, что дали мне остаток пути:

Как создать папку в корне .jar проекта весенней загрузки?

...