Web Server


The Jacksonville Linux Users Group Inc. operates a single web server, how you are viewing this very text and website, located in Atlanta, Georgia. The web server runs Gentoo Linux and has been in continuous operations, in various locations and hardware since coming online in 2000; including clones that no longer exit. Originally, running Cobalt Networks Linux (discontinued), then RedHat, pre-RHEL, and finally, transitioning to Gentoo around the time of the birth of Fedora, circa 2003. The web servers configuration and settings have been migrated and updated since 2000.

The server is in the process of domain name transition, with no estimated time of completion.

Apache


Apache logo

The JaxLUG runs Apache for web server software, a web page server, with development beginning in 1995 after the most popular web server software went stale, and began as a series of community webmaster patches, hence, A-pachee; making it one the oldest software available for serving web pages. Apache is open-source software under the Apache-2.0 License that is developed by the Apache Software Foundation and for more information please visit Apache's official or Wikipedia pages. The community web server project grew into an entire Apache Software Foundation, covering numerous open source projects. This shows how small community efforts can grow to become large beneficial organizations.

Apache is mistakenly less popular these days to other web server software such as the most common nginx, the former embedded leader lighttpd, and other web servers; there are many. However, Apache should not be overlooked, a recent paper was published, "Performance Comparison of NGINX, Apache, and Lighttpd Using WRK on a Debian", which shows that Apache is still a top performer among the best, including, the current heavy weight champion, nginx; with Apache outperforming nginx. This just goes to show, when it comes to open source software, age has no relevance, as the oldest can still be some of the best. Unix commands developed decades are still used daily on Linux and other Unix like operating systems.

Hypertext Transfer Protocol Secure


Let's Encrypt logo

Hypertext Transfer Protocol Secure (HTTPS) is an extension of the Hypertext Transfer Protocol (HTTP), the protocol for transferring Hyper Text Pages, otherwise known as Hyper Text Markup Language (HTML) pages; such as this very page. While Apache can provide both, and we do use both HTTP and HTTPS, we primarily enforce the use of HTTPS. HTTPS on Apache is handled like most things through a module, mod_ssl, and we use certificates from Let's Encrypt, that are renewed monthly, which you can view via your browser.

Rewrite


Did we mention that we enforce use of HTTPS? We do this through Apache's mod_rewrite, which allows us to re-write a HTTP URL as HTTPS, and we also enforce usage of www hostname. Did you type in jaxlug.ngo, domain name only, and you ended up at www.jaxlug.ngo? Well know you know why and, more importantly, how!

                
RewriteEngine on

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
                
            

We also use mod_rewrite for when pages move around... Yes, things change, and breaking URLs is bad!

                
RewriteEngine on

RewriteRule ^/financial.html /about/financial.html [L,NE,R=301]
RewriteRule ^/legal.html /about/legal.html [L,NE,R=301]
                
            

Note: RewriteEngine on only needs to be done once per file, these are all in the same file, just broken apart for explanation.

Virtual Hosts


One of the main features of most web server software is the ability for virtual hosts, a server has a single host and domain name, sometimes even a single IPv4 and IPv6 address yet, it can serve websites for any number of host and domain name combinations, and sub combinations. This is done through a feature called Virtual Hosting. While this is not necessary for a single site, this is still being used on this server as it is transitioned. For more information on Apache's virtual hosting please refer to their documentation.

In the future, the JaxLUG may afford hosting to members for various purposes, but there are numerous free options available for such. Still, this is one of the many benefits or potential benefits of running our own web server, and maybe someday, a web server fleet provisioned and administrated by YOU!