Servers
- Video Site
- Book Issues
- Introduction
Accidental Sysadmin Syndrome
- Assumptions
Linux Distributions
- Popularity is Relative
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
- Why the numbers in the filenames?
- Apache2 Tools
- 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
- Heartbleed & Friends
- Creating a Wildcard Self-Signed Certificate
- Apache Setup
- “Server’s certificate does not match the URL.”
- 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
