web-dev-qa-db-fra.com

Erreur "Hôte non autorisé" lors du déploiement d'une application de structure de lecture sur Amazon AWS avec Boxfuse

J'essaie de déployer une application Web simple écrite à l'aide de Play Framework dans Scala vers le service Web Amazon.

L'application Web fonctionne correctement en mode développement et en mode production sur ma machine locale, et j'ai changé son port par défaut en 80.

J'ai utilisé Boxfuse pour déployer sur AWS comme suggéré.

Je lance d'abord " sbt dist " puis " boxfuse run -env = prod "

Les choses se sont bien passées comme souhaité. L'image est fusionnée et envoyée à AWS. AMI est créé. L'instance a été démarrée et mon application était en cours d'exécution.

i-0f696ff22df4a2b71 => 2017-07-13 01: 28: 23.940 [info] play.api.Play - Application démarrée (Prod)

Puis vint le message d'erreur:

AVERTISSEMENT: Healthcheck ( http://35.156.38.90/ ) a renvoyé 400 au lieu de 200. Réessayer pendant les 300 secondes suivantes ...

i-0f696ff22df4a2b71 => 2017-07-13 01: 28: 24.977 [info] p.c.s.AkkaHttpServer - Écoute pour HTTP sur /0.0.0.0:80

i-0f696ff22df4a2b71 => 2017-07-13 01: 28: 25.512 [warn] p.f.h.AllowedHostsFilter - Hôte non autorisé: 35.156.38.90

L'instance a été terminée après un essai répété après 3 minutes. Il a donné un avertissement comme:

Assurez-vous que votre application répond avec un HTTP 200 sur/sur le port 80

Mais je me suis assuré que l'application répond sur la machine locale, et j'ai essayé à la fois Windows et Ubuntu, tout fonctionne bien.

En outre, en exécutant "boxfuse run" sur la machine locale, je peux me connecter en utilisant " http: // localhost ", mais j'ai toujours l'erreur.

J'espère que quelqu'un d'expérience peut me donner quelques suggestions. Merci d'avance.

ps: pas sûr si pertinent, j'ai ajouté ces paramètres à application.conf

http {
        address = 0.0.0.0
        port = 80
    }
12
Haijin

À en juger par le message d'erreur, il semble que le problème soit lié à play.filters.hosts.allowed non configuré dans application.conf. Le filtre vous permet de configurer les hôtes qui peuvent accéder à votre application. Plus de détails sur le filtre de lecture sont disponibles ici .

Voici un exemple de configuration:

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

Notez que allowed = ["."] correspond à tous les hôtes et ne serait donc pas recommandé dans un environnement de production.

25
Leo C

Comme indiqué dans la Documentation Boxfuse Play :

Si votre application utilise le filtre des hôtes autorisés, vous devez vous assurer que play.filters.hosts.allowed dans application.conf autorise les connexions de n'importe où car ce filtre entraînerait sinon l'échec des contrôles de santé ELB. Par exemple:

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

Plus d'informations dans le documentation Play officielle .

20
Axel Fontaine