Nginx wiki 上的这篇文章似乎表明 apache 将所有请求发送到 PHP 进行处理。
[参考 nginx 配置] 在这种情况下,您将所有内容都传递给 PHP。为什么?Apache 可能会这样做,您不需要这样做。
我也读过其他文章表明这一点,我确信它可以更改配置,但是例如使用运行 mod-PHP 的 Apache,Apache 是否只是将所有文件,即 CSS、javascript、图像文件等发送到 PHP 解释器加工?
Nginx wiki 上的这篇文章似乎表明 apache 将所有请求发送到 PHP 进行处理。
[参考 nginx 配置] 在这种情况下,您将所有内容都传递给 PHP。为什么?Apache 可能会这样做,您不需要这样做。
我也读过其他文章表明这一点,我确信它可以更改配置,但是例如使用运行 mod-PHP 的 Apache,Apache 是否只是将所有文件,即 CSS、javascript、图像文件等发送到 PHP 解释器加工?
这不是真的。您可以选择 apache 将传递给 php 解释器的文件。无论您使用 php 的方式如何,无论是 mod_php 还是 fastcgi,都是如此。
这意味着只有匹配该正则表达式(带有 php/phpN/phtml 扩展名)的文件才会被传递给 php 解析器。
默认情况下,Apache 不会将所有文件作为 PHP 脚本处理,因此即使 PNG 或 CSS 或任何非 PHP 文件具有
<?php
字符串,它也不会被解释。然而,这可以改变。但是,当httpd生成一个处理请求的进程时,
mod_phpX
它会被加载到内存中,并且每个请求都会消耗大量的 CPU 周期和数兆字节的 RAM - 无论请求的文件是否是 PHP 脚本,1 字节或 100 兆字节大。因为 PHP 及其模块中仍然存在非线程安全 (NTS) 代码,所以在使用该模块时,网络服务器需要使用经典的、基于进程的prefork MPM。这是最慢和最消耗内存的 MPM。
以上所有内容都清楚地说明了为什么 FastCGI SAPI 可以在繁忙的基于 PHP 的站点上提供更高的性能。