8

Non so in che altro modo dirlo, quindi spiegherò il mio scenario ideale e spero che tu possa spiegarmi come implementarlo ...Come creare un'applicazione SaaS?

Sto creando un'applicazione con Zend Framework che sarà ospitato con DreamHost. L'applicazione sarà ospitata sul proprio dominio (ad esempio esempio-app.com). Fondamentalmente, un utente dovrebbe essere in grado di registrarsi, ottenere il proprio dominio sampleuser.example-app.com o example-app.com/sampleuser che punta a, ciò che appare come la propria istanza dell'app, che è in realtà una singola istanza pubblicare contenuti diversi in base all'URL.

Infine, voglio che i miei utenti siano in grado di creare il proprio dominio (come foobar.com) che punta a sampleuser.example-app.com, in modo che i visitatori di foobar.com non si accorgano che il sito è davvero servito da example-app.com.

Non so come fare la maggior parte di quella roba. Come funziona questo processo? Devo fare qualcosa di funky con Apache o questo può essere fatto con un host di terze parti, come DreamHost?

Aggiornamento: Grazie per il consiglio! Ho deciso di mordere il proiettile e aggiornare il mio piano di hosting per utilizzare sottodomini jolly. È più economico di quanto mi aspettassi! Ho anche scoperto i programmi di rivenditori di domini, come opensrs.com, che hanno le loro API. Penso che l'utilizzo di una di queste API sarà la soluzione al mio problema di registrazione del dominio.

risposta

10

I sottodomini sono facili. Nell'hosting degli ambienti, nella maggior parte dei casi, Apache è configurato per catturare tutte le chiamate sottodominio sotto il dominio principale. Devi solo avere un DNS jolly definito, quindi * .example-app.com punta a IP del tuo server. Quindi il tuo sito web dovrebbe catturare tutte le chiamate a quei nomi di sottodomini.

Altri domini sono difficili. Devono essere configurati come host virtuali in Apache - vedi http://httpd.apache.org/docs/1.3/vhosts/name-based.html - questo significa che sarà difficile automatizzarlo, specialmente nell'hosting dell'ambiente, a meno che il tuo host non ti dia qualche API per farlo (uno scenario facile e più fattibile sarebbe avere un IP distintivo assegnato al tuo sito Web, quindi puoi prendere tutto con il tuo Apache - è probabilmente possibile configurarlo usando il tuo pannello di controllo di hosting o funziona subito e quindi basta puntare i server DNS sul tuo IP).

Poi, dopo aver configurato Apache per puntare tutte le chiamate necessarie al tuo sito web, è possibile differnetiate partizioni applicative per sottodominio in questo modo:

  • ottenere l'intestazione host dalla richiesta HTTP
  • hanno un tabella di database contenente tutti i nomi di sottodomini che stai servendo
  • fai una ricerca su quella tabella di database per determinare l'istanza, o utente, id e usarla in seguito per filtrare i dati/o selezionare un database, se andrai con un "database schema "istanza di applicazione".

Buona fortuna :)

+1

corro un'applicazione con un'architettura simile e funziona come descritto. Assicurati di verificare che sia possibile impostare un host jolly (* .domain.tld) ​​se si utilizza l'hosting condiviso. –

+0

Sto utilizzando l'hosting condiviso e il sottodominio con caratteri jolly non è supportato. Potrei aggiornare il mio account e petizione per il supporto con caratteri jolly, ma non ne vale la pena. Questo può essere fatto in un modo che non usa il carattere jolly? Grazie! – Andrew

+0

Se desideri aggiungere ogni intestazione host al tuo sito web (o avere un modo per automatizzarlo - di nuovo, controlla alcune API dal tuo host) - allora sì, è possibile.Il tuo sito web deve rispondere alle chiamate da tutti quegli indirizzi in qualche modo - il DNS jolly (o l'IP assegnato per lo scenario "qualsiasi dominio") sarebbe ottimale. Se il tuo host non ti offre tali opzioni, cambiala. –

Problemi correlati