Creating a web portal that will be rented to customers. Need architecture support

Iam creates a web portal that will be rented to customers on a hosted model (SAAS), where they will use all the portal features in their own domains with their own branding.

Now I don’t want them to receive files from my web portal, but still they could use a custom company portal.

One of the solutions someone suggested was to host a branded version on their server, all through an iframe in the client’s domain. However, I did not really like the idea.

One second approach that I explored and found was to host the portal on a new IP address on my server and ask the client to specify its domain on this ip.

Webportal will be sold to a large number of customers, and all of them will have separate user interfaces and brands, so this is necessary.

Please tell me how you feel about my approach or, if you guys understand better, please include your suggestions.

+4
source share
4 answers

We are launching a SAAS application that supports branding, and we do this by dynamically serving CSS. If all your clients have a unique domain name that is listed on your server, you can select your CSS files by domain name. If the client is logged in to "http://portal.customer.com/login", you can have your HTML code a link to the file "/stylesheets/portal.customer.com.css", etc. In addition, you can create a subdomain for each of your clients and specify everything on your main server using very similar code to select CSS.

This allows you to have one IP address for all clients (and only as many servers as you need to support all your clients for this IP address) instead of one IP address / server for one client - reduce hosting costs

(NOTE: I am inclined toward a subdomain approach, the more I think about it. If you use HTTPS, this will allow you to use a single certificate * .yourdomain.com, rather than trying with separate certificates for each client domain.)

+1
source

iFrames are evil.

With that being said, I would probably go with a subdomain approach. They add a subdomain, such as webportal.somecompany.com, that points to you, and your web server directs them to the correct hosted instance of your application based on the subdomain. Thus, their website www.somecompany.com still goes to their website.

+4
source

You do not need to run different IP addresses for different clients. HTTP 1.1 supports Host: so

GET / HTTP/1.1 Host: example.com 

This is how most shared hosts work. When a client configures its DNS records to point to your server / load balancer, incoming requests will have the name of your client in the headers. Regardless of whether you configure virtual hosts in Apache or do it at the application level, you can.

Please, for your own sake, do not do iframes. There is a lot of information about web architecture for multi-tenant applications.

+1
source

I made the experience that in such a scenario, your customers will come up with any possible web interface requirement that you can imagine. Therefore, it is quite difficult to create a web interface structure that can meet all the needs, in fact it will most likely be a content management system.

To create a web interface, you can meet any combination of client internal development, a third-party web agency or a request to develop it yourself.

In such situations, I made a good experience by offering SaaS as real web services that allow you to work on specially designed portals. At the same time, anyone can create a real portal with the appearance of customers. You can offer development and placement as an option.

0
source

Source: https://habr.com/ru/post/1338517/


All Articles