阿帕奇和 Nginx。 由一根链条连接(第 2 部分)

上周在 第一部分 在本文中,我们描述了 Timeweb 中的 Apache 和 Nginx 组合是如何构建的。 我们非常感谢读者的提问和积极讨论! 今天我们告诉您如何实现一台服务器上多个版本的 PHP 的可用性以及为什么我们保证客户的数据安全。

阿帕奇和 Nginx。 由一根链条连接(第 2 部分)
共享主机 (共享托管)假设许多客户帐户托管在一台服务器上。 通常,一个客户的帐户包含多个网站。 网站可在现成的 CMS(例如 Bitrix)和自定义 CMS 上运行。 因此,所有系统的技术要求是不同的,因此必须在同一服务器内管理多个版本的PHP。

我们使用 Nginx 作为主要 Web 服务器:它接受来自外部的所有连接并提供静态内容。 我们将剩余的请求进一步代理到 Apache Web 服务器。 这就是神奇的开始:每个版本的 PHP 都运行一个单独的 Apache 实例,该实例侦听特定端口。 该端口已在客户端站点的虚拟主机中注册。

您可以阅读有关共享方案操作的更多信息 文章的第一部分.

阿帕奇和 Nginx。 由一根链条连接(第 2 部分)
共享方案

需要注意的是,我们安装不同版本的 PHP 包,因为通常所有发行版都只有一个版本的 PHP。

安全第一!

共享主机的主要任务之一是确保客户端数据的安全。 不同的账户,位于同一台服务器上,是独立且独立的。 怎么运行的?

网站文件存储在用户自己的主目录中,所需的路径在Web服务器的虚拟主机中指定。 重要的是,Web 服务器(Nginx 和 Apache)能够访问特定客户端的最终文件,因为 Web 服务器仅由一个用户启动。

Nginx 使用了 Timeweb 团队开发的安全补丁:该补丁将用户更改为 Web 服务器配置文件中指定的用户。

对于其他托管提供商来说,可以通过例如操作扩展文件系统权限 (ACL) 来解决此问题。

Apache 使用多处理模块来运行 mpm-itk。 它允许每个 VirtualHost 使用自己的用户 ID 和组 ID 运行。
阿帕奇和 Nginx。 由一根链条连接(第 2 部分)
因此,通过上述操作,我们为每个客户端获得了一个安全、隔离的环境。 同时,我们还解决共享托管的扩展问题。

Apache和Nginx的结合是如何实现的可以阅读 第一部分 我们的文章。 此外,还描述了通过专用方案的替代配置。

如果您对我们的专家有任何疑问,请写在评论中。 我们将在接下来的文章中尝试回答所有问题或更详细地描述问题的解决方案。

来源: habr.com

添加评论