Skip to main content

Multiple sub-domains on a single lightsail instance

 I've been using lightsail to host a personal website which is great with the pre-configured lamp stack. It comes installed with bitnami package which comes with tools that make hosting an https server easy. 

bncert-tool is the command line tool which is present in "/opt/bitnami/" this is useful for setting up certificates for the website from letsencrypt,org.

Bitnami on lightsail is installed using packages, so it comes pre-configured with the virtual hosts enabled. This is huge because it removes a bunch of steps that need to be done for hosting multiple subdomains on the same instance. 

Setup Multiple Domains

So the first step for getting started is to create a lightsail instance //or some other instance with the bitnami packages installed. I've picked lightsail with LAMP stack. This is pretty cheap at $3.5 per month on the lowest configuration and you can set it up for getting command line access. 

Like i mentioned before bitnami when installed through system packages, will automatically configure your apache server to support virtual hosts. This is mentioned in their documentation: https://docs.bitnami.com/virtual-machine/infrastructure/lamp/configuration/configure-custom-application/ 

You can read up more about it in the page here: https://docs.bitnami.com/virtual-machine/infrastructure/lamp/configuration/configure-custom-application/

 Sub-domains

As mentioned in the documentation above, you can head to the "/opt/bitnami/apache/conf/vhosts" directory to add configuration files for the new subdomains you want to add to this instance. There are sample vhost.conf files provided for your convenience "sample-vhost.conf.disabled" and "sample-https-vhost.conf.disabled"  create a copy of sample-vhost.conf.disabled for every http endpoint you want to create and a copy of sample-https-vhost.conf.disabled for every https endpoint. 

Note that you should name your files "anyname-vhost.conf" (<anyname> to be replaced with your own subdomain name)



As shown here you will need to create new vhost.conf files for the prod.example.com "http" and "https" end point. You will observe that the configs have added www.prod.example.com as an alias in both the  plain and https config files this is to ensure www. domains are handled as well.  

Domain Console 

Before we can actually use the domain name for the virtual hosts, we should add the new subdomains to the domain console. Add "A" records for prod.example.com and www.prod.example.com to point to the public IP address of the lightsail instance. (Note that this IP address will change every time the instance is restarted, if you have not associated a static IP to the instance)

 Creating Certificates

The certificate creation process is pretty simple with the bncert-tool. Run it as root using "sudo bncert-tool" go through the questions and if all goes well, the certificates will be created and the vhost conf files will be updated to use the new certificate files and will be setup for auto renewal. 

Comments

Popular posts from this blog

Epic Games Store on Steam Deck

EGS ( Epic Games Store ) like it or hate it, has been giving away free games and if you like free games you would have picked up atleast a couple of them. So given that some of those games are Deck Verified / Playable, its fair to assume you would like to install the EGS on the Deck.  Installing EGS on Steam Deck Switch to Desktop Mode on your Steam Deck Download the EGS installer for windows from the Epic Store website: https://store.epicgames.com/en-US/download (using your web browser of choice)      Open Steam in the desktop mode and add the installer as a non-steam game                                In the browse window, switch from .desktop files to All files. Select EpicInstaller-xxx.msi and add it to steam library. Find EpicInstaller in your steam library and open its' properties by hitting the "Gear" icon on the right ...

Flash animations in GoDot Engine

If you have not heard about GoDot game engine,.. you should check it out right away.. godotengine.org Last time, i wrote a blog post about my experience making a simple physics game to GoDot Engine. Though there are a bunch of free options announced during the GDC this year, i thought ill' contribute to the engine. The one piece that is most important for game dev is the pipeline for the engine. One of the most common tools used for 2D animations is Flash. I have been using a library called Super Animation for almost all the games we've made for android at TMG. It's  a  free tool which lets you convert swf files to .sam files. This file can then be loaded in Cocos2Dx using the Open source loader library  https://github.com/raymondlu/super-animation-samples I thought it would be a good idea to port this cpp library to GoDot so that i understand how to write custom modules for the engine. This is the video of the module in action. I have expos...

Vehicle Physics (Godot 2D)

I've always been fascinated with the vehicle physics used in games. I played so many racing games / the hill climb games and every single time i would wonder wow that must be really hard to do. Thanks to the new generation of game development tools, developing physics based games has become almost a second nature to most people. I didn't want to be left out so i gave it a shot.. I tried setting up vehicle physics in GoDot Engine for a 2D vehicle. Here is what the vehicle scene looks like.. 2D vehicle setup in GoDot As you can see the body collision shape is not right but the rest of the stuff just works. The idea is simple think of what parts move along with the body vs what doesn't. I was kinda stuck setting up the pinJoint2D in GoDot, it actually clearly takes two nodes under the properties. This makes sure that the wheels are hinged to the DampingSpring2D. The Damping Spring2D takes two physics bodies(Body and the PinJoint2D) and makes it work like shock ab...