目前我的团队继承的项目在10个环境中的Nginx配置上完全混乱,我们希望实现版本控制策略,但我不确定人们“通常”如何实现这一点.你让整个Nginx conf文件夹成为一个git repo并忽略你不想要的版本?或者在配置文件repo中有一个单独的文件夹,并使用脚本部署文件?
最佳答案
我们通过单独的Git存储库管理它,仅用于Nginx配置.是的,它包含/ 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