Hello fellow selfhosters! I changed my server OS from fedora server to alma linux as I wanted a more stable base with less frequent updates for my docker containers, so I backed everything up and installed almalinux. It all went smoothly, and now all the containers seem to work as before except for nginx proxy manager: on fedora, I set all the proxy hosts like this (using jellyfin for instance): jellyfin.mydomain.duckdns.org > http://myserverhostname:8096 now, for some strange reasons, it does not work anymore, and I get a bad gateway error. I tried with and without SSL (that I had from the previous installation, do I need to regenerate them? but without it should work anyway…), pointing to localhost:8096, to myserverhostname:8096, to jellyfin:8096, but nothing. The only way I could make it work was with the resolved IP address of my server:

# host myserverhostname
myserverhostname.station has address 192.168.1.13

pointing nginx to 192.168.1.13:8096 correctly shows the website. why does this happens? am I doing something wrong?

EDIT: the only one that’s working with localhost is nginx itself (http://localhost:81)

======

SOLUTION: instead of myserverhostname, in nginx proxy host configuration (in the gui) I had to set myserverhostname.station to get it working. I don’t know why, in the previous installation only the hostname was enough…

  • Oisteink@feddit.nl
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    9 months ago

    On the host of the nginx rev proxy or in nginx config files. Something seems to block the lookup from name to ip, as ip works you know the proxy works. Check dns config and nginx config on that host

    • tubbadu@lemmy.kde.socialOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      9 months ago

      here’s the configuration file for jellyfin:

      # ------------------------------------------------------------
      # jellyfin.tubbadu.duckdns.org
      # ------------------------------------------------------------
      
      
      
      map $scheme $hsts_header {
      https   "max-age=63072000; preload";
      }
      
      server {
      set $forward_scheme http;
      set $server         "192.168.1.13";
      set $port           8096;
      
      listen 80;
      listen [::]:80;
      
      listen 443 ssl;
      listen [::]:443 ssl;
      
      
      server_name jellyfin.tubbadu.duckdns.org;
      
      
      # Let's Encrypt SSL
      include conf.d/include/letsencrypt-acme-challenge.conf;
      include conf.d/include/ssl-ciphers.conf;
      ssl_certificate /etc/letsencrypt/live/npm-18/fullchain.pem;
      ssl_certificate_key /etc/letsencrypt/live/npm-18/privkey.pem;
      
      
      
      
      
      
      # Block Exploits
      include conf.d/include/block-exploits.conf;
      
      
      
      
      
      
      
      
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection $http_connection;
      proxy_http_version 1.1;
      
      
      access_log /data/logs/proxy-host-5_access.log proxy;
      error_log /data/logs/proxy-host-5_error.log warn;
      
      
      
      
      
      
      
      location / {
      
      
      
      
      
      
      
      
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection $http_connection;
      proxy_http_version 1.1;
      
      
      # Proxy!
      include conf.d/include/proxy.conf;
      }
      
      
      # Custom
      include /data/nginx/custom/server_proxy[.]conf;
      }
      
    • tubbadu@lemmy.kde.socialOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      9 months ago

      on the server host myserverhostname correctly resolves, but if I enter the container (docker exec -it nginx-app-1 bash) it does not work anymore:

      [root@docker-11e3869f946f:/app]# host tserver
      Host tserver not found: 3(NXDOMAIN)
      

      (I had to install dnsutils before)

      it seems a nginx issue then

      • Oisteink@feddit.nl
        link
        fedilink
        English
        arrow-up
        1
        ·
        9 months ago

        Could also be docker network-config. Docker should by default use the hosts resolver config if there’s nothing in /etc/resolve.conf

        You can also supply dns server on the docker command or in your compose file if you’re using compose.

        As a last resort you can enter server and ip i the container’s /ets/host file if the ip is static. But that’s gone once you rebuild the image.

        Or maybe there’s env on the container you use for dns

        • tubbadu@lemmy.kde.socialOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          9 months ago

          I found a solution: use myserverhostname.station instead of just the hostname. I really have no idea why, on the previous installation it worked well with just the hostname… ahh, whatever.

          thank you very much for the help!