Nginx 反向代理 + Let's Encrypt

Nginx 反向代理 + Let's Encrypt

我有两台虚拟机。一台运行 LEMP,另一台运行 grafana。

我已经在 LEMP 上配置了 nginx,作为我实验室中各种 VM (包括带有 grafana 的 VM)的反向代理。

它运行得很好,但我想从外部在 grafana 主机上添加 Let's Encrypt SSL,这样 grafana.mydomain.com 就可以在 SSL 上提供服务。

我想为 *.mydomain.com 设置通配符,以便将来可以部署可通过 HTTPS 从外部访问的新服务和虚拟机。这样做有常见的做法吗?我不确定是否应该在 nginx 主机或运行 grafana 的虚拟机上安装 certbot 并部署证书。我都试过了,但都失败了。虽然我不确定我是否错过了 grafana 配置中的几个设置,例如。据我所知,我找不到任何似乎提供正确配置设置的指南。

目前,我已尝试在 nginx 反向代理主机和 grafana 主机上为通配符 *.mydomain.com 安装 SSL,这也增加了我的困惑,因为它现在与证书“重复”。

证书存储在 /etc/letsencrypt/live/mydomain.com 下

不确定还有什么相关信息。但这是存储在 /etc/nginx/sites-enabled/grafana.mydomain.com 下的 nginx 配置:

server {
    server_name grafana.mydomain.com;

    # ssl on;
    # ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem;
    # ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://10.0.0.113:3000;
    }
}

注意。我已注释掉 SSL 设置,因为从外部访问时,启用此功能后我无法到达 grafana。

使用以下命令在 nginx 主机上部署 SSL:

$ sudo certbot certonly --manual -d *.mydomain.com --agree-tos --no-bootstrap --manual-public-ip-logging-ok --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory

简而言之 - 我是否正确认为 certbot 和 LE 应该部署在 nginx 主机上。而后端主机(grafana)上则不需要?我猜上面发布的未注释版本的 nginx 配置应该可以工作,但我在其他地方缺少一些配置设置。

相关内容