web-dev-qa-db-fra.com

Comment configurer des enregistrements CNAME de sous-domaine génériques pour une application à locataires multiples?

Nous essayons de faire pointer une application de transfert heroku (something.herokuapp.com) vers un sous-domaine de notre domaine (staging.company.com).

Tout le reste du domaine (*.company.com) est transféré dans notre précédente application de production.

Je ne parviens pas à faire pointer les sous-domaines du sous-domaine vers l'application de mise en scène Heroku. Par exemple, login.staging.company.com doit pointer vers le portail de connexion de staging et hospital.staging.company.com doit charger notre application avec les données du client de l'hôpital.

J'ai 3 enregistrements CNAME pertinents:

  1. * pointe sur company.com. (tout passe à la production)
  2. *.staging pointe sur something.herokuapp.com.
  3. staging pointe également sur something.herokuapp.com.

Le comportement actuel est que login.staging.company.com va à app.company.com, donc il va à notre application de production à la place de notre application de mise en scène heroku. Cependant, login.staging.company.com/users/sign_in va très bien dans notre application de transfert, mais c'est le SEUL lien qui mène à notre application de transfert.

Quels enregistrements dois-je ajouter/supprimer pour m'assurer que tout ce qui se trouve sous *.staging.company.com se rend sur notre application de mise en scène heroku, et que tout ce qui ne se trouve pas sous ce contenu continue d'aller sur notre application de production?

Ex. hospital.staging.company.com devrait passer à la mise en scène, alors que government.company.com devrait passer à la production.

1
Jaron Gao

L'hébergement de domaine comprend deux parties:

  • le DNS doit pointer le domaine vers un serveur
  • et le serveur doit reconnaître le domaine

Vous devriez vérifier les deux.

  1. DNS pointe le domaine vers le bon serveur:

    • vérifier en utilisant Dig (ou drill), nslookup ou même simplement ping ou traceroute. Tous prendront un nom de domaine et vous laisseront savoir quelle est l'IP résolue finale. Vérifiez que cela correspond à ce que vous attendez.

    • ou vous pouvez utiliser des outils en ligne tels que dns.squish.net qui vous donnera une vue beaucoup plus détaillée de la procédure.

  2. Le serveur reconnaît le domaine

Ceci est spécifique aux protocoles qui incluent le domaine dans la requête (tel que HTTP/HTTPS), et est bien sûr vital pour l’hébergement virtuel (hébergement de plusieurs domaines sur le même serveur avec la même adresse IP). C'est quelque chose qui est configuré sur le serveur.

Le serveur doit donc reconnaître tous les domaines sur lesquels vous pointez (si vous pointez simplement un domaine sur un serveur utilisant DNS et que le serveur ne le sait pas, il sera difficile de savoir ce qu'il doit renvoyer). Selon votre situation d'hébergement, cela peut être plus ou moins complexe à gérer. En outre, la gestion des domaines génériques peut ajouter un autre obstacle, selon que vous configuriez réellement des sous-domaines individuels sur l'hôte ou que vous tentiez de le faire reconnaître un générique (tous les serveurs/hôtes ne le peuvent pas).

Une fois que la demande parvient au bon serveur virtuel, des problèmes supplémentaires peuvent survenir avec les scripts locaux, les fichiers .htaccess, les règles de réécriture, etc., qui peuvent ne pas être correctement configurés et redirigés ailleurs.

  • commencez par utiliser un outil tel que curl (avec l'option -v) pour voir ce qui se passe lorsque vous vous connectez à l'URL (existe-t-il une redirection - ou plusieurs?)

  • vérifier les fichiers .htaccess pour les directives Redirect* et RewriteRule susceptibles de provoquer la redirection

  • il se peut que d'autres redirections soient générées dans le code, mais nous aurions alors besoin de beaucoup plus de détails sur les logiciels que vous exécutez.

3
jcaron