访问 Node-RED
- 打开浏览器并访问:
https://<SERVER_IP> - 预计会出现浏览器 SSL 警告(自签名证书)
- 需要身份验证(基本身份验证弹出窗口)
- 认证方式:HTTP基本认证
- 凭据安全存储在:
/root/.cloudzy-creds
重要文件和目录
- 主要安装目录是
/root/node-red. - Docker编排文件是
/root/node-red/docker-compose.yml. - 持久 Node-RED 数据存储在
/var/lib/docker/volumes/node-red_node-red-data/_data. - Nginx 配置文件位于
/etc/nginx/sites-available/node-red. - 基本身份验证凭据存储在
/etc/nginx/auth/node-red.htpasswd. - TLS 证书存储在
/etc/nginx/ssl.
服务管理
检查容器状态:
docker ps
查看日志:
docker compose -f /root/node-red/docker-compose.yml logs -f
重新启动 Node-RED:
docker compose -f /root/node-red/docker-compose.yml restart
重新启动 Nginx:
systemctl restart nginx
Node-RED 管理员用户(基本身份验证的替代方案)
Node-RED 有自己的内部身份验证系统,可以替代 HTTP Basic Auth。
1. 定位 settings.js
主要配置文件位于 Node-RED Docker 卷内: /var/lib/docker/volumes/node-red_node-red-data/_data/settings.js
2. 启用 adminAuth
打开 settings.js 并取消注释(或添加) adminAuth 部分。它应该看起来像这样:
adminAuth: {
type: "credentials",
users: [
{
username: "admin",
password: "<HASHED_PASSWORD>",
permissions: "*"
}]
},
3. 生成密码哈希
您可以从 Node-RED 容器内部生成哈希:
docker exec -it node-red-node-red-1 node-red admin hash-pw
系统将提示您输入普通密码。
复制生成的哈希值并将其粘贴为 password 值在 settings.js.
4. 重新启动 Node-RED
编辑后 settings.js:
docker compose -f /root/node-red/docker-compose.yml restart
5. 在 Nginx 中禁用 HTTP 基本身份验证(可选)
编辑 Nginx 站点文件: /etc/nginx/sites-available/node-red
删除或注释掉这些行:
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/auth/node-red.htpasswd;
重新加载 Nginx:
systemctl restart nginx
为域启用 SSL
1. 将您的域名指向服务器IP。
2.编辑Nginx配置并替换两者 server_name <IP>; 与您的域名(<your-domain>) 对于 HTTP(端口 80)和 HTTPS(端口 443)块:
vim /etc/nginx/sites-available/node-red
3.安装Certbot:
apt install -y certbot python3-certbot-nginx
4. 运行以下命令生成有效的 Let’s Encrypt 证书:
certbot certonly --nginx --non-interactive --agree-tos --email [email protected] -d yourdomain.com
5. 替换 Nginx 配置中的 SSL 路径:
vim /etc/apache2/sites-available/node-red
# Before:
# ssl_certificate /etc/nginx/ssl/fullchain.pem;
# ssl_certificate_key /etc/nginx/ssl/privkey.pem;
# After:
# ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
6. 重新启动 Nginx 以应用更改:
systemctl restart nginx
7. 打开浏览器并访问: https://yourdomain.com