外观
生产环境重启
注意!!!
对生产环境的更新、重启、重新部署等操作,一定要先备份生产数据库,再操作!!!
重启后端
介绍
在生产环境下,一般禁用自动热重启。使用 Gunicorn + Uvicorn Worker 启动的 Django项目,默认不会自动热重启。即文件修改后不会自动重新加载应用。
重启Gunicorn
要实现在生产环境安全重启Django项目,可向 Gunicorn 主进程发送 HUP
信号
sh
# 查找Gunicorn主进程ID
ps auxf
ps aux | grep gunicorn
# 重启 gunicorn
kill -HUP <Gunicorn主进程ID>
示例
sh
# ps auxf 部分执行结果如下,则 141 是Gunicorn主进程ID
root 141 0.0 0.7 36512 31292 ? S Jul08 0:02 /usr/local/bin/python3.11
/usr/local/bin/gunicorn -b 0.0.0.0:8000 -k uvicorn.workers.UvicornWorker mysite.asgi:application
root 313 1.1 1.6 80720 66620 ? S 03:30 0:01 \_ /usr/local/bin/python3.11 /usr/local/bin/gunicorn -b 0.0.0.0:8000 -k uvicorn.workers.UvicornWorker mysite.asgi:application
# 重启 gunicorn
kill -HUP 141
重启前端
介绍
在生产环境下,前端一般由 Nginx 或 OpenResty 提供服务。
重启Nginx
优雅重载(推荐)
sh
sudo systemctl reload nginx
# 或使用等效命令
sudo nginx -s reload
强制重启方案(必要时):仅当更改核心配置或模块时使用
sh
#配置检查(强制步骤)
sudo nginx -t
# 强制重启
sudo systemctl restart nginx
重启OpenResty
标准优雅重启方案(推荐)
sh
# 1. 发送 HUP 信号重载配置(保持连接)
sudo kill -HUP $(cat /usr/local/openresty/nginx/logs/nginx.pid)
# 2. 监控日志确保 Lua 模块正常加载
tail -f /usr/local/openresty/nginx/logs/error.log | grep -i "lua init"