【问题标题】:Nginx Configuration Versioning StrategyNginx 配置版本控制策略
【发布时间】:2017-05-24 13:35:24
【问题描述】:

目前,我的团队继承的一个项目在 10 多个环境中的 nginx 配置上一团糟,我们希望实施版本控制策略,但我不确定人们“通常”如何实现这一点。您将整个 nginx conf 文件夹设置为 git repo 并忽略您不想版本的内容?或者有一个包含配置文件 repo 的单独文件夹并使用脚本部署文件?

【问题讨论】:

    标签: linux git nginx version-control config


    【解决方案1】:

    我们通过仅用于 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 repo)上,在那个文件夹上工作,提交它,然后一个脚本会拉取更改,更新配置,并重新加载 nginx 配置?抱歉,我只是想确保我 100% 理解您的解决方案,顺便说一句,谢谢!
    • @JuanSebastian 对,你正确地理解了我。这样做是为了能够正确设置权限并排除.git目录
    • 不是通过 git 保留权限吗?
    • @thomthom 是的!这适用于除非交付给服务器,否则我们不关心权限的情况。并且在示例中看起来比先设置权限然后推/拉,不同的主机更直观,这只是解释我的解决方案的更简单方法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-07
    • 2012-10-05
    • 2019-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    相关资源
    最近更新 更多