一、前提条件
·已 创建 Grafana 实例,并获取内网访问地址(如 http://10.0.0.1:3000)。
·已拥有一台与 Grafana 实例同 VPC 的 云服务器(CVM)。
·已 获取 SSL 证书文件(.pem 证书文件和 .key 私钥文件)。
二、解决方案
在与 Grafana 同 VPC 的云服务器上安装 Nginx,配置 SSL 证书并设置反向代理,将 HTTPS 请求转发到 Grafana 的 HTTP 内网地址,从而实现 HTTPS 访问。
三、步骤1:安装 Nginx
1. 登录云服务器,下载并解压 Nginx 源码包,此处以 nginx-1.24.0为例进行介绍。
# 下载 Nginx 源码包wget https://nginx.org/download/nginx-1.24.0.tar.gz# 将安装包复制到目标目录并解压(目录可根据实际情况调整)mkdir -p /usr/local/nginx && cp nginx-1.24.0.tar.gz /usr/local/nginx/cd /usr/local/nginx/tar -zxvf nginx-1.24.0.tar.gzcd nginx-1.24.0/
2. 安装 SSL 相关依赖。
yum -y install make zlib-devel gcc-c++ libtool openssl openssl-devel
3. 配置编译参数,启用 SSL 模块。
./configure \\ –user=nobody \\ –group=nobody \\ –prefix=/usr/local/nginx \\ –with-http_stub_status_module \\ –with-http_gzip_static_module \\ –with-http_realip_module \\ –with-http_sub_module \\ –with-http_ssl_module # 启用 SSL 模块,支持 HTTPS
4. 编译并安装 Nginx。
makemake install
四、步骤2:准备 SSL 证书
将 SSL 证书文件上传到云服务器的 /usr/local/nginx/ssl 目录,文件命名如下:
| 文件路径 | 说明 |
| /usr/local/nginx/ssl/cert.pem | SSL 证书文件 |
| /usr/local/nginx/ssl/cert.key | SSL 私钥文件 |
# 创建证书目录(如不存在)mkdir -p /usr/local/nginx/ssl# 将证书和私钥文件上传至该目录# /usr/local/nginx/ssl/cert.pem# /usr/local/nginx/ssl/cert.key
注意:请确保证书文件为 PEM 格式,且证书与私钥匹配。
五、步骤3:配置 Nginx 反向代理
修改 Nginx 配置文件 /usr/local/nginx/conf/nginx.conf,在 http 块中修改以下 HTTPS server 配置:
server { listen 443 ssl; server_name grafana-xxxxxx.grafana.tencent-cloud.com; # 替换为你的 Grafana 访问域名 ssl_certificate /usr/local/nginx/ssl/cert.pem; # SSL 证书路径 ssl_certificate_key /usr/local/nginx/ssl/cert.key; # SSL 私钥路径 ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { # CORS 跨域配置 add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS'; add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization'; # 传递真实客户端信息 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_pass http://10.0.0.1:3000; # 替换为你的 Grafana 内网地址 }}
关键配置说明:
| 参数 | 说明 |
| server_name | 你的 Grafana 访问域名,需替换为实际域名 |
| ssl_certificate | SSL 证书文件路径 |
| ssl_certificate_key | SSL 私钥文件路径 |
| ssl_ciphers | 加密套件配置,HIGH:!aNULL:!MD5 表示使用高强度加密并排除不安全算法 |
| proxy_pass | Grafana 内网地址,需替换为实际的内网 IP 和端口 |
六、步骤4:检查配置
执行以下命令检查 Nginx 配置文件语法是否正确:
cd /usr/local/nginx/sbin/./nginx -t
注意:如果检查不通过,请根据错误提示修改配置文件。常见错误原因包括:
七、步骤5:启动 Nginx
cd /usr/local/nginx/sbin/./nginx
启动后,你即可通过 https://<你的域名> 访问 Grafana 服务。
注意:说明:
注意:如后续修改了 Nginx 配置,可使用 ./nginx -s reload 命令重新加载配置,无需重启服务。
八、配置建议
·建议将 SSL 私钥文件权限设置为 600,仅允许 root 用户读取,提升安全性。
·如你配置了自定义域名并使用 SSO 登录,请在 Grafana 配置中将 server.root_url 设置为 HTTPS 域名,避免 SSO 登录异常。
·建议定期检查 SSL 证书有效期,在证书过期前及时更换。