NGINXバージョン1.9.11およびupwartsから、新しい機能が導入されました:動的モジュール。
動的モジュールを使用すると、オプションで、実行時に個別の共有オブジェクトファイルをモジュールとして読み込むことができます。サードパーティモジュールと一部のネイティブNGINXモジュールの両方です。 ( ソース )
メインライン(現在1.9.14)からNGINXをインストールしているため、動的モジュールを使用できます。また、動的に有効にするモジュールもあります。
nginx -V
nginx version: nginx/1.9.14
built by gcc 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.1)
built with OpenSSL 1.0.1f 6 Jan 2014
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules ... --with-http_geoip_module=dynamic ...
(動的に)必要なモジュールをロードする--with-http_geoip_module=dynamic
に注意してください。残念ながら、ドキュメントが不足しており(詳細)、これを設定できません。
既存のNGINXインストールがあります(ソースからではありません)。ただし、理解できる限り、モジュールをビルドし、生成されたモジュールファイルを適切なNGINXフォルダーに配置して、構成ファイルで有効にするだけです。
これを別のマシンでテストしました(同じ構成で、実動マシンではありません)が、ngx_http_geoip_module.so
ファイルが表示されません。私が使用したコマンド:
wget http://nginx.org/download/nginx-1.9.14.tar.gz
tar -xzf nginx-1.9.14.tar.gz
cd nginx-1.9.14/
./configure --with-http_geoip_module=dynamic
私も同じ質問をしましたが、@ vladiastudilloの答えは私が必要としていなかったものでした。
最初に、nginx安定リポジトリを追加します。
Sudo add-apt-repository ppa:nginx/stable
次に、apt updateを実行します。
Sudo apt-get update
そして、nginx geoipモジュールを取得します。
Sudo apt-get install nginx-module-geoip
これにより、モジュールがダウンロードされ、/usr/lib/nginx/modules
Nginxモジュールをロードするには、
開いた nginx.conf
:
Sudo nano /etc/nginx/nginx.conf
メインコンテキストで以下を追加します。
load_module "modules/ngx_http_geoip_module.so";
設定をリロードするか、nginxを再起動すると、モジュールがロードされます。
モジュールを動的に「アンロード」するには、コメントアウトするか、モジュールを削除しますload_module
ディレクティブを使用して、nginx設定を再読み込みします。
これは、Amazon Linux 2016.09、yum更新の実行後のAmazon Linux 2016.03でわずかに異なることがわかりました。
Ec2インスタンスSudo yum search nginx-mod-http-geoip
でこのコマンドを使用することで、事前にこれを確認できます。応答にN/S matched: nginx-mod-http-geoip
の詳細が含まれるnginx-mod-http-geoip.x86_64 : Nginx HTTP geoip module
エントリが表示されます。
これらの場合、インストールされるnginxバージョンは1.10.1
になります。これが当てはまる場合、Amazonの既存のyumリポジトリからnginx geoipモジュールを次の方法で簡単にインストールできます。
Sudo yum install nginx-mod-http-geoip
次に、モジュールをnginx.conf
と関連付け、この行をメインコンテキストに配置します
include /usr/share/nginx/modules/mod-http-geoip.conf;
(これは主な答えとは微妙に異なります-awsでは、nginx.confに別の*.conf
ファイルを指すエントリがあり、その後*.so
ファイルを指します)
私は同じ問題を抱えていました、あなたはあなたのubuntuバージョンのhttp_geoip_module libをインストールする必要があります:
$ Sudo apt-get install nginx-module-geoip