- PHP under apache is faster - Small config files per site - .htaccess at the folder level when required
I usually use both and serve php from apache and serve static content over nginx. Best of both worlds.
With nginx the config is centralized in a specific location. With Apache, configs are all over the place.
- Provides HTTP caching (via mod_cache)
- Simplifies the deployment stack by providing built-in interpreters for dynamic languages. e.g. mod_php (i.e. you don't need php-fpm), mod_wsgi (i.e. you don't need gunicorn)
- Load-balancer upstream affinity ("stickiness") based on HTTP cookies
- Load-balancing based on upstream's connection count (via mod_heartbeat)
- Built-in Let's Encrypt integration (via mod_md)
tl;dr provides a lot of features out of the box -- some people may see this as "bloat" or overly tight coupling, but this provides simplicity.
I feel that the let's encrypt CLI clients are plenty good for nginx, to the point that installing a new module for apache (let alone nginx) is more work than just running a CLI client.
If you want TLS automation, Caddy is superbly good at fetching its own certs, and you don't have to fiddle with installing an additional module to do it.