jjzjj

php - PHP5 服务器的带宽提速技巧 : Output and Zlib Compression

coder 2024-04-14 原文

在设置 PHP 带宽节省体验到的有效速度增益 时,我有一些关于 htaccess 中设置的性质的详细、专业的问题:

请允许我提前感谢您对此事的回答和澄清,因为我不理解百科全书式的长页 apache 手册

下面的例子是在我的 Apache 2.0 和 PHP 5.2.3 上实际运行的

# preserve bandwidth for PHP enabled servers
<ifmodule mod_php4.c>
    php_value zlib.output_compression 16386
</ifmodule>

.

Q1: ifmodule mod_php4.c 是否表明它适用于 PHP 4 而不是 PHP5?

Q2:服务器引擎在 php.ini 而不是 htaccess 中有这个会更快吗?

Q3:压缩默认设置为 16386。如果我们将它降低到例如 4K

会发生什么

Q4:如果我们将它设置得更高会发生什么,例如128K ?

最佳答案

Q1: Does ifmodule mod_php4.c suggest that its for PHP 4 and not PHP5?

是的。 运行。除非您的脚本在 PHP5 下会中断,否则没有理由继续安装 PHP4。

Q2: Would it be faster for the server engine to have this in php.ini, instead of htaccess?

除了 Apache 启动期间的一些操作码外,一点都不重要。意思是,不......除非 .htaccess 文件不存在,在这种情况下,当 Apache 找到该文件时,性能可能会受到很小的影响。 (更少的 .htaccess 文件 => 减少不必要的 stat 调用 => 更快的一切性能。)

Q3: The compression is default set to 16386. What happens if we lower it to, say, 4K

This is the size of the buffer for the output .如果将其降低到 4k,数据将稍微更快地发送。根据页面的平均大小,这可能意味着数据可能需要以多个 block 的形式发送,这对于获取数据的用户来说可能是一个非常小的性能下降。

Q4: What would happen if we set it higher, e.g. 128K ?

这意味着在数据发送到客户端之前会发生 128k 的缓冲。如果您的页面在压缩后超过 128k,则可能有问题

setting up PHP bandwith savings and the effective speed gain experienced:

不久前,人们开始建议不要使用PHP 内置的gzip,建议Apache's mod_deflate反而。这让 PHP 只关心生成 HTML,而让 Apache 担心压缩和提供它。它也有同样的效果。虽然 mod_deflate 的手册页是百科全书式的,但它也简单明了。您可能已经有了它,只是在您的 httpd.conf 中没有使用所需的行。

因为它可以在“过滤器”级别运行,使用它还意味着任何生成压缩的 MIME 类型,包括 CGI 脚本和普通的旧 HTML 文件都可以自动压缩。


更新评论的答案:

Do I read on & inbetween the lines correctly that you suggest me to remove the block A and have only block B in place as seen here

这通常是正确的,尽管您拥有的配置 block 目前是按扩展名定位文件。相反,您可以使用 AddOutputFilterByType 配置指令按 MIME 类型定位,如 mod_deflate 手册中所述。

删除 PHP 配置时,还要检查系统上的 php.ini,因为它可能包含您可能不需要的压缩指令。

无论您使用什么方法打开 mod_deflate,Apache 都不会加倍 gzip 内容。

what would be the proper way to change the block A to make it most compatible with PHP5?

