>  기사  >  운영 및 유지보수  >  Nginx 및 GeoIP 모듈이 IP의 지리 정보를 읽는 방법

Nginx 및 GeoIP 모듈이 IP의 지리 정보를 읽는 방법

WBOY
WBOY앞으로
2023-05-14 15:10:061764검색

linux install geoip

yum install nginx-module-geoip

http_geoip_module 사용 시나리오

1. 국내외 http 접속 규칙 차별화

2. 국내 도시 및 지역별 http 접속 규칙 차별화

yum 설치 후 설치된 모듈 파일을 찾아보세요.

yun을 사용하여 nginx를 설치하는 경우 일반적으로 /etc/nginx/modules/ 디렉터리에 설치됩니다

참고: nginx가 yum으로 설치되지 않고 소스 코드에서 컴파일 및 설치되는 경우 nginx를 다시 설치하고 컴파일해야 하며 이 모듈을 추가하면 이 모듈을 수동으로 추가할 필요가 없습니다.

수동으로 모듈을 추가하세요

nginx.conf 구성 파일의 헤더에 로드된 모듈은 http

load_module "modules/ngx_http_geoip_module.so";
load_module "modules/ngx_stream_geoip_module.so";

와 동일한 수준입니다. geoip은 maxmind를 기반으로 하며 지역 정보를 읽을 수 있는 데이터베이스 파일을 제공하기 때문에 ip 영역 파일을 다운로드해야 합니다.

이 데이터베이스는 바이너리이므로 텍스트 편집기로 열 수 없습니다. 읽으려면 위의 geoip 라이브러리가 필요합니다.

wget http://geolite.maxmind.com/download/geoip/database/geolitecountry/geoip.dat.gz #国家的地域ip
wget http://geolite.maxmind.com/download/geoip/database/geolitecity.dat.gz  #城市的地域ip

그런 다음

load_module "modules/ngx_http_geoip_module.so";
load_module "modules/ngx_stream_geoip_module.so";

.......


http{
geoip_country /etc/nginx/geoip/geoip.dat; #加载国家ip
geoip_city /etc/nginx/geoip/geolitecity.dat; #加载城市ip

.........

 server
 {
 ......



 location / {
 #判断如果不是中国的就返回403;
 if ($geoip_country_code != cn) {
  return 403;
 }
 }
 #返回国家城市信息
 location /myip {
 default_type text/plain;
 return 200 "$remote_addr $geoip_country_name $geoip_country_code $geoip_city";
 }



....
 }
}

의 압축을 풀고 IP 주소/myip를 방문하여 해당 IP가 위치한 국가 및 도시 정보를 반환하세요.

위 내용은 Nginx 및 GeoIP 모듈이 IP의 지리 정보를 읽는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제