2017-09-25 3 views
0

Pour notre application, nous utilisons AWS Application Load Balancer (ALB) et un programme d'écoute pour HTTP: 80 pour transférer le trafic vers TargetGroup. La façon dont nous avons configuré notre application est que nous aurons un sous-domaine numérique et que nous aurons besoin d'accéder à ces sous-domaines originaux (companyA.something.com) à partir de l'application. Actuellement, l'application voit le nom DNS de l'ALB lui-même.Accès à un nom d'hôte lorsque le trafic a traversé AWS Application Load Balancer

Jusqu'à présent, je l'ai essayé d'installer le sous-domaine (en Route53) a deux manières:

  1. sous-domaine créé comme un record avec ALIAS pointant vers le ALB DNS Nom
  2. Créé Hosted Zone pour subdomain ajouter enregistrements NS pour le sous-domaine au fichier de zone pour le domaine parent http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/CreatingNewSubdomain.html

Je découvert que ceux-ci sont basi Cally est identique et l'application ne voit que le nom DNS ALB.

Y at-il de toute façon pour moi d'obtenir le sous-domaine d'origine mes utilisateurs vont sans écraser avec le nom DNS ALB?

Merci à l'avance, Aaron

+0

Il devrait déjà fonctionner comme vous le souhaitez. Le nom d'hôte d'un ALB ne doit être visible par l'application que s'il s'agit également du nom d'hôte affiché dans la barre d'adresse de votre navigateur. Vous n'utilisez rien de non mentionné, comme CloudFront (ou Cloudflare), n'est-ce pas? –

Répondre

0

Normalement, vous configurez un CNAME quelque chose comme:

api.example.com CNAME my-loadbalancer-1234567890.us-west-2.elb.amazonaws.com 

Mais il y a plusieurs cas, les options, pour probablement l'une des meilleures ressources sur ce sujet est la suivante article AWS:

https://aws.amazon.com/blogs/devops/introducing-application-load-balancer-unlocking-and-optimizing-architectures/

Il est impo rtant mentionner que vous pouvez créer CNAME des ressources définit uniquement pour les sous-domaines - Routing Traffic to an ELB Load Balancer

Pour l'équilibrage de charge d'application vérifier la section Host Conditions:

Vous pouvez utiliser des conditions d'accueil pour définir des règles qui transmettent des demandes de différents groupes cibles basés sur le nom d'hôte dans l'en-tête de l'hôte (également connu sous le nom de routage basé sur l'hôte). Cela vous permet de prendre en charge plusieurs domaines à l'aide d'un seul équilibreur de charge.

+0

Je l'ai basculé vers un CNAME comme vous l'avez décrit mais il semble que l'application reçoive toujours le nom d'hôte en tant que nom DNS de l'ALB .... – Aaron

+0

Vérifiez la section Host Conditions '' http://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-auditeurs.html #-hôte conditions' – nbari

+0

ce lien ne semble pas fonctionner pour moi :(Je – Aaron

0

Vous devez vérifier le HTTP HOST header. Le framework que vous utilisez devrait déjà être capable de le gérer pour vous.

+0

oui c'est précisément ce que je fais. Je suis en utilisant Sails .js cadre et obtenir l'en-tête (http://sailsjs.com/documentation/reference/request-req/req-headers) mais il montre le nom DNS complet de l'ALB pas companyA.something.com – Aaron

+0

Eh bien @ Aaron, Cela signifie que vous êtes Tryi ng pour accéder à l'application par le nom ALB dns pas par le nom de domaine que vous voulez. ALB ne changera pas les en-têtes. Alors comment l'appelez-vous? –