2017-05-24 7 views
1

현재 팀이 계승 한 프로젝트는 10 개 이상의 환경에서 nginx 구성에 대한 완전한 혼란을 겪고 있습니다. 그러나 사람들이 "정상적으로"달성하는 방법을 모르지만 버전 관리 전략을 구현하고 싶습니다. 당신은 전체 nginx conf 폴더를 git repo로 만들고 버전을 원하지 않는 것을 무시합니까? 또는 설정 파일 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

그래서 기본적으로 다른 폴더에 해당 폴더에 (망할 놈의 repo), 일이, commitpush 그 다음 스크립트 변경, 업데이트 구성을 끌어와의 nginx 구성을 다시로드 할 것인가? 죄송합니다. 저는 100 % 해결책을 이해했는지 확인하고 싶습니다. 감사합니다. –

+0

@JuanSebastian 맞아, 너는 나를 올바르게 이해했다. 이 방법으로 권한을 올바르게 설정하고'.git' 디렉토리를 제외시킬 수 있습니다. –