Comment dois-je ajouter le module GeoIP à nginx?

0

J'utilise nginx version 1.8 sur un serveur centos 6.7, mais lorsque j'utilise la commande nginx -V, je ne peux pas voir geoip_module. Comment puis-je l'ajouter à nginx?

movi a couru
la source
désolé pour le lien externe, mais je pense que vous pouvez utiliser ce nginx.org/en/docs/http/ngx_http_geoip_module.html
c4f4t0r
merci mais rien à propos de l'ajout du module à nginx
movi a couru
Ce module n'est pas construit par défaut, il devrait être activé avec le paramètre de configuration --with-http_geoip_module. piwik.org/faq/how-to/faq_166
c4f4t0r
Où avez-vous eu nginx?
Michael Hampton

Réponses:

2

Nginx n'a pas de "modules" au sens apache, il doit être recompilé avec le module dont vous avez besoin inclus lors de ./configure.

C'est en fait assez facile - il suffit de suivre ces étapes:

  1. Installez les prérequis pour la construction de nginx en utilisant les commandes suivantes:

    yum group install "Development Tools"

    yum install gcc gd-devel GeoIP-devel

  2. Téléchargez la dernière source nginx à partir de http://nginx.org/en/download.html

    wget http://nginx.org/download/nginx-1.15.7.tar.gz

  3. Décompressez-le et entrez le répertoire de l'arborescence source

    tar xzfv nginx-1.15.7.tar.gz && cd nginx-1.15.7

  4. Obtenez les arguments de configuration de votre nginx installé (en cours d'exécution nginx -V), ajoutez-leur l' --with-http_geoip_moduleoption ou configurez-le simplement avec la commande suivante:

    ./configure --with-http_gzip_static_module --with-pcre --with-file-aio --without-http_scgi_module --without-http_uwsgi_module --without-http_fastcgi_module --user=nginx --group=nginx --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-http_image_filter_module --with-cc-opt="-march=native -mtune=native -O2 -pipe" --with-sha1-asm --with-zlib-asm=pentiumpro --with-md5-asm --with-pcre-jit --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module --with-http_geoip_module

    les options sont expliquées ici

  5. make && make install

  6. Vous avez maintenant le support GeoIP dans votre nginx. Pour l'utiliser, téléchargez et décompressez les bases de données à partir de http://dev.maxmind.com/geoip/legacy/geolite/

    curl http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz | gzip -d - > /etc/nginx/GeoIP.dat

    curl http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz | gzip -d - > /etc/nginx/GeoLiteCity.dat

  7. Ajoutez-les à la section http de votre fichier de configuration nginx :

    geoip_country /etc/nginx/GeoIP.dat;

    geoip_city /etc/nginx/GeoLiteCity.dat;

  8. Et enfin, définissez les en-têtes, qui contiendront les informations GeoIP dans la section serveur de votre fichier de configuration nginx :

    proxy_set_header GEOIP_REGION $geoip_region;

    proxy_set_header GEOIP_REGION_NAME $geoip_region_name;

    proxy_set_header GEOIP_CITY $geoip_city;

    proxy_set_header GEOIP_AREA_CODE $geoip_area_code;

    proxy_set_header GEOIP_LATITUDE $geoip_latitude;

    proxy_set_header GEOIP_LONGITUDE $geoip_longitude;

    proxy_set_header GEOIP_POSTAL_CODE $geoip_postal_code;

Anubioz
la source
Si nginx est déjà installé et en cours d’exécution et que vous suivez les étapes ci-dessus, cela remplace-t-il simplement l’installation existante? Pertes de configuration?
Chris
@ Chris Nope, il écrase uniquement nginx binariesm. Assurez-vous cependant d’utiliser les directives de configuration exactes de votre système à l’étape 4
Anubioz