Home Assistant OS 和 nginx 反向代理

Home Assistant OS 和 nginx 反向代理

我已经在 Linux 主机上安装了 Home Assistant 的官方 KVM 安装。主机是 192.168.0.110,该主机上的 KVM Home Assistant 是 192.168.0.73:8123。

我想要为 Home Assistant 建立 SSL/HTTPS 连接。我有一个域名,并且我的主机上有该域名的证书(通过 Certbot 进行 Let's Encrypt)。

然后我在主机上创建了一个 nginx 反向代理。当然,端口 80 和 443 在我的路由器中转发到 192.168.0.110(主机)。

server { if ($host = domain.xyz) { return 301
https://$host$request_uri; }

 listen 80;  server_name domain.xyz;  return 301
https://$host$request_uri; }

server { listen 443 ssl; server_name domain.xyz;

    ssl_certificate /etc/letsencrypt/live/domain.xyz/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/domain.xyz/privkey.pem;

 location / {
    proxy_pass http://192.168.0.73:8123;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    # WebSocket support
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";  } }

当我转到 192.168.0.73:8123 时,一切正常,但是当我转到https://domain.xyz它时会抛出 502 Bad Gateway。

你能帮我吗?我正在查看反向代理,这里没有发现错误?

NGINX ERROR LOG:
[error] 1584367#1584367: *72 connect() failed (113: Unknown error) while connecting to upstream, client: MY_IP, server: DOMAIN.XYZ, request: "GET / HTTP/2.0", upstream: "192.168.0.73:8123", host: "DOMAIN.XYZ"

答案1

我认为您的 Nginx 配置文件的这一部分存在问题:

server { if ($host = domain.xyz) { return 301
https://$host$request_uri; }

我不明白为什么您要对域名本身执行重定向 (301)。它会产生循环。

我不是 Nginx 专家,但对我来说,这意味着如果我到达https://domain.xyz,我就会被重定向到https://domain.xyz等等……

尝试删除这部分并检查是否更好。

相关内容