Thursday, June 5, 2014

Month 4 - Hosting Transfer Complete - Goodbye GoDaddy, Hello Arvixe

Well the hosting transfer is complete. It all went well except a couple of bumps that were sorted out.

I chose Arivxe because of the price ($8) and because of the number of SQL databases you can have for the price (unlimited). I had to buy a unique IP which is another $2 per month for use with my SSL certificate. Note that the plan I have says 6 domains and unlimited websites but it is actually the opposite. It seems I can have unlimited domains as long as they point to no more than 6 websites.

The transfer itself was pretty simple. I had to call and email support a couple of times but they were very quick to help resolve issues. One issue I had was I didn't pick a lifetime domain (they give you a domain for free as long as you are a customer, unlike GoDaddy which it is only free for a year). I decided that I wanted to get http://onemonthoneawesomewebsite.com to complete this site's name change and they were gracious enough to add it to my account after setup.

Domains

Working with domains was the most difficult part.

The hosting setup is very very different from GoDaddy which took some learning. Like GoDaddy you have a section for domains and a section for hosting. You can manage your domains in the domain manager but it is easier to have them point to the hosting nameserver and manage the domains with the hosting so as to keep domains and websites in sync easier. I ended up setting up a handful of websites. One for my DNN, one for my slashhack.net projects, one for drivexcountry.com and one for this website's projects. In GoDaddy you can set any number directories as an IIS application root but because of the restriction on the number of website you can have, Arvixe does not support this. What I had to do was set each of the directories that weren't part of the root project (e.g. http://datajunkie.onemonthoneawesomewebsite.com) as a virtual directory so IIS would use their web.config as a root. In the root of the website's web.config I added a rewrite rule that would rewrite the subdirectory url to an internal one using the virtual directory.

            <rule name="Redirect subdomain" patternSyntax="Wildcard" stopProcessing="true">
             <match url="*" />
             <conditions>
              <add input="{HTTP_HOST}" pattern="*.onemonthoneawesomewebsite.com" />
             </conditions>
             <action type="Rewrite" url="{C:1}/{R:0}" />
           </rule>

Unfortunately Arvixe doesn't support a wildcard domain binding for subdomains so I had to create all the domain bindings for each of the subdomains. Each domain entry is a binding that tells IIS what to load when it receives a request for that domain. Each domain binding can also have it's own DNS entries setup for it as well in the same place or inherit from the parent domain. This was useful for setting up http://emptyplate.onemonthoneawesomewebsite.com since it needed to point to the DNN website.

Arvixe considers domain forwarding to be a website (since that has to be handled in IIS and not in any DNS). I've also added domain forwarding rules to the rewrite section of the web.config to avoid spending my precious website count.

My recommendation is to set up all the domain zone files and websites in the Arvixe hosting name server then point your existing domains to the new name servers. Arvixe provides you with an internal domain you can use to test your website while DNS has changed or hasn't propagated. I still have a couple of domains at GoDaddy until they near expiration and they just point to the Arvixe name server. Also, make sure you set up your MX DNS entries FIRST! I forgot to setup my entries before switching name servers and I'm pretty sure I lost some emails. This was also when I was trying to transfer a different domain into Arvixe from GoDaddy since it was expiring. I wasn't getting any transfer emails. Arvixe support was nice enough to restart the transfer process twice until I got them and completed my transfer. Domains are about $10 or $8 to transfer which is 1/4 to 1/2 cheaper than GoDaddy.

Hosting

Transfering the actual websites was much simpler. I first copied all my files to my computer via FTP and then copied them to Arvixe the same way. It might be faster overall using the compress and extract zip options but I didn't think of that until halfway through. Since the GoDaddy only has one root folder per hosting, at Arvixe the files got split up into different folders. You can even see your IIS logs with Arvixe.

SSL

Setting up an SSL certificate was pretty easy too but did take a couple of days. Namecheap was having an amazing sale on SSL certificates ($2 IIRC) so I bought two. Like I mentioned before, you need a dedicated IP address to use SSL certificates at Arvixe. You have to email ssl@arvixe.com to request your CSR to provide to Namecheap for signing and then email them the signed certificate to install which took a while but wasn't difficult. GoDaddy doesn't let you shop around for certificates and they charge something like $80/year so I saved quite a bit of money on my certificates. Currently only https://apps.facebook.com/dontlogin/ uses SSL so they type of certificate isn't too important.