Don't catch Accidental Sysadmin Syndrome™
Application development is getting more complex, and we developers need to know how to setup and maintain the servers that run our applications. Don’t get stuck at 3am with a broken server, or in the middle of your workday fighting configuration. Learn how to administer your servers!
Run & Manage Web Servers
Learn how to install and configure Nginx, Apache so you can serve your web applications.
Multi-Server Setup
Learn how to connect multiple servers so they can work together for load balancing, caching, redundancy and more.
Latest Technologies
Learn how to install and manage the latest technologies, including setting up queues/workers, monitoring processes so they don’t fail, handling server and applications logging and more!
Setup and Security
Learn how to setup each server with needed software and security configuration to keep your applications and their data safe.
This includes preventing unauthorized access, managing permissions and users, learning how to use the iptables firewall, configuring SSH, enabling SSL certificates and more!
Author(s): Chris Fidao
Edition: 1 (2018-06-19)
Publisher: Leanpub
Year: 2018
Language: English
Pages: 340
Table of Contents
Servers
Video Site
Book Issues
Introduction
Accidental Sysadmin Syndrome
Assumptions
Linux Distributions
The Sandbox
Install Virtualbox and Vagrant
Configure Vagrant
Vagrant Up!
Basic Commands
Basic Software
Review
Security
Users and Access
IP Addresses
Creating a New User
Making Our User a Super User
Setting Up the Firewall: Iptables
Adding these rules
Inserting Rules
Deleting Rules
Saving Firewall Rules
Defaulting to DROP Over ACCEPT
Logging Dropped Packets
Firewalls with UFW
Fail2Ban
Iptables Integration
Installation
Configuration
Automatic Security Updates
Package Managers
Apt
New (as of 16.04 Xenial, continuing into 18.04 Bionic)
Installing
Repositories
Examples
Searching Packages
Permissions and User Management
Permissions
Checking Permissions
Changing Permissions
User Management
Creating Users
Umask & Group ID Bit
ACL's
Running Processes
Webservers
HTTP, Web Servers and Web Sites
A Quick Note on DNS
DNS & Hosts File
Xip.io
Virtual Hosts
Hosting Web Applications
Three Actors
Apache
Installing
Configuration
Virtual Hosts
Apache and Web Applications
MPM Configuration
Security Configuration
Envvars
Nginx
Features
Installation
Web Server Configuration
Servers (virtual hosts)
Integration with Web Applications
PHP
Installation
Configuration
PHP-FPM
PHP in Nginx: Subdirectories
Server Setup for Multi-Tenancy Apps
DNS
Multi-Tenancy in Apache
Multi-Tenancy in Nginx
SSL Certificates
SSL Overview
Using SSL in Your Application
Creating Self-Signed Certificates
Creating a Wildcard Self-Signed Certificate
Apache Setup
Nginx Setup
One Server Block
Extra SSL Tricks
LetsEncrypt
Web Server Security
Install Letsencrypt
Install a Certificate
Nginx Configuration
Renewal
Multi-Server Environments
Implications of Multi-Server Environments
Asset Management
Sessions
Lost Client Information
SSL Traffic
Logs
Load Balancing with Nginx
Balancing Algorithms
Configuration
Mapping Headers
SSL with Nginx
SSL-Termination
SSL-Passthru Support
When to use Pass-Thru
Load Balancer (Server A, at 52.90.130.140):
Web Server (Server B, at 52.23.215.245):
Load Balancing with HAProxy
Common Setups
Installation
HAProxy Configuration
Monitoring HAProxy
Sample NodeJS Web Server
SSL with HAProxy
HAProxy with SSL Termination
HAProxy with SSL Pass-Through
Sample NodeJS Web Server
Web Cache
Nuts and Bolts of HTTP Caching
Object Caches
Web Caches
Types of HTTP Caches
An Origin Server
Testing Caching Mechanisms
Nginx Web Caching
Use Cases
How It Will Work
Origin Server
Cache Server
Proxy Caching
Example: Caching Specific URIs
Varnish
Origin Server
Install Varnish
Basic Configuration
Increasing Cache Hit Rate
Varnish Tools
Extra Resources
Logs
Logrotate
What does Logrotate do?
Configuring Logrotate
Going Further
Rsyslog
Configuration
Usage
Should I Use Rsyslog?
Sending To Rsyslog From An Application
File Management, Deployment & Configuration Management
Managing Files
Copying Files Locally
SCP: Secure Copy
Rsync: Sync Files Across Hosts
Deployment
Auto-deploy with GitHub
How it Works
Node Listener
Shell Script
Putting it together
Firewall
Configuration Management with Ansible
Install
Managing Servers
Basic: Running Commands
Basic Playbook
Roles
Facts
Vault
SSH
Logging in
SSH Config
SSH Tunneling
Local Port Forwarding
Remote Port Forwarding
One-Off Commands & Multiple Servers
Basic Ansible
Monitoring Processes
A Sample Script
System Services
System V Init (SysVinit, SysV)
Systemd
Upstart
The Service Command
Using These Systems
Supervisord
A Chain of Process Monitors
Installation
Configuration
Controlling Processes
Web Interface
Forever
Installation
Usage
Circus
Installation
Configuration
Controlling Processes
Web Interface
Starting on Boot
Development and Servers
Serving Static Content
Built-In
NodeJS
Dynamic Content