在Amazon Linux AMI release 2016.09的Nginx上遇到困难

在Amazon Linux 2016.09中,使用yum安装的Nginx版本已更新至1.10.1。
请参考https://aws.amazon.com/jp/amazon-linux-ami/2016.09-release-notes/。

在1.9.11版本中,Nginx加入了动态加载模块的功能,并将一些模块改为动态加载方式。
参考链接: https://www.nginx.com/blog/dynamic-modules-nginx-1-9-11/

./configure --with-http_geoip_module=dynamic \
              --with-http_image_filter_module=dynamic \
              --with-mail=dynamic \
              --with-stream=dynamic \
              --with-http_xslt_module=dynamic

如果以前使用 `http_image_filter_module` 进行图像转换等操作,现在使用原有的 `nginx.conf` 配置文件却没有该模块的话,会出现错误提示。

Starting nginx: nginx: [emerg] unknown directive "image_filter" in /etc/nginx/sites-enabled/hoge:1

当使用yum命令检查yum的nginx相关软件包时,发现存在需要动态加载的模块,因此需要使用yum命令安装所需的模块。

$ yum list | grep nginx
nginx.x86_64                             1:1.10.1-1.28.amzn1          @amzn-main
collectd-nginx.x86_64                    5.4.1-1.11.amzn1             amzn-main
munin-nginx.noarch                       2.0.20-1.37.amzn1            amzn-main
nginx-all-modules.x86_64                 1:1.10.1-1.28.amzn1          amzn-main
nginx-filesystem.noarch                  1.10.1-1.el6                 epel
nginx-mod-http-geoip.x86_64              1:1.10.1-1.28.amzn1          amzn-main
nginx-mod-http-image-filter.x86_64       1:1.10.1-1.28.amzn1          amzn-main
nginx-mod-http-perl.x86_64               1:1.10.1-1.28.amzn1          amzn-main
nginx-mod-http-xslt-filter.x86_64        1:1.10.1-1.28.amzn1          amzn-main
nginx-mod-mail.x86_64                    1:1.10.1-1.28.amzn1          amzn-main
nginx-mod-stream.x86_64                  1:1.10.1-1.28.amzn1          amzn-main


$ sudo yum install nginx-mod-http-image-filter

另外,在nginx.conf中添加模块加载的指令,这样在nginx启动时就会被加载。(最好是在nginx.conf的开头加上)

include /usr/share/nginx/modules/mod-http-image-filter.conf;