tutorial ruta por directorio defecto cerrar nginx configuration geoip

ruta - Cómo habilitar el módulo dinámico con una instalación NGINX existente



nginx tutorial (3)

Tuve el mismo problema, tienes que instalar http_geoip_module lib para tu versión de Ubuntu con:

$ sudo apt-get install nginx-module-geoip

Introducción

Desde NGINX versión 1.9.11 y upwarts, se presenta una nueva característica: módulos dinámicos.

Con módulos dinámicos, puede cargar opcionalmente archivos de objetos compartidos separados en tiempo de ejecución como módulos, tanto módulos de terceros como algunos módulos NGINX nativos. ( fuente )

Mi configuración y el problema

Tengo NGINX instalado desde la línea principal (actualmente 1.9.14) por lo que es capaz de usar módulos dinámicos. También tiene el módulo que quiero habilitado dinámicamente:

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 ...

Tenga en cuenta el --with-http_geoip_module=dynamic que carga el módulo que necesito (dinámicamente). Desafortunadamente, falta la documentación (algunos detalles) y no puedo configurar esto.
Tengo una instalación NGINX existente (no de la fuente). Pero por lo que puedo entender, solo necesito construir el módulo, colocar el archivo del módulo generado en la carpeta NGINX correcta y habilitarlo en el archivo de configuración.

Lo que intenté hasta ahora

Probé esto en una máquina diferente (con la misma configuración, pero no en una máquina de producción), pero no veo el archivo ngx_http_geoip_module.so . Los comandos que utilicé:

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

Las preguntas

  • ¿Es un problema que intente construir el módulo en un sistema que tiene instalado NGINX no desde la fuente?
  • ¿Por qué no hay ningún archivo .so generado por mis comandos?

Tenía la misma pregunta, y la respuesta a @ vladiastudillo era la pieza faltante que necesitaba.

Primero agregue el repo estable de nginx:

sudo add-apt-repository ppa:nginx/stable

Luego ejecuta apt update:

sudo apt-get update

Y obtenga el módulo geoip nginx:

sudo apt-get install nginx-module-geoip

Esto descargará y cargará el módulo a /usr/lib/nginx/modules

Para cargar el módulo nginx,

abrir nginx.conf :

sudo nano /etc/nginx/nginx.conf

agregue agregar abajo en el contexto principal:

load_module "modules/ngx_http_geoip_module.so";

El módulo se cargará cuando vuelva a cargar la configuración o reinicie nginx.

Para "descargar" un módulo dinámicamente, comente o elimine su directiva load_module y vuelva a cargar la configuración de nginx.


Encontré esto ligeramente diferente en Amazon Linux 2016.09 , Amazon Linux 2016.03 después de realizar la actualización yum.

Puede confirmar esto con anticipación usando este comando en su instancia ec2 sudo yum search nginx-mod-http-geoip y verá una entrada N/S matched: nginx-mod-http-geoip en la respuesta con detalles de nginx-mod-http-geoip.x86_64 : Nginx HTTP geoip module

En estos casos, la versión de nginx instalada será 1.10.1 . Cuando esto sea cierto, puede instalar el módulo nipx geoip del repositorio de yum de Amazon a través de:

sudo yum install nginx-mod-http-geoip

A continuación, asocie el módulo con su nginx.conf y coloque esta línea en el contexto principal

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

(tenga en cuenta que esto es sutilmente diferente de la respuesta principal - en aws tiene una entrada en nginx.conf que apunta a otro archivo *.conf que luego apunta al archivo *.so )