Two meanings, one word
Colloquially, 'the web server' often means the machine a site runs on. Precisely, it is software: a program bound to ports 80 and 443 that speaks HTTP. The distinction matters the moment you configure anything, because what people tune, secure and debug is the program — the machine is just where it lives. One physical or virtual server can run several web servers; one web server routinely fronts dozens of sites.
Modern setups usually chain two layers. The web server in front handles what it is uniquely good at: TLS termination, static files, compression, rate limiting and virtual hosts (many domains on one program). Dynamic requests are proxied onward to application processes — PHP-FPM, a Node.js service, Python workers — which is why nginx is so often described as a 'reverse proxy'. On shared hosting this whole arrangement exists too; you simply never see it.
- nginx — event-driven architecture built for many simultaneous connections; the default front layer of the modern stack.
- Apache HTTP Server — the veteran, prized for per-directory configuration (`.htaccess`) and its module ecosystem; still everywhere in shared hosting.
- Caddy and friends — newer servers that automate TLS certificates and aim for minimal configuration.
