【问题标题】:Server configuration for high traffic website高流量网站的服务器配置
【发布时间】:2011-05-11 20:01:39
【问题描述】:

我正在管理一个托管服务器,我的一位客户将启动一个高流量的 PHP 网站。这是一个便士拍卖网站,我们预计每天的访问量在 25k 到 30k 之间。

您能否告诉我,我应该在服务器配置(PHP 和 Apache)中进行哪些更改以避免出现问题?大量访问者恐怕服务器崩溃。

谢谢

【问题讨论】:

  • 您使用的是 1 个 Apache/PHP 服务器吗?也许您还可以安装反向代理,例如用于缓存的 Varnish 和用于操作码缓存的 APC。只是一个提示!
  • 是的,我正在使用 1 个 Apache/PHP 服务器。我不知道缓存是否是最好的解决方案,因为它是一个像 Swoopo 和 EnchereVIP 这样的便士拍卖网站

标签: apache apache-config


【解决方案1】:

使用像 nginx 这样的轻量级 Web 服务器作为反向代理和静态内容服务器应该将 Apache 内存和 CPU 使用率保持在最低限度,这在大型网站上将是一个问题。

APC 作为操作码缓存在大型站点中也很有用,因为将 PHP 脚本编译为操作码很昂贵。

您在服务器上使用哪种 Apache 分叉模型? Event 和 Worker MPM 可能更适合具有更高并发连接的大型站点。

如何在 Apache 中设置 PHP,即 FastCGI/CGI/DSO/SuPHP/FPM? SuPHP 将是最慢的,而 FastCGI、FPM 和 DSO 将为您提供更好的性能并允许您使用操作码缓存。

如果您不需要网站上的 SSL 支持,https://www.cloudflare.com/ 等免费服务也将减轻您服务器的负载。

【讨论】:

  • 感谢您的回答。我正在使用 SuPHP,但无法更改。有没有办法在 SuPHP 中使用缓存?
  • 由于 CGI 的工作方式,没有适用于 SuPHP 的操作码缓存,一旦请求被处理,php 进程就会终止,这使得无法存储任何持久数据。您可以使用可以存储持久数据的 Memcache。
【解决方案2】:

您可以使用操作码缓存,eAccelerator 是一个很好的用途。

您可能还需要考虑为静态内容(例如要从中提供的图像/CSS/javascript)创建 Apache vHost。如果这些可以放入CDN,那就更好了。

还有其他可用于基准测试的工具,包括 Apache 基准测试工具“ab”。您可以使用它对您的网站进行压力测试。

可以在多个领域进行调整,而不仅仅是 PHP。

【讨论】:

    猜你喜欢
    • 2016-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-04
    • 2012-05-06
    • 2019-09-25
    相关资源
    最近更新 更多