泰安做网站建设的公司沧州高端网站建设公司
2026/4/16 11:32:18 网站建设 项目流程
泰安做网站建设的公司,沧州高端网站建设公司,软件工程专业学什么,wordpress改回旧版编辑器一、基本背景如下的应用场景下#xff08;linux服务器#xff09;#xff1a;1. web应用是通过Docker 容器部署#xff1b;2. web 应用通过宿主机上的#xff08;非本容器#xff09;共享Nginx服务器进行 https的web服务即#xff1a;Nginx运行在宿主机上#xff0c;并…一、基本背景如下的应用场景下linux服务器1. web应用是通过Docker 容器部署2. web 应用通过宿主机上的非本容器共享Nginx服务器进行 https的web服务即Nginx运行在宿主机上并在宿主机指定目录管理ssl认证文件。3.ssl证书的续约是从CA服务商申请并下载的pem及key文件4. ssl证书的更新是通过容器web应用界面上传更新通过 Docker volume 挂载关联这样就存在一个直接的问题更新了宿主机上的ssl证书后Nginx必须要重新reload新的ssl证书才能起作用那么如何再上传更新了ssl证书后系统自动reload而无需单独手工reload nginx最佳方案inotifywait systemd 服务宿主机 Nginx 优化工作原理inotifywait 是 Linux 下基于 inotify 机制的命令行工具用于实时监听文件或目录的增删改等事件常用于自动化响应文件变化基本的工作原理就是由inotifywait监控指定的ssl文件状态一旦发现ssl文件被更新就自动启动reload Nginx指令这样就可以完成上述的需求。二、安装步骤步骤1安装 inotify-tools 以 阿里云linux服务为例sudo yum install -y epel-release sudo yum install -y inotify-tools注如果阿里云服务器已经安装了自定义的epel包则可直接 sudo yum install -y inotify-tools步骤 2创建监控脚本创建文件/usr/local/bin/watch-cert-reload-nginx.sh以下为文件内容#!/bin/bash CERT_DIR/cert CERT_FILE$CERT_DIR/fullchain.pem KEY_FILE$CERT_DIR/privkey.pem # 确保证书文件存在避免启动失败 for f in $CERT_FILE $KEY_FILE; do if [ ! -f $f ]; then echo $(date): ERROR: Required cert file missing: $f 2 exit 1 fi done echo $(date): Monitoring $CERT_FILE and $KEY_FILE for changes... # 监控两个文件的修改、属性变更如 chmod、覆盖写入等 inotifywait -m -e modify,attrib,move,create \ --format %w%f \ $CERT_FILE $KEY_FILE | while read CHANGED_FILE; do echo $(date): Certificate file changed: $CHANGED_FILE # 先测试配置是否合法 if nginx -t; then echo $(date): Reloading Nginx... systemctl reload nginx else echo $(date): ❌ Nginx config test failed! Skip reload. 2 fi注1ssl文件的路径及文件名需根据实际的情况修改。注2: 如果Nginx非通过systemd控制例如是由宝塔linux面板安装则需要将 systemctl reload nginx更换为 nginx -s reload步骤 3设置权限sudo chmod x /usr/local/bin/watch-cert-reload-nginx.sh步骤 4创建 systemd 服务创建/etc/systemd/system/nginx-cert-watcher.service文件内容如下[Unit]2DescriptionAuto-reload Nginx when SSL certificates change3Afternetwork.target nginx.service45[Service]6Typesimple7Userroot8ExecStart/usr/local/bin/watch-cert-reload-nginx.sh9Restartalways10RestartSec511StandardOutputjournal12StandardErrorjournal1314[Install]15WantedBymulti-user.target步骤 5启用并启动服务sudo systemctl daemon-reload sudo systemctl enable --now nginx-cert-watcher.service

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询