新闻详情

新闻详情

首页 / 资讯中心 / 详情

生产环境配置分离:让密码彻底离开代码

发布时间:2026/10/2 2:27:44来源:尧图网络
生产环境配置分离:让密码彻底离开代码
现象最初写代码时数据库密码直接写在 app.py 里DB_PASSWORDYOUR_DB_PASSWORD三个问题1.密码进了 Git 历史——即使后来改了历史记录里还在2.改密码要改代码——还要重新部署3.多人协作时——每个人拿到代码就拿到了密码原因代码和配置必须分离。代码是逻辑配置是环境相关的值密码、主机名、端口。同一份代码本地和线上要用不同配置。环境变量就是干这个的——代码读 os.environ真实值放在 .env 文件里.env 不进 Git。解决代码里读环境变量importos DB_HOSTos.environ.get(DB_HOST,db)DB_USERos.environ.get(DB_USER,root)DB_PASSWORDos.environ.get(DB_ROOT_PASSWORD)# 不设默认值强制显式配置DB_NAMEos.environ.get(DB_NAME,test_db)写一个 .envDB_ROOT_PASSWORDYOUR_DB_PASSWORDDB_NAMEtest_dbDB_HOSTdb.gitignore 里排除.env *.env!.env.example给团队一个模板 .env.exampleDB_ROOT_PASSWORDchangemeDB_NAMEtest_dbDB_HOSTdbcompose 里引用services: db: environment: MYSQL_ROOT_PASSWORD:${DB_ROOT_PASSWORD}MYSQL_DATABASE:${DB_NAME}进阶让 Crontab 也能读 .env宿主机上有个定时任务要跑脚本* * * * * /usr/bin/python3 /home/ubuntu/dashboard/write_db.py但 Crontab 的环境没有那些变量脚本会挂。解决先加载 .env 再执行* * * * *export$(cat/home/ubuntu/dashboard/.env|xargs)/usr/bin/python3 /home/ubuntu/dashboard/write_db.py/home/ubuntu/dashboard/write_db.log21再加个锁防进程堆积* * * * * flock-xn/tmp/write_db.lockbash-cexport $(cat /home/ubuntu/dashboard/.env | xargs) /usr/bin/python3 /home/ubuntu/dashboard/write_db.py/home/ubuntu/dashboard/write_db.log21flock -xn 含义排他锁 非阻塞。拿不到锁立即退出不会堆积进程。三个坑坑 1.env 一定要加进 .gitignore。忘了的话密码就进 GitHub 了——而且即使后来删了Git 历史里还在。坑 2.env.bak-* 这类备份文件也要忽略。我加 .env 规则时忘了加 *.bak差点把备份文件提交上去。坑 3Crontab 读环境变量要显式 export $(cat .env | xargs)不会自动读。而且 flock 是标配——定时任务可能超时的时候都该加。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

从javac到JIT:一文读懂Java编译的完整链路与实战排错 2026/10/2 3:33:42

从javac到JIT:一文读懂Java编译的完整链路与实战排错

如果有人问我会不会编译Java项目,我猜绝大多数人都会想都不想就回答“会啊,IDEA里点一下绿色三角不就行了”。但你再追问一句:javac背后到底做了什么?-classpath参数该传什么?为什么mvn clean package之后运行还是报“…

阅读更多 →
在线客服系统从MySQL迁移到PostgreSQL的完整实践与对比 2026/10/2 3:33:42

在线客服系统从MySQL迁移到PostgreSQL的完整实践与对比

花了大概三周时间,我把自己的在线客服系统接上了 PostgreSQL,现在它可以同时跑 MySQL 和 PostgreSQL,通过一个环境变量切库。最初这只是用户的一句"能不能支持 PG",但真正动手以后,我发现这不仅是多写一套方…

阅读更多 →
基于YOLOv7的绝缘子缺陷检测:从数据标注到工程部署全指南 2026/10/2 3:33:42

基于YOLOv7的绝缘子缺陷检测:从数据标注到工程部署全指南

简介:面向电力运维、计算机视觉与深度学习学习者,这套YOLOv7绝缘子缺陷检测系统提供从标注数据集、模型训练到部署上线的完整闭环方案。压缩包共21个文件、约16.9MB,包含Python训练/测试脚本、README说明文档以及18张检测效果可视化截图&…

阅读更多 →
BibTeX实战手册:解决LaTeX参考文献问号问题 2026/10/2 3:33:42

BibTeX实战手册:解决LaTeX参考文献问号问题

1. 这不是“又一个LaTeX教程”,而是你真正用得上的BibTeX实战手册我带过三届数学建模国赛队伍,每年都有至少两个学生在最后三天卡在参考文献上——不是不会写公式,不是排不好表格,而是“明明.bib文件写好了,为什么编译…

阅读更多 →
OpenRig:本地大模型工程化胶水层实践指南 2026/10/2 3:33:42

OpenRig:本地大模型工程化胶水层实践指南

1. OpenRig 是什么:一个被误读的开源项目名与真实技术现场OpenRig 这个词在当前中文技术社区里,正经历一场典型的“语义漂移”——它既不是某个广为人知的成熟开源项目(比如 OpenCV、OpenSSH),也不是官方发布的标准化工…

阅读更多 →
dbx:一个命令行工具搞定MySQL/PostgreSQL/SQLite 2026/10/2 3:33:35

dbx:一个命令行工具搞定MySQL/PostgreSQL/SQLite

dbx 这个工具,我在生产环境里用了大半年,越用越觉得它是那种“不被注意但非常实在”的数据库管理工具。它不是有好看图标的图形客户端,而是把连接管理、查询、结构对比、数据导出、定时同步这些日常操作全部压进命令行的多数据库工具箱。用习…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