style-light-choice
style-dark-choice 
Avatar
Gary
Vollink.com
10 October 2018
Updated: 20 February 2018

Web Server

I run four web server end-points from home and this is one of them.  In an extreme case of overkill, I run these sites off of near-twin HP Proliant rack-mount servers. 

Hardware

In early 2018, I found a recycled rack-mount Hewlett-Packard Proliant DL360, gen7 with a 4 bay array on Amazon.  Dual-processor, six cores on each with 24 threads of computing power.  I'd long wanted a "real server" so I went for it.  Realizing the potential for overkill, I also found a same-gen DL380 on eBay, with a larger 16 bay array.  These came with different amounts (but the same type) of ECC RAM.  After a RAM stick failure and more online orders, both servers now sport a lots of RAM and were happily filled with used SAS drives in RAID5. 

Both servers have a 4 drive RAID5 that are set up identically.  This is where the OS is installed, and also where my Services directory exists.  The DL380 has an additional 3TB RAID5 (across 12 bays) which I use for in home media storage. 

Pancake

Waffle

Software

Dynamic content is generated via Docker containers orchestrated through an Nginx web server. 

The two web servers use keepalived to back each-other up with a virtual-IP.  The relevant web data is backed up every five minutes, by the current backup server using rsync.  If the primary goes down, the secondary should be fully operational within about 15 seconds (time for the IP down event to be noticed and Docker services to spin up). 

I strongly considered corosync and the accompanying programs, but the recommended filesystem setup required a complete rebuild of my filesystem layout.  As with all of this stuff, I may still do this in the future, especially if I find my employer wants me to manage a similar setup. 

As of early October 2018, two of my four sites are fully live on this setup.  The other two are being partially proxied through these servers by Nginx to the Mac Mini they had been running on since 2013. 

Monitoring

XyMon Output to a very small footprint

After some back and forth between the Nagios compatible Shinken package and the Big Brother based XyMon, I decided to go with XyMon.  This mostly has to do with the simplicity of the monitoring display which can be seen in the image to the right. 

I have twin Raspberry Pi 3 with little 3.5" screens setup to show the XyMon monitoring page.  Full build information on the MonPi page.

Why

Mostly learning.  I started learning about Amazon Web Services architecture, and I wanted to get myself into using Docker (and micro-services), so that I can start to get a feel for the practical side of actually USING containers.  So far, there's nothing I do that couldn't be done more easily on bare-metal, but I've already seen the advantage in being able to upgrade a service's dependency tree without changing the base server layout. 

Historic

In the earliest days, home.vollink.com ran from a Linux virtual machine running with VMWare Server on my personal Windows desktop.  The site ran on Apache2, dynamic content running as on-demand CGI. 

In 2013, I purchased a Mac Mini, server edition from Apple.  All the Apache content was simply copied over, and the virtual machine was retired. 

In late 2018, the build described above went live. 

Valid CSS!