7
votes

URL / domaine personnalisé (alias CNAME?)

Je crée une application dans une pile de lampes et je souhaite fournir à l'utilisateur la possibilité d'utiliser leur propre domaine au lieu d'un sous-domaine de mon site. par exemple.

au lieu de: http://some_user.mysite.com strong>

Ils utiliseront: http://store.some_user.com/ P>

Je sais qu'il y a quelques entreprises qui fournissent cette utilisation en utilisant des enregistrements CNAME. ( http://help.bigcartel.com/articles/14-utilisation- A-Custom-Domain ) Cependant, je ne suis pas sûr de la manière dont ils atteignent cette fin. P>

Mes questions sont: p>

  1. Comment s'appelle ce processus? (Donc, je peux rechercher cela plus loin si besoin est) p> li>

  2. Que dois-je faire pour fournir cela? c'est à dire. Que dois-je faire sur le côté DNS, Apache et PHP pour que cela fonctionne? p> li> ol>

    Des conseils, des liens ou des extraits de code seraient grandement appréciés. p>

    merci p>


    update stry> p> Jusqu'à présent, j'ai pu configurer l'entrée DNS Wildcard, mais j'ai toujours des problèmes avec le dossier CNAME résolu à l'autre domaine. par exemple, p>

    http://store.wearenified.com/ -> http://weareunified.joshstuart.com.au/ P>

    weareUnified.com ( Ceci est un utilisateur de test hôte d'utilisateur PRET>) DNS P>

    joshstuart.com.au. A 111.67.3.227
    * CNAME joshstuart.com.au.
    


0 commentaires

5 Réponses :


5
votes

En fait, vous n'avez pas besoin de faire quoi que ce soit.

Vos utilisateurs doivent obtenir leur fournisseur DNS Ajoutez un enregistrement CNAME qui chante essentiellement http://app.some_user.com/ à http://some_user.app.com .

Tout client DNS qui recherche http://app.some_user.com/ est dit de chercher http://some_user.app.com à la place, et il s'agit donc d'un problème DNS / client, et non un problème de serveur .

Amazon recommande cette technique très technique pour les utilisateurs de serveurs EC2.

Veuillez noter que les enregistrements CNAME ont une limitation, ils ne peuvent pas être attribués à la racine d'un domaine - vos utilisateurs ne peuvent pas affecter http: / /some_user.com/ , seulement http://app.some_user.com/ en tant que nommé CNAME .



1
votes

J'ai quelque chose de similaire que j'ai fait avec le CPanel API2.

Fondamentalement, l'utilisateur pointe son domaine à mon DNS, et j'utilise l'API pour garer son domaine sur le mien.

Je stocke le domaine de chaque utilisateur dans une base de données.

sur une page de page, j'extrise le http_host et le comparez à ma base de données pour voir si le domaine existe. Je charge ensuite la page en fonction des paramètres des utilisateurs (je sert toutes les pages du même script) et des entrées de base de données.

Pour réduire la charge de la base de données, je enregistre les informations dans une session identifiant l'hôte. Je peux ensuite vérifier cela sur chaque charge ultérieure au lieu de vérifier la base de données à chaque fois.



0
votes

L'autre possibilité est de réellement être l'hôte DNS de l'utilisateur et gérer tous les enregistrements. Vous pouvez obtenir une solution open source pour cela. (Mais vous pourriez avoir besoin de deux serveurs DNS sur différents sous-réseaux).


0 commentaires

7
votes

J'ai cette configuration à l'aide de la lampe et ça fonctionne très bien. Voici comment je l'ai fait:

  1. Le serveur cible avec ma demande est sur un domaine d'enregistrement (sous) normal. Donc, dans votre cas, je suppose que vous avez la demande d'exécution sur joshstuart.com.au .
  2. Le client doit modifier leur entrée DNS pour Store.WeareReUnified.com à CNAME à JOSHSTUART.COM.AU.
  3. Le serveur Apache a un fichier virtualhost sans spécification de domaine (dans mon cas), simplement un

    C'est ça. Il existe actuellement plus de 70 domaines qui concernent le domaine de l'application principal, et ils servent chacun leur site individuel au besoin (sans redirection, etc.).


6 commentaires

En fait je vois le problème que je pense. ServerName cPanel102-469.hosting24.com.au DocumentOrot / USR / local / Apache / HTDOCS Donc, je devrais le pointer sur le docroot de mon domaine Joshstuart.com.au?


Oui, la documentation doit indiquer votre application. En outre, n'incluez pas de spécification de nom de serveur, car elle écoutera n'importe quel domaine que cnames, pas seulement cpanel102-469.hosting24.com.au.


Merci pour ton aide! Les virtualhosts par défaut me retiennent.


vous pouvez faire une configuration vraiment rapide si vous utilisez Dynamic Vhost , donc vous Peut servir la demande de différents répertoires pour différents clients. Certains cas, les clients utilisent différentes versions de la même application, hébergement spécial / dédié pour un client, version modifiée pour certains clients.


Ah cool c'est quelque chose à garder à l'esprit. Actuellement, je veux que tout le monde exécute la même version de l'application.


@ User123342234 Bonjour! J'essaie de faire ce que tu fais. J'ai ajouté un CNAME à mon site d'application Target Cloud. Cependant, cela me montre cgi-sys / défautwebwebpage.cgi ... Comment dois-je configurer l'hôte virtuel. Cela vous aidera si vous pouvez poster votre solution!



0
votes

Il y a quelques parties différentes ici - Obtenir les entrées DNS configurées, puis pour que Apache réponde à la demande.

Avez-vous le CNAME configuré correctement pour le client? Remarque, vous ne pouvez pas configurer un CNAME sur WearEunited.com, il doit être sur Store.WeareReUnited.com, ou un autre nom d'hôte qui n'est pas le domaine racine.

On dirait que vous ne comprendrez peut-être pas comment le travail de CName. Une version trop simplifiée est, lorsqu'un utilisateur demande à Store.WeareReUnited.com, leur serveur de noms local (par exemple, le serveur de noms qui se trouve dans l'ISP de l'utilisateur final. Pour moi sur Comcast, c'est généralement un NS Comcast à Beaverton, ou. Ceci assume la Le serveur de noms local n'a pas déjà résolu le nom d'hôte et ne l'a pas dans le cache) interrogera les serveurs de noms de racine pour déterminer qui est responsable du domaine. Le NamServer local interrogera ensuite le serveur de noms de domaine pour obtenir l'enregistrement. L'enregistrement pourrait être un enregistrement, qui est une adresse IP ou un nom d'objet CNAME qui pointe vers un autre nom d'hôte.

Lorsque le Nameever local obtient le CNAME, il fonctionnera à nouveau sur ce processus pour obtenir un enregistrement. Une fois enfin un enregistrement avec l'adresse IP, il remettra l'adresse IP sur le navigateur de l'utilisateur final, et le navigateur Web apportera une demande à l'adresse IP.

Le résultat final est le navigateur Web obtient une adresse IP, et il apporte ensuite une demande à cette adresse IP à l'aide du nom d'hôte d'origine comme tête d'hébergeur - Store.weareUnited.com. Donc, Apache doit être configuré pour recevoir des demandes de nom d'hôteName Store.weareUnited.com.

PHP ne se soucie pas de ce que le nom d'hôte est, à moins que vous ne vérifiez que $ _Server ...

Vous pouvez amener vos clients à configurer un nom d'information sur Joshstuart.com.au. Vous pouvez certainement créer des noms d'hôte supplémentaires comme WeareUnited.joshstuart.com.au ou faire une base générique, puis faire définir vos clients la cible CName à ce nom d'hôte unique, mais pourquoi vous déranger? J'aurais juste: xxx

tant que joshstuart.com.au, puis jetons une adresse IP sur votre serveur Web, le CNAME fonctionnera. Comme je l'ai mentionné ci-dessus, Apache verra une demande à venir pour STORE.WEAREUNITED.COM, de sorte que vous devez configurer un hôte virtuel pour ce nom d'hôte ou créer un Vhost générique comme Berklee mentionne (bien que je ne suis pas sûr de ce que l'Apache Directives que vous utiliseriez pour vous assurer que la demande est ensuite mappée sur les fichiers appropriés pour le domaine ...).


1 commentaires

Merci pour l'explication. Malheureusement, comme il s'avère, j'ai eu des problèmes avec le côté virtualhost des choses.