Red Hat Enterprise Linux

How to Install and Configure Caddy Web Server on RHEL 8 — step-by-step RHEL 8 tutorial on Progressive Robot

How to Install and Configure Caddy Web Server on RHEL 8

Caddy is a modern, open-source web server written in Go that automatically provisions and renews TLS certificates via Let’s Encrypt. Unlike Apache or Nginx, Caddy requires almost no manual TLS configuration, making it an excellent choice for developers who want HTTPS out of the box. On RHEL 8, Caddy is not available in the default […]

Read more
How to Harden Nginx: Security Headers, TLS 1.3 and OCSP Stapling on RHEL 8 — step-by-step RHEL 8 tutorial on Progressive Robot

How to Harden Nginx: Security Headers, TLS 1.3 and OCSP Stapling on RHEL 8

A default Nginx installation exposes version information in response headers, accepts legacy TLS protocols, and sends no browser security directives — all of which reduce your attack surface score and leave clients vulnerable to clickjacking, MIME sniffing, and downgrade attacks. Hardening Nginx on RHEL 8 involves a series of targeted configuration changes: suppressing the server […]

Read more
How to Configure Nginx with ModSecurity WAF on RHEL 8 — step-by-step RHEL 8 tutorial on Progressive Robot

How to Configure Nginx with ModSecurity WAF on RHEL 8

ModSecurity is not limited to Apache — it can also protect Nginx deployments through a dedicated dynamic module called ngx_http_modsecurity_module. The module embeds the ModSecurity v3 library directly into Nginx’s request processing pipeline, enabling the same OWASP Core Rule Set that Apache users rely on. On RHEL 8, Nginx is available from the AppStream module […]

Read more
How to Encrypt Disk Partitions with LUKS on RHEL 7 — step-by-step RHEL 7 tutorial on Progressive Robot

How to Encrypt Disk Partitions with LUKS on RHEL 7

How to Encrypt Disk Partitions with LUKS on RHEL 7 Linux Unified Key Setup (LUKS) is the standard for disk encryption on Linux, providing a robust, well-documented format for encrypted block devices. By encrypting partitions with LUKS, you ensure that data remains unreadable if physical drives are removed or a server is decommissioned without proper […]

Read more
How to Configure PHP-FPM with Nginx on RHEL 7 — step-by-step RHEL 7 tutorial on Progressive Robot

How to Configure PHP-FPM with Nginx on RHEL 7

How to Configure PHP-FPM with Nginx on RHEL 7 PHP-FPM (FastCGI Process Manager) is the recommended way to run PHP alongside Nginx. Unlike Apache’s mod_php which embeds PHP directly into the web server process, PHP-FPM runs as a completely separate daemon. Nginx passes PHP requests to PHP-FPM over a Unix socket or TCP connection, and […]

Read more
How to Set Up a Highly Available Web Stack with Keepalived on RHEL 8 — step-by-step RHEL 8 tutorial on Progressive Robot

How to Set Up a Highly Available Web Stack with Keepalived on RHEL 8

A highly available web stack ensures that your application remains accessible even when one of your servers fails. Keepalived implements the Virtual Router Redundancy Protocol (VRRP) on Linux, allowing a floating Virtual IP (VIP) address to migrate automatically between a master and one or more backup servers within seconds of a failure. When combined with […]

Read more
How to Manage Node.js Versions with NVM on RHEL 8 — step-by-step RHEL 8 tutorial on Progressive Robot

How to Manage Node.js Versions with NVM on RHEL 8

NVM (Node Version Manager) is a shell script that lets you install and switch between multiple Node.js versions on the same machine without requiring root access or affecting system-wide packages. This is invaluable when you work on projects that require different Node.js versions simultaneously, or when you need to test your application against multiple runtimes. […]

Read more
How to Configure Nginx FastCGI Caching on RHEL 8 — step-by-step RHEL 8 tutorial on Progressive Robot

How to Configure Nginx FastCGI Caching on RHEL 8

Nginx FastCGI caching dramatically reduces PHP processing load by storing rendered responses on disk and serving them directly to subsequent visitors. On RHEL 8, combining Nginx with a PHP-FPM backend and a well-configured cache can cut backend response times by 80–95% for cacheable pages. This tutorial walks through configuring the fastcgi_cache_path directive, defining cache keys, […]

Read more
How to Configure Network Bonding and Teaming on RHEL 7 — step-by-step RHEL 7 tutorial on Progressive Robot

How to Configure Network Bonding and Teaming on RHEL 7

How to Configure Network Bonding and Teaming on RHEL 7 Network link aggregation allows multiple physical network interfaces to be combined into a single logical interface, providing increased throughput and fault tolerance. RHEL 7 supports two distinct kernel-level mechanisms for achieving this: the older bonding driver, which has been part of the Linux kernel for […]

Read more
How to Register a GitHub Actions Self-Hosted Runner on RHEL 7 — step-by-step RHEL 7 tutorial on Progressive Robot

How to Register a GitHub Actions Self-Hosted Runner on RHEL 7

How to Register a GitHub Actions Self-Hosted Runner on RHEL 7 GitHub Actions is a CI/CD platform built directly into GitHub, and while GitHub provides hosted runners for common workflows, there are many scenarios where you need to run workflows on your own infrastructure: accessing internal services not exposed to the internet, using specific hardware […]

Read more
CHAT