Nginx 作为 1 个网站的 Web 服务器,而 apache 作为另一个网站的 Web 服务器。可以吗?

Nginx 作为 1 个网站的 Web 服务器,而 apache 作为另一个网站的 Web 服务器。可以吗?

在 VPS 上centos面板我使用 Apache 作为网络服务器,使用 Nginx 作为反向代理。

我听说第二个比 Apache 处理 PHP 请求更快,我想将其配置为 1 个网站的 WebServer,但我仍然需要 Apache 来处理另一个网站。

是否可以?

我的目标是加快 php 页面的服务时间。例如,wp-admin/admin-ajax.php 需要 7 秒才能呈现!我预计需要 0.5 秒。

答案1

据我所知,你不能让两个进程在一台机器上监听同一个端口(80 / http),因此可能无法并行运行。

但是,您可以让 Nginx 监听端口 80,Apache 监听另一个端口 (81),然后让 Nginx 将适用的请求传递给 Apache。然后,每个端口都会将请求传递到需要传递到的地方,例如 PHP。但是,这可能与您现在的情况非常相似,所以我不太确定这是否是您想要的。

也许如果您更详细地描述您的设置和目标,我们可以提供更多帮助。

更新 PHP 运行缓慢不太可能与 Web 服务器有关。您需要查看使用的资源,深入研究代码,检查日志,看看发生了什么。您可以使用Nginx 页面缓存或者微缓存针对快速变化的网站,大幅提高匿名用户的速度。缓存可减少服务器负载,从而减少登录用户的页面生成时间。

PHP 不是最快的语言,但是如果资源充足的话还是可以的。高压真空泵是另一个比 PHP5 更快的 PHP 解释器,但我发现它与我使用的插件在 Wordpress 上配合使用效果不佳。PHP7 速度更快,但我再次遇到了一些插件问题。

您说渲染页面需要 7 秒。您是否使用类似网页测试网站确定页面加载的哪个部分很慢?它可以帮助您判断是页面生成、依赖资源等。

你还应该考虑使用 CDN,例如云Flare,它有一个有效的免费套餐。

答案2

这种性能问题几乎从来不是由 Apache 引起的。我会运行 PHP 分析器,看看是什么导致速度变慢。检查 CPU 使用率和磁盘 I/O 使用率。如果 Web 服务器不是瓶颈,就不要浪费宝贵的时间更换它。查看 USE 方法(使用率、饱和度、错误):http://www.brendangregg.com/USEmethod/use-linux.html

答案3

假设您确实需要在端口 80 上同时运行两个不同的 Web 服务器,并且您有两个可用的公共 IP 地址,则可以将每个 Apache 和 nginx 配置为监听不同的 IP 地址。

在 Apache 配置中:

Listen 1.2.3.4:80

在 nginx 配置中:

listen 5.6.7.8:80

相关内容