Most of the content of web pages can be grouped in two types: Static and dynamic content.
These content types have different requirements on the server software.
|Content||Static content||Dynamic content|
|HTML & co||.. is prepared for delivery.||.. must be created, sometimes with the use of additional software.|
|HTML & co||.. is identical for each request.||.. is potentially changing with each request.|
|Content storage||File system||File system, databases, storage systems. Mainly depending on the logical state of the application and the circumstances under which the content is requested.|
|Access logging||may not be necessary||sometimes required for statistics of user behaviour|
|Configuration||none or low complexity||high complexity (access control, filters, clustering, session handling)|
|Execution of application code||no||yes (cgi, php, java, etc.)|
|Technology to improve the execution of code||no||yes (opcode caches, garbage collectors, code optimizers)|
|Keepalive||With many static ressources in one page, it speeds up delivery.||With only a few requests in a short timeframe, it may be a waste of server ressources.|
The requirements of these both content types are quite different, and different servers are available to fulfill them. As you can guess, a server that is made for static content has a much lower footprint concerning system ressources.
If you choose to use different server software, you can select the best tool for each of the jobs and adjust the configuration for the required task.