2017-07-13 32 views
7

Próbuję wdrożyć prostą aplikację internetową napisaną przy użyciu Play Framework w Scala do usługi internetowej Amazon.Błąd "host not allowed" podczas wdrażania aplikacji ramowej gry na Amazon AWS z Boxfuse

Aplikacja internetowa jest uruchomiona w trybie OK rozwoju i trybie produkcyjnym w moim komputerze lokalnym, a ja zmienił domyślnego portu 80.

użyłem Boxfuse wdrożyć do AWS jako sugerowane.

raz pierwszy uruchomić "SBT dist" następnie "boxfuse uruchomić -env = prod"

Poszło także pożądane. Obraz jest zespolony i przekazany do AWS. AMI jest tworzone. Wystąpienie zostało uruchomione, a moja aplikacja działa.

I-0f696ff22df4a2b71 => 13.07.2017 01: 28: 23,940 [info] play.api.Play - Zastosowanie rozpoczął (prod)

Potem przyszedł komunikat o błędzie:

UWAGA: Healthcheck (http://35.156.38.90/) powrócił 400 zamiast 200. Ponowna próba dla następnych 300 sekund ...

I-0f696ff22df4a2b71 => 13.07.2017 01: 28: 24,977 [informacji] pcsAkkaHttpServer - Wykrywanie HTTP w /0.0.0.0:80

I-0f696ff22df4a2b71 => 2017-07-13 01: 28: 25,512 [ostrzec] pfhAllowedHostsFilter - host niedozwolone: ​​35.156.38.90

instancja zakończono po wielokrotnym okazję w ciągu 3 minut. To dało taki komunikat:

Sprawdź, czy aplikacja reaguje HTTP 200 w/na porcie 80

Ale zrobiłem, czy aplikacja reaguje na lokalnym komputerze, a ja próbowałem zarówno Windows i Ubuntu, wszystko działa dobrze.

Ponadto, działa "boxfuse run" na komputerze lokalnym, mogę połączyć się z nim przy użyciu "http://localhost", ale nadal występuje błąd.

Mam nadzieję, że ktoś z doświadczeniem może dać mi kilka wskazówek. Z góry dziękuję.

ps: nie wiem, czy to właściwe, dodałem te ustawienia application.conf

http { 
     address = 0.0.0.0 
     port = 80 
    } 

Odpowiedz

3

Sądząc z komunikatem o błędzie, to wygląda na to, że problem może być związany z play.filters.hosts.allowed nieprawidłowo skonfigurowana w application.conf. Filtr pozwala skonfigurować, którzy hosty mogą uzyskać dostęp do aplikacji. Więcej szczegółów na temat filtra Odtwórz jest dostępna here.

14

Jak stwierdzono w Boxfuse Play Documentation:

Jeśli aplikacja używa dozwolony gospodarze filtrować należy upewnić play.filters.hosts.allowed w application.conf umożliwia połączenia z dowolnego miejsca, gdyż w przeciwnym razie filtr powoduje healthchecks ELB do zawieść. Na przykład:

play.filters.hosts { 
    allowed = ["."] 
} 

Więcej informacji w official Play documentation.