Home Assistant配合Nginx Proxy Manager反向代理实现公网https网页及APP登录。

缘由:家里主要设备均为小米设备,但是还是有部分美的、TCL设备,以及旧手机改造的监控。则想通过Home Assistant统一管理。出于安全及统一管理的需求,所有对外的暴露都套了NPM的反向代理。

网络结构如下:

https://网址:端口—->
光猫192.168.1.1—->
软路由192.168.1.3:端口(30.30.30.1)—>
NPM:30.30.30.33:端口—>
HA:30.30.30.44:端口

Nginx Proxy Manager(NPM)配置:

1、HA需要Websockets Support,这个开关打开

2、NPM的对应条目里:Custom Nginx Configurationp配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
location / {
proxy_pass http://HA的内网ip:端口;
# 关键:正确设置 Host 头
proxy_set_header Host $host;

# 其他必要头部
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;

# Websocket 支持
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

# 超时设置
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
}

Home Assistant(HA)配置:

编辑 HA的配置文件 /config/configuration.yaml 

1
2
3
4
5
6
http:
base_url: https://公网的网址:端口 # 必须与公网访问地址完全一致
use_x_forwarded_for: true
trusted_proxies:
- 30.30.30.33 # NPM 容器 IP
- 192.168.1.0/24 # 局域网网段(可选)

Home Assistant(HA)配置更改后,要重启!!!
Home Assistant(HA)配置更改后,要重启!!!
Home Assistant(HA)配置更改后,要重启!!!