Web servers and services on Linux

Serve it, secure it, release it, keep it running.

⏰ 8 weeks🎯 Standard🧩 Capstone🖥 Any device · our GPUs
Generated from this course

🎯 About this course

You can already run a Linux machine. This course teaches you to run a website on it: how a request reaches a page, how nginx and Apache choose what to answer, how a certificate works, how to put a proxy in front of an application, how to run that application as a supervised service with protected settings, how to release and roll back safely, and how to harden, cache and watch it. Every exercise names who needs it and why, uses a simulated web server that behaves like the real one, and ends with a check of the effective state rather than the file you meant to edit.

By the end you will be able to

  • Describe how a web request reaches a page through a name, a port, a server block and a status code.
  • Configure nginx and Apache to serve sites and virtual hosts, and read access and error logs to find the cause of a fault.
  • Analyse a TLS certificate for names, dates and key, and configure https with a redirect.
  • Configure a reverse proxy, a pool of copies, rate limits and a private path, and tell a 502 from a 504.
  • Use systemd units, protected settings and a tested database backup to run an application as a service.
  • Plan a release with a link, a smoke test and a rollback, and clean old releases safely.
  • Apply hardening, caching and watching to a web server: headers, refused dot-files, correct owners, a cache of shared pages, log rotation, a health check and a runbook.
  • Analyse the parts of a web service and the path of one request, and size it by the capacity that survives a failure.
Curriculum

Topics covered

Serving a site 5 topics

  • Entry check: are you ready for web servers?
    A forty-five minute check of the command-line and network ideas this course builds on: status codes, ports, services, logs and file permissions, with a pointer to what…
  • Serving your first site with nginx
    How nginx turns configuration files into a site: the file layout, a server block line by line, enabling a site with a link, and the habit of testing before every reload…
  • Virtual hosts: many sites, one server
    How one nginx server hosts several sites: the Host header, servername matching, the default server, aliases, testing with curl -H, and the conflict warning for two…
  • Apache: the other big web server
    The same job with Apache: VirtualHost, ServerName and DocumentRoot, access control with Require, the a2ensite and a2enmod helpers, configtest, and the rule that one…
  • Reading logs and errors
    The two logs of a web server and what each answers, the fields of an access line, the awk and sort pipelines that count statuses and pages, the reasons in the error log…

Safe and routed 4 topics

  • TLS certificates: names, dates and keys
    What a TLS certificate states and what a browser checks, how to read one with openssl, how to watch its expiry, how to make a test certificate, how a key must match, and…
  • HTTPS and redirects
    Serving a site on port 443, redirecting http to https with return 301, permanent versus temporary redirects, one canonical host, HSTS with a short lifetime, and the…
  • Reverse proxy: nginx in front of an application
    Why an application sits behind nginx, location and proxypass, passing the real host and visitor address with headers, the difference between 502 and 504, and setting…
  • Load balancing, limits and private paths
    An upstream pool with round-robin, weights, backup and down servers, failover when a copy dies, checking that a pool survives a failure, per-visitor rate limits with…

The application as a service 3 topics

  • Run the application as a service
    Why a program started by hand is not enough, a systemd unit file for the booking application with User, ExecStart, EnvironmentFile, Restart and WantedBy, daemon-reload…
  • Settings, secrets and the database
    Settings from the environment instead of the code, an EnvironmentFile with the right owner and mode, why a password never belongs in a unit file, a database that is up…
  • Releases and rollbacks
    A folder per release and a link that points at the live one, switching with ln -sfn, a smoke test, a deploy script that restores the previous release by itself, and…

Hardened, fast and watched 3 topics

  • Hardening the web server
    Saying less (servertokens and security headers), refusing dot-files, root-owned read-only site files with modes 644 and 755, a default server that refuses unknown names…
  • Caching: fast answers without asking twice
    A proxy cache with proxycachepath, proxycache and proxycachevalid, reading MISS, HIT and EXPIRED, what is safe to cache and what is personal, the lifetime as a trade…
  • Keeping watch: logs, health checks and a runbook
    Rotating the application log with logrotate, a health check that tests what a visitor needs, scheduling it with cron, counting and explaining 502 errors, and a short…

Infrastructure behind a web service 4 topics

  • Anatomy of a web request: DNS, ports, TLS and workers
    The parts of the web service (name and door, nginx master and workers, certificate, application, database, files and logs), a card for each with role, resource profile…
  • Proxies, load balancers and caches
    The parts between the visitor and the application (reverse proxy, pool, proxy cache, limits, browser cache), a card for each, a short method for sizing a service…
  • Certificates, backups and keeping watch
    Cards for the certificate and its renewal, the backup, the monitor and the change record, with one number to watch for each, an expiry check with openssl -checkend, a…
  • Failure, recovery and the handover
    A failure table (what fails, what the visitor sees, the first check, the safe action), a drill that times noticing, finding the cause and restoring, a handover page…

Interview ready 2 topics

  • Interview ready: web servers, names and TLS
    The questions people really ask about how a web request works, server blocks, status codes, certificates and redirects, with model answers, a routine for timed tasks…
  • Interview ready: proxies, services and a mock round
    The questions people really ask about reverse proxies, 502 and 504, services, secrets, releases, capacity and handovers, with model answers, strong and weak answers…
