Trouble getting reverse proxy to work

System

  • Host: Proxmox
  • Nginx: Linux container (10.10.1.17)
  • Home Assistant: VM running HAOS (10.10.1.20)

I verified that I can access Home Assistant on the LAN using it’s direct IP address. I’m looking to use a subdomain for Home Assistant (because I have other subdomains running on my domain). I’ve looked up and followed numerous guides, but no matter what I do I can’t get the reverse proxy to successfully connect to Home Assistant. (Other reverse proxies running on nginx work fine)

I see the following error in nginx logs.

2024/03/03 16:55:49 [error] 22010#22010: *20 upstream timed out (110: Unknown error) while connecting to upstream, client: xxx.xxx.xxx.xxx, server: haos.xxx.xxx.xxx, request: "GET / HTTP/2.0", upstream: "http://10.10.1.20:8123/", host: "haos.xxx.xxx.xxx"

I’ve verified configuration.yaml has enabled reverse proxy. (And that there are two spaces before each line)

  use_x_forwarded_for: true
  trusted_proxies: 10.10.1.17

nginx configuration

server {
    listen 443 ssl http2;
    server_name haos.xxx.xxx.xxx;

    ssl_certificate /etc/letsencrypt/live/xxx.xxx.xxx/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/xxx.xxx.xxx/privkey.pem;

    proxy_set_header Referer $http_referer;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Real-Port $remote_port;
    proxy_set_header X-Forwarded-Host $host:$remote_port;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Forwarded-Port $remote_port;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Ssl on;

    location / {
        proxy_pass http://10.10.1.20:8123;
        proxy_set_header Host $host;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header X-Real-IP $remote_addr;
    }
}

I’m out of ideas how to fix this and would appreciate suggestions.

I found the problem. Local firewall rules were preventing traffic from going from the reverse proxy to the HAOS server.