Node.js Applications

Setting up Node.js Applications: How to Perform Production Tasks on Ubuntu 20.04 with Node.js

Introduction Node.js is a programming environment that runs primarily on JavaScript. The open-source program allows you to build networking applications on platforms running Windows, Linux, macOS, and others. You can use Node.js applications in two main ways: as command line apps or as services. Using a Node.js app as a service means that it will restart on reboot. This makes …

HAProxy featured image

HAProxy and Load Balancing Concepts: the Basics

Introduction High Availability Proxy (HAProxy), is a popular open-source proxying and TCP/HTTP load balancer solution able to run on Solaris, FreeBSD, and Linux. It is most commonly used to enhance the reliability and performance of a server environment by providing a balanced distribution of workload across multiple servers. This type of tool is used in many high-profile environments like Instagram, …

Elastic Stack featured image

How to Install the Elastic Stack on Ubuntu 18.04

The Elastic Stack (previously known as the ELK Stack) is a powerful solution for centralized logging. It’s a collection of open-source software developed by Elastic. It allows admins to search, analyze, and visualize logs generated from any source in any format. It’s a form of practice known as centralized logging. Centralized logging can be very handy when trying to pinpoint …

Deploy a PHP Application on Kubernetes featured image

Deploy a PHP Application on a Kubernetes Cluster with Ubuntu 18.04

Kubernetes (also known as k8s) is an open-source orchestration system. It allows users to deploy, scale, and manage containerized applications with minimum downtime. In this tutorial, you will learn how to deploy a PHP Application on a Kubernetes Cluster. Nginx behaves as a proxy to PHP-FPM while running a PHP application. Managing these two services in a single container is …

Docker compose featured image

How to Install and Configure Docker Compose on Ubuntu 20.04

Introduction Containerization has greatly picked up momentum in the software tech space over recent years. This can be attributed to Docker which is a container platform that simplifies the management of processes inside containers. Containers are lightweight, virtualized, portable, software-defined standardized environments that allow the software to run in isolation from other software running on the physical host machine. This …

Nginx featured image

Nginx HTTP Proxying, Load Balancing, Buffering, and Caching: an Overview

Introduction Nginx is a high-performance web server that is also used as a reverse proxy, mail proxy, load balancer, and HTTP cache. Nginx is free and open-source, allowing anyone to download and use it in their server environment. You may have already used Nginx to serve websites. In this tutorial, we will be discussing the other capabilities of Nginx. The …

SSL Certificate featured image

Installing an SSL Certificate From a Commercial Certificate Authority: A Comprehensive Guide

Introduction SSL certificates are tools that enable you to make your server more secure. These data files make the connections between a server and a browser safer. They are the difference between an HTTP and an HTTPS website. The way an SSL certificate works is that it encrypts your data stream, vets out the traffic, and verifies user identities. It …

create a kubernetes cluster

How To Create a Kubernetes Cluster Using Kubeadm on Ubuntu 18.04

This tutorial will guide you on setting up a Kubernetes cluster from scratch using Ansible and Kubeadm and further deploying a containerized Nginx application with it. Introduction Kubernetes (also known as k8s or “kube”) is an open-source container orchestration platform that automates many of the manual processes involved in deploying, managing, and scaling containerized applications. Kubernetes has a rapidly growing …

Share Data Between Docker Container and Host featured image

How To Share Data Between a Docker Container and a Host

Introduction Generally, Docker containers only run for a certain period of time – the time it takes to run the command. The data that is available inside the container can only be accessed from within the container during the runtime. Docker volumes can be used for accessing the files easily and storing them for a longer period. For example, if …

Nginx Server featured image

Nginx Server and Location Block Selection Algorithms: Overview

Introduction Nginx is among the world’s most popular web server options. It is able to successfully deal with a multitude of simultaneous client connections. At the same time, it is functioning as a mail, web, or reverse proxy server. This guide aims to outline the behind-the-scenes methods that direct how Nginx processes client requests. We will demystify the server and …

Netcat utility featured image

Netcat Utility on Linux: Testing TCP/UDP Connections on a VPS with Netcat

Introduction One of the biggest advantages of using Linux is the plethora of helpful utilities it provides. The in-program features are usually sufficient for most programmers to do their work. This means that most of the time, you will not need to download external programs and software. The built-in tools will provide you enough utility. Among these helpful features is …

System Crash featured image

How to Configure a Linux Service to Auto-Start After a Reboot or System Crash: Part 1 (Practical Examples)

Introduction In computing, things don’t always go as planned. Oftentimes unexpected system crashes prompt system admins to initiate reboots and restart of individual services. Figuring out and restarting every service your application needs to run after a system crash or reboot can be tedious. In this first installment of the two-part tutorial, we will show you how to configure services …