我在 Ubuntu 12.04.1 上unattended-upgrades
配置了自动安全更新,我首先通过添加来安装 Nginx
deb http://nginx.org/packages/ubuntu/ lucid nginx
deb-src http://nginx.org/packages/ubuntu/ lucid nginx
按照/etc/apt/sources.list
官方维基,然后
sudo apt-get update
sudo apt-get install nginx
安装了 Nginx 的所有标准模块。但现在我认为我可以充分利用 Nginx 的一两个可选模块,例如 gzip 预压缩模块或一些与安全相关的模块。到目前为止,我看到了两种向 Nginx 添加可选模块的方法,一种是从源代码编译和安装,另一种在本文。
那么,我应该选择哪种方式才能使自动更新仍然运行并应用于 Nginx和它的可选模块?或者我应该创建一个 cron 作业,其中包含特定于 Nginx 的命令/脚本,而不是使用unattended-upgrades
实用程序?我可以选择批量更新和仅安全更新以自动应用于标准和可选模块?最后,是否有可能在运行中自动更新 Nginx 的模块(无需断开任何连接),例如文档表明有可能
sudo kill -USR2 $( cat /run/nginx.pid )
PS 实际上我不确定unattended-upgrades
实用程序是否会首先自动更新标准模块,因为自 Nginx 安装以来还没有足够的时间来确定。
答案1
nginx 中的所有模块都被编译到核心二进制文件中,因此对 nginx 的任何更新也会更新模块。
我对 apt-get 不是很熟悉,但我相信您链接的文章基本上只是修改了软件包以告诉它使用附加模块。来自存储库的任何更新都会将其恢复为库存模块。
如果您需要 nginx 的特定模块,您最好自己编译它。这相对简单,只需将适当的选项传递给命令configure
以包含特定模块(即--with-http_gzip_static_module
gzip 静态模块)。绝对可以为此编写脚本,尽管我不确定您如何自动确定当前版本。