Course at a glance

See how this course is built

Where the time goes

Longer spokes mean more hours on that module.

Course roadmap click a step

Try a lesson0 / 3

Sample questions from this course. Your progress is kept only in your browser.

Week by week

Drag the slider, or press play, to walk through the course and see what you will have built by each week.

Week 1 of 8
Wk 1

Welcome to the booking server

The entry check and scenes 1 to 4: serving a site, virtual hosts, Apache, logs.

Wk 2

Safe and routed

Scenes 5 to 8: certificates, https, the reverse proxy, the pool and limits.

Wk 3

The application as a service

Scenes 9 to 11: systemd, settings and secrets, releases and rollbacks.

Wk 4

Hardened, fast and watched

Scenes 12 to 14: hardening, caching, logs and health checks.

Wk 5

Under the hood

Scenes 15 to 18: the chain, the middle, the quiet jobs, failure and handover.

Wk 6

Interview ready

Scenes 19 and 20: model answers, timed hands-on tasks and a mock round.

Wk 7

Capstone work session

Build the capstone: the Harbour Street booking site, released and handed over.

Wk 8

Capstone review

Present the capstone.

What you'll build

The booking site configuration

A working nginx configuration for the booking site: virtual hosts, https with a redirect, a reverse proxy to the application, a pool with a rate limit, hardening and a cache, each tested with nginx -t and curl.

The service and release pack

A systemd unit with protected settings, a tested database backup, a release layout with a deploy script that rolls back, and a log rotation rule.

The web service map and handover

A card for each part, the sizing arithmetic with assumptions, a failure table with one drill, an expiry check and a one-page handover.

Why take this course

  • Trace a fault from the status code to the cause
  • Know what is in force, not just what you typed
  • Release and roll back without a night of panic

You will build

  • A hardened booking site configuration
  • A service and release pack
  • A web service map and handover

What you can do afterwards

  • Run a small website with confidence
  • Explain your choices and their risks
  • Answer web server interview questions with specifics
How to take it

💳 Delivery & fees

One course, four ways to attend. Fees are per course, in rupees excluding 18% GST (the GST-inclusive amount is shown too).Fees are per course, in Canadian dollars, before applicable GST/HST.Fees are per course, in US dollars, before any applicable local taxes. Bulk and institutional volume pricing is available.

Self-paced

₹74,500

+ 18% GST · ₹87,910 all-in

Programme ₹64,800 + infrastructure & GPU labs ₹9,700

≈ ₹9,313 per week ex-GST over 8 weeks

CA$14,500

per course, before applicable GST/HST

Includes our GPU lab infrastructure: no cloud credits to buy

≈ CA$1,813 per week over 8 weeks

US$10,400

per course, before any applicable local taxes

Includes our GPU lab infrastructure: no cloud credits to buy

≈ US$1,300 per week over 8 weeks

  • Full recorded library
  • Browser GPU lab
  • All project briefs
  • Mentor review add-on
Most popular

Live online

₹89,500

+ 18% GST · ₹1,05,610 all-in

Programme ₹77,800 + infrastructure & GPU labs ₹11,700

≈ ₹11,188 per week ex-GST over 8 weeks

CA$17,400

per course, before applicable GST/HST

Includes our GPU lab infrastructure: no cloud credits to buy

≈ CA$2,175 per week over 8 weeks

US$12,500

per course, before any applicable local taxes

Includes our GPU lab infrastructure: no cloud credits to buy

≈ US$1,563 per week over 8 weeks

  • Everything in self-paced
  • Scheduled live classes
  • 1:8 mentor code review
  • Cohort + capstone review

Hybrid — weekend

₹97,000

+ 18% GST · ₹1,14,460 all-in

Programme ₹84,300 + infrastructure & GPU labs ₹12,700

≈ ₹12,125 per week ex-GST over 8 weeks

CA$18,850

per course, before applicable GST/HST

Includes our GPU lab infrastructure: no cloud credits to buy

≈ CA$2,356 per week over 8 weeks

US$13,500

per course, before any applicable local taxes

Includes our GPU lab infrastructure: no cloud credits to buy

≈ US$1,688 per week over 8 weeks

  • Recorded weekday lessons
  • Live weekend sessions
  • Full mentor review
  • Cohort + capstone

Live in-person

₹1,08,000

+ 18% GST · ₹1,27,440 all-in

Programme ₹93,900 + infrastructure & GPU labs ₹14,100

≈ ₹13,500 per week ex-GST over 8 weeks

CA$21,050

per course, before applicable GST/HST

Includes our GPU lab infrastructure: no cloud credits to buy

≈ CA$2,631 per week over 8 weeks

US$15,100

per course, before any applicable local taxes

Includes our GPU lab infrastructure: no cloud credits to buy

≈ US$1,888 per week over 8 weeks

  • Everything in live online
  • Classroom instruction
  • On-site mentor time
  • In-person study group

Bulk and institutional pricing. Volume discounts are available for institutions, campuses, companies and groups enrolling several learners. Ask for a group quote →

Your fee includes our GPU lab infrastructure — no cloud credits to buy. See how we compare, with sources →

Ready when you are

Apply for this course

Tell us the format you prefer and we'll confirm the next cohort date and your fee on a short call.

Apply for this course