보탑 기본 바 이 너 리 컴 파일 nginx configure 파일 이 없 는 GeoIP 2 설치 방법

4229 단어
1. 로그 인 서버 nginx 설치 디 렉 터 리 확인
# nginx -V
nginx version: nginx/1.14.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) 
built with OpenSSL 1.0.2r  26 Feb 2019
TLS SNI support enabled
configure arguments: --user=www --group=www --prefix=/www/server/nginx --with-openssl=/www/server/nginx/src/openssl --add-module=/www/server/nginx/src/ngx_devel_kit --add-module=/www/server/nginx/src/lua_nginx_module --add-module=/www/server/nginx/src/ngx_cache_purge --add-module=/www/server/nginx/src/nginx-sticky-module --add-module=/www/server/nginx/src/nginx-http-concat --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_image_filter_module --with-http_gzip_static_module --with-http_gunzip_module --with-stream --with-stream_ssl_module --with-ipv6 --with-http_sub_module --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module --with-ld-opt=-Wl,-E --with-pcre=pcre-8.42 --with-cc-opt=-Wno-error --with-ld-opt=-ljemalloc

--prefix=/www/server/nginx
2. GeoIP 를 로 컬 로 다운로드
# cd /usr/local/
# wget https://github.com/leev/ngx_http_geoip2_module/archive/3.2.tar.gz
# tar zxvf 3.2.tar.gz

나의 최종 경 로 는?
/usr/local/ngx_http_geoip2_module-3.2

3. 보탑 기본 ngix. sh 파일 위치
#cd /www/server/panel/install/
#vi nginx.sh

제 버 전 은 1.14 입 니 다. 이 부분 을 수정 하 겠 습 니 다.
elif [ "${version}" == "1.14" ] || [ "${version}" == "1.12" ] || [ "${version}" == "1.16" ] || [ "${version}" == "1.10" ]; then
                ./configure --user=www --group=www --prefix=${Setup_Path} --with-openssl=${Setup_Path}/src/openssl --add-module=${Setup_Path}/src/ngx_devel_kit --add-module=${Setup_Path}/src/lua_nginx_module --add-module=${Setup_Path}/src/ngx_cache_purge --add-module=${Setup_Path}/src/nginx-sticky-module --add-module=${Setup_Path}/src/nginx-http-concat --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_image_filter_module --with-http_gzip_static_module --with-http_gunzip_module --with-stream --with-stream_ssl_module --with-ipv6 --with-http_sub_module --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module --with-ld-opt="-Wl,-E" --with-pcre=pcre-${pcre_version} --with-cc-opt="-Wno-error" ${jemallocLD} 

그래서
./configure --user=www --group=www --prefix=${Setup_Path}

뒤에 추 가 된 것 은
--add-module=/usr/local/ngx_http_geoip2_module-3.2

4. 추가 완료 후 ZZ 저장 후 실행 * 주의 매개 변 수 는 1.14 이 며, 1.14.2 가 아 닌 실제 필요 한 버 전에 따라 코드 에 해당 하 는 매개 변 수 를 읽 고 수정 합 니 다.
# sh /www/server/panel/install/nginx.sh install 1.14

5. GeoIP 데이터베이스 GeoLite 도시 라 이브 러 리 및 국가 라 이브 러 리 다운로드 (이 라 이브 러 리 는 IP 주 소 를 구체 적 인 주소 정보 로 번역 하기 위 한 것 입 니 다)
#mkdir /data/geoip
#cd /data/geoip
wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz
wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.mmdb.gz
gunzip GeoLite2-City.mmdb.gz
gunzip GeoLite2-Country.mmdb.gz

6. Nginx 설정 수정 http 에 추가
http {
    geoip2 /data/geoip/GeoLite2-Country.mmdb {
        $geoip2_data_country_code default=CN country iso_code;
        $geoip2_data_country_name country names en;
    }
    geoip2 /data/geoip/GeoLite2-City.mmdb{
        $geoip2_data_city_name default=Shenzhen city names en;
    }

7. server location 에 대응 하 는 지 테스트 할 때 rewrite 로 인 자 를 추가 하거나 if 로 방문 디 렉 터 리 를 바 꿀 수 있 습 니 다.
server {
            location / {
        add_header geoip2_data_city_name $geoip2_data_city_name;
        rewrite ^/api/?type=geoip /api/?type=$arg_type&city=$geoip2_data_city_name? permanent;
           if ($geoip2_data_country_code = US){
                root /data/webroot/us;
            }
    }
}

source: https://www.bt.cn/bbs/thread-16118-1-1.html https://github.com/leev/ngx_http_geoip2_module/releases https://yq.aliyun.com/articles/694355?spm=a2c4e.11155472.0.0.7b5b6ce2wtTeVP

좋은 웹페이지 즐겨찾기