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 / 问题 / 567021
Accepted
bobo
bobo
Asked: 2014-01-14 14:51:40 +0800 CST2014-01-14 14:51:40 +0800 CST 2014-01-14 14:51:40 +0800 CST

我们是否应该在 Apache+PHP-FPM 中为多个网站设置一个池?

  • 772

如果有许多小型网站(大约 300 个)在轻量级网络流量中运行,它们应该都使用同一个池,还是为每个站点设置一个单独的池更好?

让我们假设网站是受信任的,并且在此不考虑在池中拥有单独的用户/组的好处(例如更好地控制访问/权限)。

apache-2.2
  • 1 1 个回答
  • 1524 Views

1 个回答

  • Voted
  1. Best Answer
    regilero
    2014-01-16T04:59:26+08:002014-01-16T04:59:26+08:00

    通常,我更喜欢每个网站使用一个池(但可能不在此处,请阅读全部内容)。

    主要原因是允许每个网站的 php 设置。这些设置可以根据网站的需要而有所不同,但也可以更好地分离网站资源。例如更改临时目录或 open_basedir_settings:

    (...)
    env[TMP] = /path/to/client/var/tmp
    env[TMPDIR] = /path/to/client/var/tmp
    env[TEMP] = /path/to/client/var/tmp
    env[DOCUMENT_ROOT] = /path/to/client/www
    php_admin_value[open_basedir] = ".:/path/to/client/www:/path/to/client/var/tmp:/path/to/client/var/log"
    php_admin_value[upload_tmp_dir]="/path/to/client/var/tmp"
    (...)
    

    您也可以对 php-fpm 使用chroot模式,但这更复杂。在这种情况下,使用 chroot 池,可能更容易为所有客户端仅使用一个池(因此共享 chroot,这实际上不是很好)。这是因为像 apc 这样的东西是由所有池共享的,这意味着使用多个 chrooted 池,您最终可能会在不同的池中得到多个具有相同路径的文件,而 apc 只会存储文件的一个缓存版本。事实上,在 apc+chroot 的情况下,最好的解决方案是运行多个 php-fpm 实例,每个实例一个池。对于 300 个网站来说,这不是一件容易的事。

    pm.[static/dynamic]然后,您可以使用池设置管理每个网站可以使用多少个 php 进程。请注意,对于 300 个小型网站,这可能会成为一个问题,如果大量这些网站不活跃,那么您的大部分内存将被不做任何事情的池进程使用。

    在你的情况下,流量很低,网站很轻,所以在你的盒子上运行超过 300 个(至少)池的进程,什么都不做,是一种矫枉过正。在您的特定情况下,我想我会改为使用少量的池(也许您可以将一些网站按应用程序?按版本?按需求?),让每个池能够运行多个网站。或者可能只有一个,我会尝试使用网站组对它们应用一些 open_basedir 限制,但如果它们真的都相同,你可以只使用一个池运行。

    • 2

相关问题

  • Apache Django Mod_Wsgi - 自动重新加载应用程序

  • Apache:对多个虚拟主机使用相同的目录指令

  • Apache 上的子域不工作 - 找不到服务器

  • PHP 作为 CGI 还是 Apache 模块?

  • 避免将某些丢失的文件记录到 Apache2 错误日志中

Sidebar

Stats

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

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

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

    • 9 个回答
  • Marko Smith

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

    • 3 个回答
  • Marko Smith

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

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +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