2017-05-24 19 views
1

私のチームが継承しているプロジェクトは現在、10以上の環境にまたがるnginx設定の完全な混乱を招いていますが、バージョン管理戦略を実装したいと思います。あなたは、nginxのconfフォルダ全体をgit repoにして、あなたがバージョンにしたくないものを無視しますか?またはconfigファイルrepoと別のフォルダを持ち、スクリプトでファイルを展開しますか?Nginx設定バージョン管理方法

答えて

2

私たちは、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 
+0

ので、基本的には、別のフォルダ(Gitのレポ)のあるフォルダでの作業をそれを持って、それをcommitpush、スクリプトは、変更をプル構成を更新し、nginxの設定をリロードしますか?申し訳ありません、私はちょうど私が100%あなたのソリューションを理解していることを確認したい、btwありがとう! –

+0

@JuanSebastian right、あなたは私を正しく理解しました。この方法で、権限を適切に設定し、 '.git'ディレクトリを除外することができます –

関連する問題