这取决于您的系统调用的 mod_php 的 5.x 版本。它将只是普通的旧常规 mod_php 或 mod_php5。在 httpd.conf(或/etc/httpd/conf.d/*.conf)的其他地方寻找 LoadModule 指令。

实际配置指令是正确的,它只是包含在“仅在加载 PHP4 时执行此操作” block 中。

假设您的 5.x mod_php 名​​为 mod_not_butter。如果是这种情况,该 block 将如下所示:

<IfModule mod_not_butter.c>
    php_value suckitude_factor -1
</IfModule>

I wonder what other options I might have to customize/speed up my mod_deflate APACHE gzip processing

有很多选择。除了缓冲区大小 ( DeflateBufferSize ),不要触摸它们中的任何,您应该将缓冲区大小设置为您期望的平均未压缩数据大小。 (我之前记错了缓冲区是在压缩之后,而实际上是在压缩之前。)

所有其他选项都是合理的默认值,您无需更改,因为到更改它们实际上会以有意义的方式影响性能时,您会希望涉及其他技术来减轻 Apache 的负载.

关于php - PHP5 服务器的带宽提速技巧 : Output and Zlib Compression,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5412792/

有关php - PHP5 服务器的带宽提速技巧 : Output and Zlib Compression的更多相关文章

  1. ruby - 具有身份验证的私有(private) Ruby Gem 服务器 - 2

    我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..

  2. ruby-on-rails - 启动 Rails 服务器时 ImageMagick 的警告 - 2

    最近,当我启动我的Rails服务器时,我收到了一长串警告。虽然它不影响我的应用程序,但我想知道如何解决这些警告。我的估计是imagemagick以某种方式被调用了两次?当我在警告前后检查我的git日志时。我想知道如何解决这个问题。-bcrypt-ruby(3.1.2)-better_errors(1.0.1)+bcrypt(3.1.7)+bcrypt-ruby(3.1.5)-bcrypt(>=3.1.3)+better_errors(1.1.0)bcrypt和imagemagick有关系吗?/Users/rbchris/.rbenv/versions/2.0.0-p247/lib/ru

  3. ruby-on-rails - s3_direct_upload 在生产服务器中不工作 - 2

    在Rails4.0.2中,我使用s3_direct_upload和aws-sdkgems直接为s3存储桶上传文件。在开发环境中它工作正常,但在生产环境中它会抛出如下错误,ActionView::Template::Error(noimplicitconversionofnilintoString)在View中,create_cv_url,:id=>"s3_uploader",:key=>"cv_uploads/{unique_id}/${filename}",:key_starts_with=>"cv_uploads/",:callback_param=>"cv[direct_uplo

  4. ruby-on-rails - 在 Rails 中调试生产服务器 - 2

    您如何在Rails中的实时服务器上进行有效调试,无论是在测试版/生产服务器上?我试过直接在服务器上修改文件,然后重启应用,但是修改好像没有生效,或者需要很长时间(缓存?)我也试过在本地做“脚本/服务器生产”,但是那很慢另一种选择是编码和部署,但效率很低。有人对他们如何有效地做到这一点有任何见解吗? 最佳答案 我会回答你的问题,即使我不同意这种热修补服务器代码的方式:)首先,你真的确定你已经重启了服务器吗?您可以通过跟踪日志文件来检查它。您更改的代码显示的View可能会被缓存。缓存页面位于tmp/cache文件夹下。您可以尝试手动删除

  5. 动漫制作技巧如何制作动漫视频 - 2

    动漫制作技巧是很多新人想了解的问题,今天小编就来解答与大家分享一下动漫制作流程,为了帮助有兴趣的同学理解,大多数人会选择动漫培训机构,那么今天小编就带大家来看看动漫制作要掌握哪些技巧?一、动漫作品首先完成草图设计和原型制作。设计草图要有目的、有对象、有步骤、要形象、要简单、符合实际。设计图要一致性,以保证制作的顺利进行。二、原型制作是根据设计图纸和制作材料,可以是手绘也可以是3d软件创建。在此步骤中,要注意的问题是色彩和平面布局。三、动漫制作制作完成后,加工成型。完成不同的表现形式后,就要对设计稿进行加工处理,使加工的难易度降低,并得到一些基本准确的概念,以便于后续的大样、准确的尺寸制定。四、

  6. ruby - 我的 Ruby IRC 机器人没有连接到 IRC 服务器。我究竟做错了什么? - 2

    require"socket"server="irc.rizon.net"port="6667"nick="RubyIRCBot"channel="#0x40"s=TCPSocket.open(server,port)s.print("USERTesting",0)s.print("NICK#{nick}",0)s.print("JOIN#{channel}",0)这个IRC机器人没有连接到IRC服务器,我做错了什么? 最佳答案 失败并显示此消息::irc.shakeababy.net461*USER:Notenoughparame

  7. ruby - Rails 开发服务器、PDFKit 和多线程 - 2

    我有一个使用PDFKit呈现网页的pdf版本的Rails应用程序。我使用Thin作为开发服务器。问题是当我处于开发模式时。当我使用“bundleexecrailss”启动我的服务器并尝试呈现任何PDF时,整个过程会陷入僵局,因为当您呈现PDF时,会向服务器请求一些额外的资源,如图像和css,看起来只有一个线程.如何配置Rails开发服务器以运行多个工作线程?非常感谢。 最佳答案 我找到的最简单的解决方案是unicorn.geminstallunicorn创建一个unicorn.conf:worker_processes3然后使用它:

  8. ruby TFTP 服务器 - 2

    我将以下代码放在一起用于一个简单的RubyTFTP服务器。它工作正常,因为它监听端口69并且我的TFTP客户端连接到它,我能够将数据包写入test.txt,但我不只是写入数据包,我希望能够从我的客户端通过TFTP传输文件到/temp目录。预先感谢您的帮助!require'socket.so'classTFTPServerdefinitialize(port)@port=portenddefstart@socket=UDPSocket.new@socket.bind('',@port)whiletruepacket=@socket.recvfrom(1024)putspacketFile

  9. ruby - 使用 ruby​​ gem net-ssh-multi 同时在多个服务器上执行 sudo 命令 - 2

    在previousquestion中我想出了如何在多个服务器上启动经过密码验证的sshsession来运行单个命令。现在我需要能够执行“sudo”命令。问题是,net-ssh-multi没有分配sudo需要运行的伪终端(pty),导致以下错误:[127.0.0.1:stderr]sudo:sorry,youmusthaveattytorunsudo根据documentation,可以通过调用channel对象的方法来分配伪终端,但是,以下代码不起作用:它会生成上面的“notty”错误:require'net/ssh'require'net/ssh/multi'Net::SSH::Mul

  10. Ruby 服务器在本地主机(teambox)之外非常慢 - 2

    我刚刚在我的Ubuntu9.10服务器上安装了TeamBox。我使用提供的服务器脚本在端口3000上启动并运行它。它的运行速度非常慢,从另一台计算机连接时每个HTTP请求最多需要30秒。我使用链接从shell加载TeamBox,一点也不花时间。然后我设置了一个SSH隧道,它再次运行得非常快。我通过此服务器上的apache以及SAMBA等运行了大约30个虚拟主机,没有任何问题。我该如何解决这个问题? 最佳答案 我的redmine(ruby,webrick)太慢了。现在我解决了这个问题:apt-getinstallmongrelruby

随机推荐