Nginx and a per server's user setting
NGINX does not have per-server user runtimes. If you need that then you need individual independent NGINX instances running with different configs and different sites.
It can be done with stock NGINX (building example setups right now) but you need different listen ports and config roots and cannot use the same config files for each instance. It is probably easier to run each site in a specific docker container or LXD container or VM.
Even in this setup though with containers , non-root users cannot run NGINX on port 80 and many nginx instances cannot bind to 80 and 443 so you still need an NGINX or Apache or haproxy instance to hand off to the specific backends based on hostname.