AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 49517
Accepted
Andrew
Andrew
Asked: 2009-08-04 13:48:24 +0800 CST2009-08-04 13:48:24 +0800 CST 2009-08-04 13:48:24 +0800 CST

如何在 Web 集群中保持 Apache conf 文件同步

  • 772

在负载均衡器后面的多个 Web 服务器上保持 httpd.conf 和 php.ini 文件一致的最佳实践是什么?

我可以定期 rsync 文件,或编写自定义部署脚本。我还缺少哪些其他选择?

redhat apache-2.2
  • 5 5 个回答
  • 3749 Views

5 个回答

  • Voted
  1. Best Answer
    alemartini
    2009-08-04T14:05:13+08:002009-08-04T14:05:13+08:00

    理想情况下,您可以使用 Puppet 或其他类似工具(例如 cfengine)来设置配置管理服务器。

    我可以建议的关于服务器配置的最佳实践一般是:

    “永远不要登录到机器上更改任何内容。始终在 [配置管理服务器] 上进行更改并让更改传播出去”(取自http://www.infrastructures.org/papers/bootstrap/bootstrap.html )

    最好的问候,亚历克斯

    • 15
  2. Insyte
    2009-08-04T13:56:29+08:002009-08-04T13:56:29+08:00

    我们的 Web 节点后面有一个 NFS 集群。我们将 Apache 和 PHP 的默认配置文件位置符号链接到 NFS 共享上的共享副本。然后,一个非常简单的 shell 脚本会进行一些基本的内务处理(重建 Apparmor 规则等),然后遍历 web 节点,首先触发 anapache2ctl configtest然后apache2ctl graceful.

    其他想法:

    1. 简单的 shell 脚本环绕rsync或scp.
    2. 对于较大的安装,Puppet配方可以可靠地提供更新的配置文件并在之后反弹 Apache。
    • 2
  3. cas
    2009-08-04T16:10:07+08:002009-08-04T16:10:07+08:00

    svn 可用于提供版本控制和配置文件的分发。也可以使用 git 或 bzr 等。

    编辑“主”服务器上的文件,svn 提交它们,然后可以在“从”服务器上运行 cron 作业或 ssh,然后“svn update”。

    我倾向于使用 ssh,并设置无密码访问权限,以允许“主”服务器在从属服务器上运行特定的 Makefile - Makefile 运行“svn update”,它是基于文件戳的依赖规则,然后决定其他需要做什么完成(例如,从文本生成散列的 db 用户或组文件,从 nic 添加或删除 ip 地址,重新启动 apache,等等 - 任何时候您可以确定一系列操作取决于文件更改和/或另一个动作序列是使用 make 自动化过程的一个很好的候选)。

    即使在“主”服务器上,一切都由 make 驱动。编辑一个或多个配置文件,然后运行 ​​make。Makefile 确定需要做什么(svn 提交,从源输入文件生成配置片段,'ssh make' 到其他服务器等)。像这样使用 make 可以确保每个步骤都以正确的顺序完成,并且不会忘记任何步骤。并使 svn 成为该过程的重要组成部分可确保每次更改都带有时间戳和提交日志中的解释。

    当然,许多人会使用 puppet 或类似的东西来做到这一点。如果我要从头开始,我可能也会....但我已经这样做了很多年了,早在 puppet 出现之前。在 puppet 之前有类似的工具,但 puppet 是我见过的第一个看起来它实际上可能值得改变的麻烦......但很难证明改变一些只适用于看起来像它的东西是合理的可能会更好。

    • 2
  4. Karl Katzke
    2009-08-04T18:43:49+08:002009-08-04T18:43:49+08:00

    有几种解决方案。

    • 共享文件系统,如 NFS 或 OCFS2。
    • Puppetmaster 或同等配置管理器
    • Shell 脚本化解决方案(相当于 puppetmaster,但轻量级——shell 到服务器、更新文件、反弹 apache)
    • 使用 subversion,使用 post-commit 钩子来执行上述操作。
    • 手动执行上述 shell 脚本中的步骤......(这是你的红色订书机)

    最大的问题:您的内容(或访问数据库内容的动态脚本)当前如何同步?如果您考虑一下,配置文件只是另一种内容。

    • 1
  5. David
    2009-08-04T18:08:47+08:002009-08-04T18:08:47+08:00

    目前,我在每个 Web 服务器上都有一个脚本,它从共享复制配置并更新配置信息以匹配本地服务器(ip 等)。虽然这适用于 3 台服务器,但在 10 台服务器上却很烦人(登录到服务器、运行脚本、注销、冲洗、清洗、重复)。我建议您在完成对本地文件的更改后将更改推送到服务器的解决方案(例如 puppet 和朋友)。

    • 0

相关问题

  • 阿帕奇的替代品

  • 为什么 redhat 在企业界似乎如此受欢迎?[关闭]

  • 如何强制我的网址始终以 www 开头?

  • 在 Linux Xen VPS 上优化 Apache 和 MySQL

  • mod_rewrite 不转发 GET 参数

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve