Ich möchte eine SaaS-Beispielanwendung erstellen, mit der Benutzer sich anmelden, Webseiten erstellen, Vorlagen verwenden und/oder sie mit benutzerdefiniertem CSS anpassen und ihre Webseiten bedienen können Aus benutzerdefinierten Domänen.Wie man benutzerdefinierte Domains bedient, die auf eine Subdomain in Saas App verweisen
Ich erwog, die Vorlagen auf S3/anderen CDNs zusammen mit Medien/Stylesheets/JS-Dateien zu speichern. Während alle technisch möglich sind (praktisch? Das könnte strittig sein). Wie auch immer, es fiel mir schwer herauszufinden, wie Websites in diesem Fall von benutzerdefinierten Domains bedient werden. Zum Beispiel, wenn sie sich anmelden, könnten sie eine subdomain.domain.com
Adresse bekommen. Wie aber weisen sie customerdomain.com
so, dass, wenn customerdomain.com
eingegeben, es gleichen Inhalt wie customerdomain.domain.com
dient, und URL bleibt customerdomain.com
Außerdem, wenn ich eine „feature
“, wobei zu wollen, benutzerdefinierter Domains eine bezahlte Funktion sein könnte. Wie würde ich das auf bezahlte Nutzer beschränken?
Normalerweise, wenn wir Websites einrichten, spezifizieren wir sie in der virtuellen Host-Konfigurationsdatei (Apache) und geben ihr Aliase, so dass sie diese Aliase suchen und bedienen. In diesem Fall möchte ich keine separate vhost-Datei für jede Person, die sich anmeldet. Gibt es eine Alternative? Wie kann ich das programmieren? Gibt es irgendwelche Probleme zu beachten?
Eine Lösung, die ich gesehen habe, ist der Server eine Wildcard-Domain, d. H. *.domain.com
, und eine separate vhost für jede benutzerdefinierte Domäne, aber ich würde lieber vermeiden, wenn ich kann.
Danke.
danke, Ihr psuedocode half beim Verständnis der Lösung. Über DNS-Cache, auf einem Server ist es nicht Standard? Ich meine DNS-Abfragen werden vom Betriebssystem (Ubuntu) zwischengespeichert. Muss ich etwas extra dafür tun? – Nasir
Das hängt davon ab, wie Sie "get_cname_record" implementieren. Wenn Sie gethostbyaddr() oder ein Derivat (die wahrscheinlichste Option) verwenden, stellt Ihr System normalerweise bereits eine Art Caching bereit. Vergleichen Sie es jedoch, indem Sie eine Reihe von Suchvorgängen durchlaufen, damit Sie nicht in eine Falle geraten. Ich habe gesehen, dass es passiert ist, also nur ein FYI. – GomoX