Nginx not working when running with systemctl, but does work inside docker

I want to run nextcloud on my server at home. I want to run it behind a reverse proxy so i can run more things on the server.
When i run nginx on my server everything starts up correctly but the ports on my router simply dont open up. I also can’t connect to the server on my local network. It however does work when i run nginx inside a docker container. the ports open fine and i can access the website from the outside world.

because of this issue i could also not easilly get the cerificates i needed as certbot could not host a website. To get the cerificates i opened an docker ubuntu server container and installed and ran certbot there, then copied the certificates to my main system. That worked?!

It is such a strange issue, ive already

  • opened ports 80 and 443 with firewalld and reloaded it
  • set selinux to permissive for testing
  • ran the exact same config file for both instances of nginx
  • set nginx logging to debug and checked the logs for anything weird
  • checked if other applications were occupying that port
  • done open port checks to confirm that the ports are open when doing via docker but are not when doing it outside docker

I want to use nginx outside of docker because i keep getting a 503 bad gateway error on the website when i try to access it, so i want to test if running it outside docker would fix that issue.But when i do that i get no website at all

all certificates are correct as when i run the server via docker and visit the site firefox says

connection secure

Restart the router and check the firewall configuration:

sudo firewall-cmd --get-active-zones
sudo firewall-cmd --info-zone=ZONE_NAME

Verify the traffic reaches the port with tcpdump or Wireshark.

wow, it seems that was the problem. Everywhere on the internet it says to use firewall-cmd --zone=public but when i ran sudo firewall-cmd --get-active-zones it turned out the zone i needed to work on was FedoraServer thank you so much for your help!