質問: Nginxで特定国からのアクセスを拒否したいと考え、参考サイト を利用して対応しようとしました。そこでmoduleはダウンロードできましたが、 moduleのファイルが認識されていないようなのでどなたかご教授いただければと存じます。 環境 AWS Linux CentOS7 nginx/1.12.1 発生している状況 ngx_http_geoip_moduleが読み込まれない nginxを起動しようとして発生するエラー ``` Starting nginx: nginx: [emerg] dlopen() "/usr/share/nginx/modules/ngx_http_geoip_module.so" failed (/usr/share/nginx/modules/ngx_http_geoip_module.so: ``` http_geoip_moduleはダウンロードできています ``` # nginx -V 中間省略 --modules-path=/usr/lib64/nginx/modules - 中間省略 -with-http_geoip_module=dynamic ``` /usr/lib64/nginx/modules のパスには該当のファイルが存在しませんでいた。 ``` $ cd /usr/lib64/nginx/modules [modules] $ ls -a . .. ``` ファイルのパス指定に誤りがあるのかもしれませんが、今のエラー情報で正解にたどり着くことができませんでした。 お手数ですが、どなたかご教授いただければと存じます。
回答: nginx-module-geoip は nginx.org の yum リポジトリにありますので、.repo ファイルを先にインストールする必要があると思います。 ``` # yum install http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm (バージョン 1.12.1 をインストールする場合) # yum install nginx-module-geoip-1.12.1 (最新バージョン 1.14.0 をインストールする場合) # yum install nginx-module-geoip ```