我使用 apt-get 在我的服务器上安装了 nginx。现在我需要添加一些功能,例如 pagespeed 模块,并且我了解到唯一的方法是直接将模块编译到 nginx 源代码中。这是否意味着我必须卸载 nginx 并从源代码重新安装?使用 apt-get 和源代码之间还有哪些区别?
答案1
对于您关于必须从源代码构建的问题,答案是肯定的,尽管令人难过。
正如 Google 在 pagespeed 主文档页面中所述:
“如果您使用 Nginx,则需要从源代码构建。这些软件包仅适用于 Apache。”
这非常不幸,因为对于很多模块,可以使用 apt 安装 nginx,并在方法中添加所需的选项。
恐怕在这种情况下您必须选择是想要使用 apt 安装 nginx 的便利性(有些人可能会说是出于安全目的的保证)还是 Pagespeed 为您的网站带来的性能提升。
答案2
将模块编译到 nginx 等应用程序中有助于提高高负载下的性能,但是,如果您从源代码编译,则无法再使用 apt 进行升级。您必须自行管理安全更新。
如果你不确定——最好使用 apt。从长远来看,它更容易管理。
有一些 Linux 版本可以管理源安装,但对于某些人来说可能很复杂。
编辑:如果让 pagespeed 工作的唯一方法是编译它,那么您别无选择……但我会尝试看看是否有可用的 apt 端口。是的。在编译源代码之前卸载 nginx 是个好主意。您可以安装到不同的目录,但您的 80 端口会发生冲突。
答案3
确实,nginx 没有运行时模块。但是在 ubuntu 中,你有几个版本的 nginx,ubuntu 维护者为你编译了模块
- nginx-light 具有最小的功能集
- nginx-extras 包含一些额外的模块
- nginx-full 包含最常见和受支持的模块的完整集合
您可以在这里查看包含哪些模块: https://wiki.debian.org/Nginx
如果您的模块没有列出,您需要自己构建 nginx。
但是如果您使用维护人员提供的 deb-src 包,这将是一项几乎简单的任务。