nice @Giulio Prisco!
would be good to specifically add HTTP and HTTPS (80/tcp and 443/tcp respectively) I think Nginx is mostly for the maintenance ports (if there are any), but I can be wrong.
I fix most who goes and redirects where problems by assigning sub-domains to the DNS settings on my host and then do things per incoming sub-domain.. and then "proxy-pass" the HTML bits and bops to port 80 for that domain.
as an example (with real slightly altered config)
server {
server_name picoroom.hendrikpeter.net;
access_log /var/log/nginx/ssb-room-access.log;
error_log /var/log/nginx/ssbg-room-error.log;
location / {
proxy_intercept_errors on;
proxy_pass http://127.0.0.1:8007;
}
error_page 502 @offline;
location @offline {
root /home/serveruser/Sites/nothing-to-see-pages/;
try_files /502.html 502;
}
listen [::]:80
listen 80
}
the proxy-pass bits here tell the incoming port 80 loop to the internal port 8007 for any requested internet address called "picoroom.hendrikpter.net" (on port 80). so people can just visit http://picoroom.hendrikpeter.net:80 or http://picoroom.hendrikpeter.net for short.
Then as a bonus you can serve custom error pages for error statusses from another folder with static html files.
This bit of config is also compatible with certbot (an automated bot from letsencrypt that automagically upgrades the http bits to https)
Put the config in, change your server_name to the sub-domain you chose for your room pages and then install certbot and execute:
sudo certbot --nginx -d subdomain.domain.org
follow the instructions and voila, your room is now HTTPS ;)