← All courses

Training

DevOps with Nginx

DevOps with Nginx

On a Ubuntu Linux web server for .NET apps - 3 days

This is a comprehensive 3-day training program designed to introduce complete beginners to NGINX, a powerful and versatile web server and reverse proxy. This course is uniquely tailored for .NET developers aiming to deploy applications on Ubuntu Linux. Our trainers, with over 30 years of development experience both in and outside Malaysia, bring a wealth of knowledge and practical insights to ensure a deep and practical understanding of NGINX, SSL/TLS, Fully Qualified Domain Names (FQDNs), certificates, and the nuances of deploying .NET applications on a Linux environment.

Learning Outcomes

By the end of this training, participants will be able to:

  • Understand the basics of a Linux deployment environment, including fundamental commands and file system navigation.
  • Install, configure, and manage NGINX on a web server powered by Linux.
  • Comprehend the concepts of SSL/TLS, FQDN, and the importance of web security.
  • Acquire skills in managing SSL/TLS certificates.
  • Deploy a .NET application on Ubuntu Linux using NGINX.
  • Configure NGINX as a reverse proxy for a .NET application.
  • Troubleshoot common issues in NGINX and .NET deployments on Linux.
  • Understand best practices for securing and optimizing NGINX.

Prerequisites

  • Basic understanding of web technologies and web servers.
  • Familiarity with programming concepts (specifically .NET, although detailed coding skills are not required).
  • Basic knowledge of command-line interfaces and text editors.
  • A laptop with administrative access and the ability to install software.

Training Outline

  1. Introduction to Ubuntu Linux
    1. Overview of Linux and its distributions.
    2. Installing and setting up Ubuntu Linux.
    3. Basic Linux commands and navigating the file system.
    4. Understanding the Linux directory structure.
    5. Installing software packages using package managers (apt).
  2. Fundamentals of NGINX
    1. Introduction to NGINX: history, uses, and advantages.
    2. Installing NGINX on Ubuntu Linux.
    3. Basic configuration of NGINX.
    4. Hosting a simple HTML site using NGINX.
    5. Understanding NGINX configuration files and syntax.
    6. Managing NGINX service: starting, stopping, and reloading configurations.
  3. SSL/TLS and Certificates
    1. Understanding SSL/TLS and its importance for web security.
    2. Overview of FQDN and its role in web applications.
    3. Generating and installing SSL/TLS certificates.
    4. Configuring SSL/TLS in NGINX.
    5. Best practices for SSL/TLS and certificate management.
  4. Deploying .NET on Ubuntu Linux
    1. Overview of .NET Core and its compatibility with Linux.
    2. Setting up the .NET environment on Ubuntu.
    3. Deploying a basic .NET application on Linux.
    4. Understanding dependencies and compatibility issues.
  5. NGINX as a Reverse Proxy for .NET Applications
    1. Concept of reverse proxy and its use cases.
    2. Configuring NGINX as a reverse proxy for a .NET application.
    3. Handling static and dynamic content in NGINX.
    4. Tuning NGINX for optimal performance with .NET applications.
  6. Security and Optimization
    1. Securing NGINX and your .NET application on Linux.
    2. Implementing firewalls and security best practices.
    3. Optimizing NGINX for performance: caching, load balancing, and compression.
  7. Troubleshooting and Maintenance
    1. Common issues in NGINX and their solutions.
    2. Troubleshooting .NET application deployment issues on Linux.
    3. Logging and monitoring NGINX performance.
    4. Keeping NGINX and .NET applications updated and secure.
  8. Best Practices
    1. Recap of key concepts and best practices.
    2. Q&A session to address any remaining questions.
    3. Guidance on further learning resources and community involvement.

This training program promises a blend of theoretical knowledge and practical exercises, ensuring that participants leave with a solid foundation in NGINX and the confidence to deploy and manage .NET applications on Ubuntu Linux.

Practical, connected learning

My wider training approach brings hands-on implementation and systems thinking together, connecting technology with real operational needs.