Wie erstelle ich eine SaaS-Anwendung?

8

Ich weiß nicht, wie ich es sonst sagen soll, also werde ich nur mein ideales Szenario erklären und hoffentlich können Sie mir erklären, wie ich es umsetzen kann ...

Ich erstelle eine Anwendung mit dem Zend Framework, das mit DreamHost gehostet wird. Die Anwendung wird auf einer eigenen Domain (d. H. Beispiel-app.com) gehostet. Grundsätzlich sollte sich ein Benutzer anmelden können, um seine eigene Domain sampleuser.example-app.com oder example-app.com/samplususer zu bekommen, die auf eine Instanz verweist, die wie ihre eigene Instanz der App aussieht, die eigentlich eine einzelne Instanz ist verschiedene Inhalte basierend auf der URL anbieten.

Schließlich möchte ich, dass meine Benutzer in der Lage sind, ihre eigene Domain (wie foobar.com) zu erstellen, die auf sampleuser.example-app.com verweist, sodass Besucher von foobar.com nicht bemerken, dass die Site wirklich ist von example-app.com serviert werden.

Ich weiß nicht, wie ich das meiste machen soll. Wie funktioniert dieser Prozess? Muss ich etwas funky mit Apache machen oder kann dies mit einem Drittanbieter wie DreamHost gemacht werden?

Update: Danke für den Hinweis! Ich habe beschlossen, in den sauren Apfel zu beißen und meinen Hosting-Plan zu aktualisieren, um Wildcard-Subdomains zu verwenden. Es ist billiger als ich erwartet hatte! Ich habe auch über Domain-Reseller-Programme wie opensrs.com erfahren, die ihre eigene API haben. Ich denke, dass die Verwendung einer dieser APIs die Lösung für mein Domainregistrierungsproblem sein wird.

    
Andrew 16.06.2009, 06:53
quelle

1 Antwort

10

Subdomains sind einfach. In Hostingumgebungen ist Apache in den meisten Fällen so konfiguriert, dass alle Subdomain-Aufrufe unterhalb der Hauptdomäne abgefangen werden. Sie müssen nur ein Wildcard-DNS definieren, damit * .example-app.com auf die IP-Adresse Ihres Servers verweist. Dann sollte Ihre Website alle Aufrufe dieser Subdomain-Namen abfangen.

Andere Domänen sind schwer. Sie müssen als virtuelle Hosts in Apache konfiguriert werden - siehe Ссылка - das heißt, es wird schwierig sein, das zu automatisieren, vor allem in Hosting-Umgebung - es sei denn, Ihr Host gibt Ihnen einige API, um genau das zu tun (einfach und machbar Szenario wäre eine unverwechselbare IP zugewiesen zu Ihrer Website, dann können Sie alle mit Ihrem Apache - es ist Wahrscheinlich ist es möglich, mit Ihrem Hosting-Control-Panel zu konfigurieren oder funktioniert out-of-the-box - und dann zeigen Sie einfach DNS-Server auf Ihre IP-Adresse.

Nachdem Sie Ihren Apache so konfiguriert haben, dass er alle notwendigen Aufrufe auf Ihre Website verweist, können Sie auf diese Weise die Anwendungspartitionen je Subdomäne unterscheiden:

  • Erhalte den Host-Header von der HTTP-Anfrage
  • haben eine Datenbanktabelle, die alle von Ihnen bereitgestellten Subdomänennamen enthält
  • Suchen Sie nach dieser Datenbanktabelle, um die Instanz- oder Benutzer-ID zu ermitteln, und verwenden Sie sie später zum Filtern von Daten / oder zum Auswählen einer Datenbank, wenn Sie das Schema "Datenbank pro Anwendungsinstanz" verwenden.

Viel Glück:)

    
Michał Chaniewski 16.06.2009, 07:08
quelle