===== Bring your own Domain ===== ==== Instructions for customers bringing their own Domain name ==== New customers wishing to use their own domain name for the SaaS learning site need to map our production IP Address to the new domain name they wish to use. This assumes that the customer (or someone on their behalf) is in charge of the parent domain name. This is shown by the example below (it takes into account the SubdomainFu.tld_sizes for production⇒1): * Assume our Saas Production IP is 1.2.3.4 * Assume the customer needs to use learning.mydomain.com as their new site name (this is the name that the customer will enter for “Or use your own domain name” under “Website Address” while creating new site from our SaaS main site) * Based on the above, earlier the customer needed to map domain “learning.mydomain.com” to IP “1.2.3.4” in their Internal and/or External DNS servers services) depending on whether the customer will provide access to the internal and/or external users/clients. Instead of that to conserve IPv4 addresses and automate the process, CNAME records approach can be used. Since the tld_size for production is set to 1, the above format of domain name will be supported: sub-domain-size = 1 (mydomain), sitename(learning). * As of now, using one's own domain name WILL NOT work if we are using SSL (part or full) for our SaaS site (eg: if https://learning.mydomain.com is referenced in full or part on any specific page, like credit card transaction or login) ==== Steps to be taken for custom domain names ==== At a high level, below needs to happen: Create new domain alias for the customer “customer.learnexa.com” in /etc/hosts in the prodapp01. To be verified -- *.learnexa.com at this point should be pointing to prodapp01. Request customer to create a cname entry in their external or internal DNS to point to this domain alias provided by us. For e.g. customer should create an entry in his DNS server as follows - Hostname - customer.domain.com TTL – 86400 Type – in CNAME Target - customer.learnexa.com Create new web server instance Create new site in Crossbow, provide customer with CNAME === Create new web server instance on front end server === cd /opt/apache2/sites cp -r TEMPLATE xxyyzz (where xxyyzz can be a new short name to match the new external domain name, for eg myoga for methodyoga.com) cd xxyyzz/conf (EDIT httpd.conf, replace TEMPL_IPADDRESS with the new INTERNAL IP Address, replace TEMPLATE with xxyyzz, replace BYOD.COM with actual new domain name) cd ../bin (EDIT apachectl, replace TEMPLATE with xxyyzz) Start Apache: /opt/apache2/bin/httpd -f /opt/apache2/sites/xxyyzz/conf/httpd.conf Add the above in /etc/rc.local Alternatively, can use: /opt/apache2/sites/xxyyzz/bin/apachectl [start|stop|status|configtest] * Lastly, create the new site from learnexa.com as admin, and provide the virtualhost entry(cname entry) to the customer to have them map it to the domain name. ====To be verified ==== (1) When we have multiple app servers /front ends at which point do we segregate (this will be researched and added in the LB architecture document)\\ (2) Single DNS failover service + multiple LB configuration + multiple sites / servers where the actual configuration resides and replicated needs to be researched.