Project

NGINX. From the ground up.

server setup image
server setup overlay

Overview

This project involved configuring a DigitalOcean shared server with Nginx on Ubuntu to host my static portfolio website and multiple web applications on subdomains. I manually set up SSL for secure connections, configured DNS, and deployed applications using Docker containers for isolated environments.

Tech Stack

  • Hosting: DigitalOcean (Shared Virtual Server)
  • Security: SSL, Firewall, HTTPS
  • Deployment: Docker, SFTP
  • Configuration: DNS, LetsEncrypt, SSH, Nginx

Technical Details

Architecture & DNS

Server Architecture Diagram

Domain Name System

DNS Setup

DNS Details

Droplet Dashboard

Dashboard

Droplet Dashboard
This section details the Docker Infrastructure related the "Server Setup" Project only.

Technical Details

Docker Infrastructure

Server Architecture Diagram

Docker Compose

docker-compose.yaml

Docker Compose Configuration

Network Segregation

Resource Management

Persistent Volumes

Screenshots

Details

Security Details

SSL & LetsEncrypt

HTTP Observatory

MDN Report

Headers

Security Headers

Firewall

UFW & fail2ban

Key Benefits

Nginx as Reverse Proxy

Nginx reverse proxy acts as an intermediary server that forwards client requests to appropriate backend servers. It handles incoming requests and distributes them to backend applications while providing an additional layer of abstraction and security.

Key Benefits

  • Hides backend server architecture
  • Provides SSL termination
  • Enables caching and compression
  • Enhances security through IP masking
  • Simplifies backend maintenance
Reverse Proxy Configuration

Nginx. Key Benefits

Load Balancer

Nginx load balancer distributes incoming network traffic across multiple backend servers, ensuring no single server bears too much load. It monitors servers' health and automatically removes failed ones from the pool.

Load Balancer Configuration

Features

  • High availability and reliability
  • Scalable architecture
  • Automatic health checks
  • Flexible distribution algorithms
  • Session persistence options

Technical Details

Server Blocks

Server Blocks (or Virtual Hosts) allow hosting multiple domains on a single Nginx server. Each server block can have its own configuration, enabling different settings for different domains.

Main Purpose

  • Host multiple domains on one server
  • Domain-specific configurations
  • Separate logging per domain
  • Individual SSL certificates
  • Resource isolation
Server Blocks Configuration

Screenshots

Details