1
私のチームが継承しているプロジェクトは現在、10以上の環境にまたがるnginx設定の完全な混乱を招いていますが、バージョン管理戦略を実装したいと思います。あなたは、nginxのconfフォルダ全体をgit repoにして、あなたがバージョンにしたくないものを無視しますか?またはconfigファイルrepoと別のフォルダを持ち、スクリプトでファイルを展開しますか?Nginx設定バージョン管理方法
私のチームが継承しているプロジェクトは現在、10以上の環境にまたがるnginx設定の完全な混乱を招いていますが、バージョン管理戦略を実装したいと思います。あなたは、nginxのconfフォルダ全体をgit repoにして、あなたがバージョンにしたくないものを無視しますか?またはconfigファイルrepoと別のフォルダを持ち、スクリプトでファイルを展開しますか?Nginx設定バージョン管理方法
私たちは、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のレポ)のあるフォルダでの作業をそれを持って、それをcommitpush、スクリプトは、変更をプル構成を更新し、nginxの設定をリロードしますか?申し訳ありません、私はちょうど私が100%あなたのソリューションを理解していることを確認したい、btwありがとう! –
@JuanSebastian right、あなたは私を正しく理解しました。この方法で、権限を適切に設定し、 '.git'ディレクトリを除外することができます –