A web server is software that listens for HTTP/HTTPS requests on a port (usually 80 or 443) and responds with content — an HTML page, an image, or a signal to hand the request off to something else. At its simplest, it maps an incoming request to a file on disk and sends that file back.
"Configuration" is how we tell that generic program what to actually do for our specific site: which domain it should answer for, where the files live, how to handle errors, whether to compress responses, how long to cache things. Without configuration, a web server has no idea whose website it's serving, or how.
| Term | What it means |
|---|---|
| Web server | Software that handles HTTP requests and serves static content (Apache, Nginx, LiteSpeed). |
| App server | Software that runs your site's actual logic — PHP, Node.js, Python — and talks to the database. |
| Virtual host | A configuration section telling the web server how to handle requests for one specific domain. |
| Reverse proxy | A web server that forwards requests to another server (often an application server) instead of answering them directly. |
| Directive | A single configuration instruction, e.g. ServerName or listen. |
A web server handles client requests for static content and basic HTTP functionality. An application server handles business logic, processes requests, and talks to databases and external systems. Think of the web server as the receptionist — it either answers directly with static content, or forwards the request to the right department.
A single server can host many websites on one IP address. Apache calls this a "virtual host"; Nginx calls it a "server block." Either way, the mechanism is the same: the browser sends a request with a Host header, the web server checks its configured hosts for a match, and serves that site's files.
| Panel | Web server used |
|---|---|
| cPanel | Apache (port 2087) |
| FastPanel | Nginx (port 8888) |
| HestiaCP | Nginx (port 8083) |
| CyberPanel | OpenLiteSpeed (port 8090) |
Main config: /etc/apache2/apache2.conf (or httpd.conf). Individual sites are usually split into their own files under sites-available/.
sites-available/example.com.confa2ensite example.com.confapachectl configtestsystemctl reload apache2.htaccess files, read dynamically on every request — used for redirects, rewrites, password protection, caching, IP blocking, and WordPress permalinks. This only works because Apache is configured to allow it, which is a key difference from Nginx.Nginx does not use .htaccess. All configuration is centralized, usually at /etc/nginx/nginx.conf, sites-available/, and sites-enabled/.
sites-available/example.comsites-enabled/nginx -tsystemctl reload nginx.htaccess entirely, a redirect that works fine on Apache/LiteSpeed shared hosting can silently do nothing on an Nginx-based VPS panel — one of the most common sources of confused tickets.Service stopped typically shows as: site offline, connection refused, or Apache failed errors. Common causes: broken config, port conflict, syntax errors, high resource usage.
| Symptom | Likely cause |
|---|---|
| 502 Bad Gateway | PHP-FPM stopped, or backend unavailable |
| 504 Timeout | Slow app, overloaded server, hanging PHP process |
| Port conflict | Apache and Nginx both on port 80 |
On VPS, Hostinger supports infrastructure availability, but server management belongs to the client — it's worth being clear with customers about where that line sits.
apachectl configtest or nginx -t. A bad reload can take the whole server down.