The Perfect NGINX Server - CentOS Edition
4.6 (116 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
723 students enrolled

The Perfect NGINX Server - CentOS Edition

The Absolute Beginners CentOS Course to Setting Up Multiple Blazingly Fast WordPress Sites Using NGINX
4.6 (116 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
723 students enrolled
Created by Andrew Eaton
Last updated 3/2020
English
English [Auto-generated]
Current price: $64.99 Original price: $99.99 Discount: 35% off
15 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 8 hours on-demand video
  • 1 article
  • 31 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Setup, from scratch, a secured, hardened and optimized CentOS based Virtual Private Server
  • Purchase, from any host, an unmanaged VPS and have the knowledge to setup the VPS correctly and most importantly securely
  • Using NGINX, host and serve multiple WordPress sites on a single CentOS based server.
  • Install, secure and optimize NGINX, MariaDB and PHP
  • Install a WordPress site in a few seconds using the WordPress Command Line Interface
  • Secure and Optimize a WordPress site correctly
  • Install multiple WordPress sites on a single server
  • Install FREE Lets Encrypt SSL certificates and configure automatic renewal of the SSL certificates for all your sites hosted on the server
  • Create a site backup solution to backup your sites - plugin free
Course content
Expand all 85 lectures 07:49:50
+ Course Introduction
3 lectures 19:22

Course welcome and Introduction

Preview 04:39

Download, install and configure the free and/or open source software required for the course. All software is FREE and no software purchase of any kind is required.

Windows Users: Please configure CMDER as per the lectures to ensure you do not experience any issues later in the course. I have attached a PDF to accompany the lecture on CMDER configuration.

Preview 06:45

2019 Update: We are going to look at my recommended web host as well as specifications for a development and production server. We will also look at CentOS and creating a CentOS based server instance.

2019 Update: Server Specifications and Web Hosts
07:58
+ Linux Essential Skills
10 lectures 44:01

Covers the essential skills needed to administer your own server and complete this course successfully.

Linux Essential Skills - Introduction
01:10

Understand what the terminal prompt is displaying

Linux Essential Skills - Terminal Prompt
04:43

You need to know how to type a command correctly and if needed use a command flag/option

Linux Essential Skills - Typing a Command
05:06

Covers one of the most essential skills required - the ability to navigate the file system.

Linux Essential Skills - Navigating the File System
09:05

We are going to edit numerous configuration files, learn how to access the files, make backup copies and open the files

Linux Essential Skills - Configuration Files
03:18

We will be using the editor Nano to make changes to various configuration files

Linux Essential Skills - Nano
02:23

Covers the different types of users on a Linux system

Linux Essential Skills - Users
02:59

Setting the correct ownership and permissions are the basis of a secure WordPress site. This lecture is of extreme important and I recommend that, if you are new to Linux, you watch this lecture a few times

Linux Essential Skills - Ownership
02:39

Setting the correct ownership and permissions are the basis of a secure WordPress site. This lecture is of extreme important and I recommend that, if you are new to Linux, you watch this lecture a few times

Linux Essential Skills - Permissions
08:46

Covers installing software - packages - on your server and the CentOS package manager - YUM

Linux Essential Skills - Packages and YUM
03:52
+ Initial Server Configuration and Security
6 lectures 49:07

This lecture covers the essential security steps you need to take after receiving your login details from your web host. You need to complete each step.

PDF Section Resource attached to this lecture, please download the file.

First Server Login - ROOT User
11:12

Covers the continued hardening of your server, only this time as a "non root" user

First Server Login - NON ROOT User
05:52

Username and password authentication is not secure, you are going to use SSH Public Key Authentication to login to your server. In this lecture, you are going to generate a key pair and configure the server to only allow SSH key authentication.

SSH Key Authentication
14:27

After creating a config file, you can login to your server using an alias

SSH Key Authentication - Config File
04:01

Lockdown your server using the firewall - this is one of the most important steps in server security. You are going to be very strict with the firewall and allow, only, the ports and services that are absolutely necessary to be opened

The Firewall
04:52

Fail2ban is an intrusion prevention framework - we use it to "ban" unauthorised login attempts for an amount of time we specify.

Fail2Ban
08:43
+ Install, Secure and Optimize NGINX MariaDB and PHP
6 lectures 21:59

Covers installing and initial configuration of our web server, NGINX. More detailed configuration follows in the next section.

PDF Section Resource attached to this lecture, please download the file.

Install NGINX
05:07

Covers installing and securing the database, MariaDB. MariaDB is a relational database management system and offers better performance and resource demands than MySQL

Install and Secure MariaDB
01:57

Covers configuring and optimizing MariaDB

Configure MariaDB
02:33

In this lecture we are going to further secure MariaDB.

Further MariaDB Configuration
03:43

Covers installing and securing PHP 7.3 on your server, please download the pdf resource

Install and Secure PHP 7.3
06:01

In this lecture we are going to configure the php-fpm ( FastCGI Process Manager ) service to use UNIX sockets which are faster and more efficient than TCP sockets. 

Configure Unix Socket
02:38
+ NGINX
11 lectures 01:17:31

You need to understand how a NGINX configuration file is structured and various configuration file terminology - directives and contexts

PDF Section Resource attached to this lecture, please download the file.

Understanding NGINX Configuration Structure and Terminology - Part 1
05:40

You need to understand how a NGINX configuration file is structured and various configuration file terminology - the location context and modifiers

Understanding NGINX Configuration Structure and Terminology - Part 2
05:15

You need to understand how a NGINX configuration file is structured and various configuration file terminology - this lecture covers the important try_files directive

Understanding NGINX Configuration Structure and Terminology - Part 3
04:34

The main nginx configuration file needs our attention - we need to organize, secure and optimize nginx.conf.  I split the procedure into three lectures. This is Part 1...

Organizing, Securing and Optimizing NGINX - Part 1
09:49

The main nginx configuration file needs our attention - we need to organize, secure and optimize nginx.conf.  I split the procedure into three lectures. This is Part 2...

Organizing, Securing and Optimizing NGINX - Part 2
06:16

The main nginx configuration file needs our attention - we need to organize, secure and optimize nginx.conf.  I split the procedure into three lectures. This is Part 3...

Organizing, Securing and Optimizing NGINX - Part 3
08:05

Covers creating our WordPress sites directories, setting the ownership and ensuring the SELinux context is correct. We are also going to configure the DNS records to point a domain name to our server.

Creating Site Directories
09:27

We use nginx server blocks to display our sites to the world, this lecture covers creating a server block "template" to make adding additional sites easy. We also create a server block for our first WordPress site

NGINX Server Blocks
12:15
MariaDB Login Reminder
00:21

Covers creating a database for the WordPress site we are about to install

Host Your First WordPress Site on the Server - Part 1
05:40

We will use WPCLI - the WordPress Command Line Interface - to create and install our first WordPress site. WPCLI is so much quicker and easier than even the famous 5 minute WordPRess install. Three commands and your site is up and running!!!

Host Your First WordPress Site on the Server - Part 2
10:09
+ Securing WordPress
6 lectures 39:45

These four lectures cover securing your wordpress site(s). These lectures are extremely important - your site must be secure. We cover this aspect in a multi faceted approach - the command line, SELinux and NGINX directives are all used to secure your WordPress site.

PDF and TEXT Section Resource attached to this lecture, please download the files.

Securing Your WordPress Site - Part 1
08:23

These four lectures cover securing your wordpress site(s). These lectures are extremely important - your site must be secure. We cover this aspect in a multi faceted approach - the command line, SELinux and NGINX directives are all used to secure your WordPress site.

PDF and TEXT Section Resource attached to this lecture, please download the files.

Securing Your WordPress Site - Part 2
07:16

These four lectures cover securing your wordpress site(s). These lectures are extremely important - your site must be secure. We cover this aspect in a multi faceted approach - the command line, SELinux and NGINX directives are all used to secure your WordPress site.

Securing Your WordPress Site - Part 3
05:52

These four lectures cover securing your wordpress site(s). These lectures are extremely important - your site must be secure. We cover this aspect in a multi faceted approach - the command line, SELinux and NGINX directives are all used to secure your WordPress site.

Securing Your WordPress Site - Part 4
05:37

2019 Update: It's important to keep your site secure, I've added a few additional nginx directives to help "protect your site against: php file execution in various directories, help prevent sql and file injection attacks, help protect against common exploits and block spam bots.

2019 Update: Securing Your WordPress Site - Part 5
02:23

2019 Update: Protect xmlrpc.php and wp-login.php using NGINX rate limiting. Implementing rate limiting can help stop DDOS attacks on xmlrpc.php and to slow down brute force password guessing attacks on wp-login.php

2019 Update: Secure xmlrpc.php & wp-login.php Using NGINX Rate Limiting
10:14
+ SSL Certificates
7 lectures 35:13

Covers installing the Let's Encrypt client and installing the FREE SSL certificate for our first site.

PDF Section Resource attached to this lecture, please download the file.

Let's Encrypt - Part 1
04:49

We have been typing certain commands over and over again, it's time for me to introduce you to command aliases. This lecture covers command aliases, save lots of time using command aliases.

Let's Encrypt - Part 2
03:33

Configure the nginx directives needed to implement https

Let's Encrypt - Part 3
03:29

Continuing the configuration the nginx directives needed to implement https

Let's Encrypt - Part 4
04:23

Configure nginx to use the Let's Encrypt certificates and display your sites over https only. Your SSL certificate will receive an A+ rating.

Let's Encrypt - Part 5
06:00

We are going to automate the Let's Encrypt SSL certificate renewal - never forget to renew your SSL certificates as this will be done automatically for you.

Let's Encrypt - Part 6
09:16

It's important that all your content is served over "https only" to prevent mixed content errors. This lecture guides you through the procedure to ensure that all existing content and new content is https.

Implement HTTPS Everywhere Policy on your site(s)
03:43
+ Optimizing WordPress
5 lectures 53:43

We are going to optimize WordPress to be as fast as possible and use minimal server resources. Your page speed scores will sky rocket. A standard WordPress installation tested at this point received a 100% Page Speed score and a 96% Yslow score.

PDF and TEXT Section Resource attached to this lecture, please download the files.

Optimizing WordPress
06:02

2019 Update: As per so many requests from students, here it is - W3 Total Cache configuration for your VPS.

W3TC is one of the most complete caching frameworks for your WordPress sites. It delivers excellent performance.

This lecture guides you on the configuration of W3TC and more importantly, securing various W3TC files.

2019 Update: Optimizing WordPress Using W3 Total Cache
12:03

2019 Update: The first type of server side caching we will enable on the server is object caching. This drastically increases page load speeds and also reduces the database server resource requirements.

The first time a WordPress page is loaded a database query is performed on the server. Redis caches this query into memory, so that when another user loads this page there is no need to query the database again, Redis provides the previously cached query results from memory.

This drastically increases page load speeds and also reduces the database server resource requirements.

2019 Update: Optimizing WordPress Using Object Caching - Redis
11:00

2019 Update: As per many requests, the "correct" way to configure Cloudflare on your VPS

2019 Update: Configure Cloudflare on your VPS
10:14

In this lecture you are going to configure nginx fastCGI caching.  Nginx FastCGI caching is a server side page caching solution that offers excellent performance for your WordPress site(s).

2019 Update: NGINX FastCGI Caching
14:24
+ 2019 Update: Content Security Policy
2 lectures 19:04

In this section you are going to add an additional layer of security to your WordPress site.

The Content Security Policy is an added layer of security that helps to detect and mitigate certain types of attacks. You need to be vigilant and monitor your sites CSP on a regular basis to ensure that no external assets are being blocked.

This lecture will teach you how to setup a CSP on your nginx powered WordPress site.

Create a Content Security Policy (CSP) for your WordPress Sites - Part 1
09:37

In this section you are going to add an additional layer of security to your WordPress site.

The Content Security Policy is an added layer of security that helps to detect and mitigate certain types of attacks. You need to be vigilant and monitor your sites CSP on a regular basis to ensure that no external assets are being blocked.

This lecture will teach you how to setup a CSP on your nginx powered WordPress site.

Create a Content Security Policy (CSP) for your WordPress Sites - Part 2
09:27
+ Additional Security Layer
1 lecture 03:49

fail2ban is "protecting" ssh access to our server, so let's add some additional protection - jails - to protect nginx.

PDF and TEXT Section Resource attached to this lecture, please download the files.

NGINX and Fail2Ban
03:49
Requirements
  • This course is designed for the absolute beginner, no prior knowledge of the subject is needed, I'll be guiding you step by step throughout the course.
  • No knowledge of CentOS, server administration or NGINX is required, I'll teach you.
  • You should have a basic knowledge of using WordPress, as this course will not teach you how to use WordPress, rather how to host WordPress sites securely.
Description

2019 Update(s): The 2019 updates added to the course relate to performance and security - some of the updates include:

Performance: Redis Object Caching, FastCGI Caching, W3 Total Cache and how to correctly enable Cloudflare on your VPS.

Security: stop xmlrpc.php and the seemingly never ending wp-login.php attacks using Nginx Rate Limiting. Make use of nginx directives to block certain user agents, spam bots and common exploits. Nginx directives also aid in stopping certain sql and file injection attacks. Further protect your site by restricting from where assets can be fetched by the clients browser using a Content Security Policy.

This is a beginners course that assumes you have no knowledge configuring a CentOS server or NGINX.

NGINX is a high performance web server that is responsible for serving almost all of the most popular sites in the world. You can serve your WordPress sites using the same web server as the busiest sites in the world. NGINX can deliver your site(s) up to 70% faster than Apache.

CentOS is a free operating system derived entirely from the Red Hat Enterprise Linux (RHEL) distribution. CentOS provides an enterprise class server operating system and is probably the most popular Linux distribution for servers. The main reason is stability. When you think of CentOS, think of stability and rock solid reliability with uptime measured in years rather than weeks.

I will teach you, step by step, to a point where you will have the skill, knowledge and confidence to host multiple secure and optimized WordPress sites on an unmanaged Virtual Private Server. You will need no support from your host. You will be your own system administrator and tech support agent.

Never used the command line before? Never edited a configuration file before? No problem, I will teach you and provide you with the knowledge you need. This course also includes a Linux Essential Skills Crash Course - learn the basics quickly and easily.

I cover all aspects, no matter if your are using Windows or MACOSX. We will download the software, I'll show you how to install and configure the software and most important how to use the software. Prior to each section, I'll explain what we are doing, why we are doing it and in plain easy to understand English. You wont find any long and boring PowerPoint presentations and minute after minute looking at me talking to the camera. Its us and the command line, nothing else. The command line is easy to use, just think of terminal as a very basic word processor. I'll be there guiding you step by step.

This course covers the entire spectrum of configuring a CentOS based NGINX server. We will cover everything from initial server configuration to installing NGINX, MariaDB and php7.3. We will configure, secure and optimize nginx, install, secure and optimize WordPress and end with installing Let's Encrypt SSL certificates and plugin free backups.

The most important aspect of any server is security. I don't just glance over this aspect, every configuration step you will take is geared towards security. Some of the security aspects included in the course are: SSH Keys, the firewall, fail2ban, changing "dangerous" default settings, NGINX "deny" directives and Security Enhanced Linux. These are just some of the steps we are going to use in securing your server and your sites. Installing a WordPress "security plugin" does not secure your server or your WordPress site. Some "security plugins" are a source of vulnerabilities themselves.

We will NOT disable SELinux ( Security Enhanced Linux ) to make security configuration easier, we will configure SELinux to work with our existing security configuration.

After security we need to look at site optimization. Speed is everything and with our optimization NGINX will deliver WordPress sites at blazingly fast speeds. We will use a varied approach to optimization - command line, "caching" directives, server side object and page caching. Only after optimizing the server will we look at WordPress caching plugins. A caching plugin is used to complement the server configuration, its not meant to be your first choice in optimization.

By the end of this course, you will be ready to reap the benefits. There will be numerous new services you will be adding to your resume as a web developer. You will be able to charge for numerous new services -  site hosting, site optimization, ssl certificate installation and renewal, backups and even a monthly maintenance fee. This course will add a new recurring revenue stream - monthly recurring income - hosting your own sites using NGINX.

All that's left is for you to sign up for this course and start your wonderful journey as your very own system administrator running multiple NGINX powered WordPress sites on a CentOS based server.

Who this course is for:
  • Anyone who wants to host their sites using NGINX
  • Anyone who is tired of Apache and the .htaccess files that slow down your site.
  • Site slow? NGINX delivers sites up to 70% faster than Apache
  • Anyone who wants to benefit from the rock solid stability of CentOS
  • This course is meant for anyone who is tired of shared hosting and wants discover the benefits hosting their WordPress sites on a VPS
  • Anyone who wants to secure a WordPress site correctly - without plugins
  • If you have ever wondered how do I move my WordPress site?
  • How do I backup my WordPress site? WITHOUT plugins
  • Web developers who want to offer additional services to their clients and earn an additional recurring income.