现在有 100+个二级域名, 然后有 nginx 服务有 10+台,
现在的做法是,上传 ssl 泛域名 ssl 证书到 10+台机器上, 然后更新 100+个配置文件。
有点痛苦。
有没有什么好的方法,只要在 nginx.conf导入一次就行。 然后各个 conf.d 目录下的配置文件引用这个变量就行。
这样我以后升级,就只要改 10+个 nginx.conf 就行了。这样就舒服多了。
或者有没有其他更好的反向代理服务推荐?
最好是有webui的, 这样不需要登陆到各个机器上编辑文件。
1 dongtingyue 2021-03-03 10:02:56 +08:00 为啥要更新配置文件?不是只要更新证书就可以了么 |
![]() | 2 matolv 2021-03-03 10:03:57 +08:00 rsycn 把证书覆盖掉就行了,不需要其他操作 |
![]() | 3 zengxs 2021-03-03 10:04:00 +08:00 Nginx 有个 include 指令就是用来干这个的 Debian/Ubuntu 的 Nginx 配置中默认有一个 snippet 目录,就是用来存放一些通用配置片段的,然后在其他配置文件中 include 就行了 |
4 Slartibartfast 2021-03-03 10:04:40 +08:00 via iPhone 写个脚本就行了 |
![]() | 5 zengxs 2021-03-03 10:05:34 +08:00 #1 确实,只要更新证书文件就行了,完全不需要更新配置,刚刚都没反应过来 |
![]() | 6 love4taylor PRO caddy ? |
![]() | 7 imdong 2021-03-03 10:09:38 +08:00 写个脚本,定时执行,从特定地址下载证书并解压到特定目录. 然后重启 nginx, 现在,你甚至都不需要登陆到对应服务器,也不用改 nginx 了. 当然,更换证书只要文件名相同也不需要修改配置文件吧? 简单代码如下(盲写 未测试) cron 0 0 1 * * ==== wget https://xxx.com/ca.tar.gz -O /tmp/ca.tar.gz tar -zxf /tmp/ca.tar.gz -C /etc/nginx/ca nginx -s reload |
![]() | 8 hxndg 2021-03-03 10:12:14 +08:00 我司多机器组件 ha 的时候是 ha 有个同步脚本 用的 rsync,是从本机登录到目标机器上,然后执行从本机到目标机器的拷贝 写个脚本就成。 |
![]() | 9 CoreJa 2021-03-03 10:27:24 +08:00 ![]() 更新证书+reload nginx 的事情,为啥要改 nginx 配置? |
10 noahzh 2021-03-03 10:35:04 +08:00 推荐使用 traefik. |
![]() | 11 xuanbg 2021-03-03 10:35:19 +08:00 买个通配符证书,失效只需要更新几个证书文件就行了 |
![]() | 12 xuanbg 2021-03-03 10:36:25 +08:00 为啥要更新 conf ?替换 10服务器上面的证书文件不就好了吗? |
![]() | 13 xiwangzishi 2021-03-03 10:44:22 +08:00 http://www.confd.io/ 试一试这个 |
14 paranoia 2021-03-03 10:50:39 +08:00 webui? gitee 上有个 nginxWebUI,我这发不了链接,楼主可以去搜搜看 |
15 saytesnake 2021-03-03 10:56:07 +08:00 ...include 是干嘛的...不就是做这个的么 |
![]() | 16 d0m2o08 2021-03-03 11:02:07 +08:00 这么多机器不试试 ansible 一把梭么? |
17 guxingke 2021-03-03 11:28:26 +08:00 conf 还是要更新的,证书名字最好能体现一些信息,比如过期时间之类的,方便校验。 配置改完之后的发布和 reload,建议配合 ansible 来做 10+ 个实例很快的 |
![]() | 18 eason1874 2021-03-03 11:29:56 +08:00 什么配置都不用动,证书和密钥文件名不变,rsync 直接覆盖同步过去,然后 systemctl reload nginx 就行了 |
19 tinyRat 2021-03-03 11:33:09 +08:00 caddy? |
![]() | 20 eason1874 2021-03-03 11:35:16 +08:00 如果证书文件名一定要变,就把这两行独立出来一个文件: ssl_certificate /etc/nginx/ssl/domain.crt; ssl_certificate_key /etc/nginx/ssl/domain.key; 比如命名成 ssl_cert.conf 放在 ssl 目录,然后其他配置文件应该填这两行的地方改成: include /etc/nginx/ssl/ssl_cert.conf; 然后每次变更证书,就更新这个文件,然后 reload nginx |
![]() | 21 herbertzz 2021-03-03 11:37:47 +08:00 traefik 我用于管理 docker 容器, 用的挺爽的, 可以自动申请证书, 还能服务发现.... 上手再简单点就好了, 花了一天看官方文档, 才弄清楚原理和使用 |
![]() | 22 SenLief 2021-03-03 12:01:42 +08:00 如果是买的证书不都是 1 年起步吗?那 1 年更新一次也没多少时间啊。 |
![]() | 23 liuzhaowei55 2021-03-03 12:08:09 +08:00 via iPhone nginx 有的版本更新证书后要重启? |
![]() | 24 ik 2021-03-03 12:10:37 +08:00 via iPhone ansible copy nfs 共享证书目录不都可以吗 |
![]() | 25 clf 2021-03-03 13:03:21 +08:00 自动签发的脚本配置好,就很方便了。 |
26 isnullstring 2021-03-03 13:54:16 +08:00 不是直接更新证书文件么?配置也不用改的 |
![]() | 27 cominghome 2021-03-03 14:20:20 +08:00 楼上已经很多人回复了,做一个软链接的事情,别搞复杂了 |
![]() | 28 106npo 2021-03-03 14:45:16 +08:00 via Android 审题的话 我推荐用 caddy |
![]() | 29 wakzz 2021-03-03 15:30:36 +08:00 使用 Kong 替代 Nginx |
![]() | 30 dot 2021-03-03 15:32:17 +08:00 有个叫 Caddy 的 Web server,自带证书申请和续期……啥都不用管~ |
![]() | 31 Showfom PRO @liuzhaowei55 所有版本都需要 reload 重启倒不是必须 |