Как прописать путь к geoIp в nginx

Я пытаюсь установить модуль Nginx GeoIP на Centos6.
Я использую это руководство для его установки: Как установить модуль Nginx GeoIP
Но я сталкиваюсь с этой проблемой, когда пытаюсь установить путь GeoIp в nginx.cof:

nginx: [emerg] неизвестная директива "geoip_country" в /etc/nginx/nginx.conf:7 nginx:
файл конфигурации /etc/nginx/nginx.conf не прошел тест

И это строки, которые я добавил в nginx.conf :

geoip_country /usr/local/share/GeoIP/GeoIP.dat;
geoip_city /usr/local/share/GeoIP/GeoLiteCity.dat;

Я искал эту проблему в Google, один ответ был в том, что она должна быть в разделе main{}, но когда я вставляю main{} в nginx.conf и вставляю туда строки, я вижу другую ошибку, в которой говорится, что main{} неверно! Также я где-то читал, что main{} — это тот же файл nginx.conf!
Я так запутался, кто-нибудь может мне помочь с этим?


[ОБНОВЛЕНИЕ]
это файл раздел http в моем nginx.conf:

http {
    include       /etc/nginx/mime.types;

    # For user configurations not maintained by DirectAdmin. Empty by default.
    include /etc/nginx/nginx-includes.conf;

    # Supplemental configuration
    include /etc/nginx/nginx-modsecurity-enable.conf;
    include /etc/nginx/nginx-defaults.conf;
    include /etc/nginx/nginx-gzip.conf;
    include /etc/nginx/directadmin-ips.conf;
    include /etc/nginx/directadmin-settings.conf;
    include /etc/nginx/nginx-vhosts.conf;
    include /etc/nginx/directadmin-vhosts.conf;

    geoip_country /usr/local/share/GeoIP/GeoIP.dat;
    geoip_city /usr/local/share/GeoIP/GeoLiteCity.dat;

# Set php-fpm geoip variables
fastcgi_param GEOIP_COUNTRY_CODE $geoip_country_code;
fastcgi_param GEOIP_COUNTRY_CODE3 $geoip_country_code3;
fastcgi_param GEOIP_COUNTRY_NAME $geoip_country_name;
fastcgi_param GEOIP_CITY_COUNTRY_CODE $geoip_city_country_code;
fastcgi_param GEOIP_CITY_COUNTRY_CODE3 $geoip_city_country_code3;
fastcgi_param GEOIP_CITY_COUNTRY_NAME $geoip_city_country_name;
fastcgi_param GEOIP_REGION $geoip_region;
fastcgi_param GEOIP_CITY $geoip_city;
fastcgi_param GEOIP_POSTAL_CODE $geoip_postal_code;
fastcgi_param GEOIP_CITY_CONTINENT_CODE $geoip_city_continent_code;
fastcgi_param GEOIP_LATITUDE $geoip_latitude;
fastcgi_param GEOIP_LONGITUDE $geoip_longitude;
}

Есть ли какие-либо проблемы с этим?


person Alexander Jones    schedule 27.04.2017    source источник
comment
вам, вероятно, нужно load_module, если это не include где-то еще в файле конфигурации.   -  person    schedule 22.08.2018


Ответы (1)


Директивы geoip_ необходимо поместить внутрь блока http { ... }, который находится в файле nginx.conf. Например:

http {
    geoip_country /usr/local/share/GeoIP/GeoIP.dat;
    geoip_city /usr/local/share/GeoIP/GeoLiteCity.dat;

    server {
        ...
    }
}

Дополнительную информацию см. в этом документе.

person Richard Smith    schedule 27.04.2017
comment
Я также поместил его в раздел http, но все равно получаю ту же ошибку. - person Alexander Jones; 27.04.2017