关于运行 nginx 或 nginx + apache 的建议

关于运行 nginx 或 nginx + apache 的建议

我想分享我的情况,因为也许对别人有帮助,而且我需要一些建议。

我管理一个带有一些网络服务器和高流量的 VPS。

系统规格为 x2 Xeon E2620,配备 2 个核心、18Gb 内存和 800Gb HDD。

当我获得完全访问权限时,第一步是检查服务器配置。

该系统持有:

  • Apache2
  • php-cgi 5.3.3 (预分叉)
  • MySQL 5.1
  • Prestashop(1.4 - 1.6)
  • 亚太经合组织

乍一看(后来证实),服务器设置和系统架构不是最佳的。

服务器几乎一直很繁忙,网络访问非常慢。

因此,我认为我有几个方法可以避免这种情况,因为流量只会增长。

  • 优化当前设置可能只是一个临时的解决方案。

这意味着调整 Apache、preforks、MySQL、卸载不需要的软件……等等。

或者

  • 改变系统架构的可扩展性思维。(在投入更多资金进行水平扩展之前,先找到更好的临时解决方案)

我的想法和疑问是您推荐什么样的规模。

nginx、php-fpm、varnish、APC 或 nginx 与 Apache 一起工作。

我认为第一种更好,因为它们仍然在同一台机器上运行。

谢谢。

答案1

所以这个问题有点宽泛,所以这将是一个宽泛的答案。但是,是的,您将更容易扩展 nginx。我建议您用 nginx 和 替换 Apache 和mod_phpphp-fpm我还将升级到 PHP 5.6.x,并开始使用随附的 Zend Opcache 模块代替 APC。如果您还将 APC 用于“用户缓存”而不仅仅是操作码缓存,则可以用“APCu”模块替换该功能。Varnish 确实有助于提高提供静态资产的性能,但我会从容易实现的部分开始。

当您使用 时php-fpm,您的 PHP 工作器可以独立于传入的 HTTP 连接进行扩展,这可以让您在内存使用方面获得优势。此外,由于 PHP 在 Web 服务器的内存空间之外运行,因此 Web 服务器可以使用线程而不是进程来处理请求。

使用您当前正在使用的方法mod_php,接受、等待和服务请求的相同过程也将启动 PHP 解释器并将其保存在内存中,直到完全满足请求为止。

我认为你走在正确的道路上;听从你的直觉,以上就是我的做法。总会有更多的事情需要调整和优化,但如果不了解系统的具体使用方式和它所服务的内容,就很难走得更远。

相关内容