【发布时间】:2017-05-24 13:35:24
【问题描述】:
目前,我的团队继承的一个项目在 10 多个环境中的 nginx 配置上一团糟,我们希望实施版本控制策略,但我不确定人们“通常”如何实现这一点。您将整个 nginx conf 文件夹设置为 git repo 并忽略您不想版本的内容?或者有一个包含配置文件 repo 的单独文件夹并使用脚本部署文件?
【问题讨论】:
标签: linux git nginx version-control config
目前,我的团队继承的一个项目在 10 多个环境中的 nginx 配置上一团糟,我们希望实施版本控制策略,但我不确定人们“通常”如何实现这一点。您将整个 nginx conf 文件夹设置为 git repo 并忽略您不想版本的内容?或者有一个包含配置文件 repo 的单独文件夹并使用脚本部署文件?
【问题讨论】:
标签: linux git nginx version-control config
我们通过仅用于 nginx 配置的单独 Git 存储库对其进行管理。是的,它包括/etc/nginx/ 目录中的所有内容。
但它不是直接在服务器上同步,而是使用 bash 脚本来拉取更改、更新配置和重新加载 nginx 配置。
脚本示例:
# Pull changes
git pull
# Sync changes excluding .git directory
rsync -qauh ./* "/etc/nginx" --exclude=".git"
# Set proper permissions
chmod -R 644 /etc/nginx
find /etc/nginx -type d -exec chmod 700 {} \;
# If you store SSL certs under `/etc/nginx/ssl`
# Set proper permission for SSL certs
chmod -R 600 /etc/nginx/ssl
chmod -R 400 /etc/nginx/ssl/*
# Reload nginx config
# but only if configtest is passed
nginx -t && service nginx reload
【讨论】:
.git目录