12

我正在尝试在我当前安装并运行 Apache httpd 的云 Cent OS 服务器上安装 Nginx。

我的托管公司告诉我 Nginx 和 Apache 可以同时在 80 端口上运行,所以我的计划是在通过 Yum 安装之后将 Wordpress 站点的 .htaccess 和 Apache conf 转换为 Nginx。

我也对此进行了谷歌搜索,有些人建议使用 Nginx 作为反向代理并仅提供静态文件,但使用 PHP 运行 Apache,因为 Apache 嵌入了 PHP,并且即使它不支持像 Nginx 这样的多个并发请求,也会消耗更少的内存。

我的直觉是,将所有东西都切换到 Nginx 会是有益的,但在这个阶段还不确定。

另外,在进行这种切换时我应该注意什么吗?

如果是你在这种情况下,你会怎么做?

4

3 回答 3

14

我不太确定您的托管公司的评论是什么意思,但是您将无法在端口 80 上同时运行 Apache 和 Nginx。一旦绑定到端口 80,另一个将无法绑定到它。

在您目前的情况下,最好的配置可能是将 Nginx 放在端口 80 上,将 Apache 放在 8000 或类似端口上。

使用 nginx 提供静态文件(请参阅 try_files,因为"if" 是邪恶的),然后使用HTTP 代理模块将 PHP 的所有请求代理到端口 8000 。

PHP 与 Nginx 的另一个常见配置是通过 FastCGI 使用 PHP-FPM 和代理,只需谷歌“PHP-FPM Nginx {Your OS} tutorial”获取教程。

关于 PHP-FPM/mod_php 的性能有很多争论,但根据我的个人经验,我发现 PHP-FPM 的性能更高。

于 2012-12-30T15:25:31.817 回答
11

我将使用 nginx 作为端口 80 上的面向 Web 的服务器,并将代理传递给将在不同端口上运行的 apache。许多站点运行此配置。使用 nginx 提供静态文件比使用 apache 更有效。它实际上比听起来要简单得多。

本文档详细说明。

于 2012-12-30T15:17:38.150 回答
1

您应该将面向外部的网络服务器绑定到公共 IP 地址,将面向内部的网络服务器绑定到 localhost (127.0.0.1:80)。

因此,如果您公开使用 Nginx,则将其绑定到公共 IP 地址并将其代理到 localhost 的 Apache。

最好使用单独的端口以使其更易于调试。

于 2012-12-30T19:14:14.923 回答