在共享托管服务器上使用HHVM和FastCGI



我希望这里的人能对以下内容有所了解:

我正忙于使用NGINX和HHVM以及PHP-FPM故障切换来设置共享托管服务器。我计划在服务器上托管100到200个Wordpress网站。

HHVM配置为使用FastCGI。是否可以让一个HHVM实例运行多个网站,每个网站都作为各自的Linux用户?或者我唯一的选择是让所有东西都作为默认的www数据用户运行吗?

我希望避免后一种汤厨式的环境,因为它具有明显的安全性和交叉污染风险。我看到有人提到运行单独的HHVM实例,每个网站一个,但这听起来是一个相当耗费资源的选项。

如果不可能有一个带有FastCGI的HHVM实例,并且每个网站的PHP进程都作为各自的Linux用户运行,我可能会选择放弃HHVM,转而使用PHP-FPM,这将使我能够实现后者。

任何提示或建议都将不胜感激!!

感谢

虽然可以让一个HHVM实例为许多共享站点提供服务(这是一个非常简单的nginx配置),但它仍然是一个为所有站点提供服务的HHVM进程,即以同一用户的身份运行所有站点。如果您需要在每个站点之间进行完全分离,则必须为每个站点运行一个单独的HHVM实例。团队希望在某个时候能让这种共享主机设置更顺利地工作。

这是一个性能权衡。HHVM默认情况下作为单个进程运行,其中每个请求都是该进程中的一个线程。这使得HHVM能够更有效地为请求提供服务:它不会为每个请求分配一个新的进程,而且,如果你向同一个站点提供一堆请求,这些请求可以共享数据,例如编译的字节码和程序集("翻译缓存")。

PHP-FPM模型实际上类似于您为解决问题而建议的后一种想法:PHP-FPM总是为每个请求分配一个新流程。它没有像HHVM那样的线程模型选项。当然,在共享托管环境中,进程可能是您想要的。

然而,PHP-FPM的启动成本和每个进程的内存开销比HHVM略低。这个权衡取决于你和你的客户。正如我上面所说,让HHVM在这样的共享主机设置中更好地工作,是团队希望在某个时候让工作更顺利的事情。

最新更新