NGINX – бұл жоғары өнімді HTTP сервері және реверс-прокси, ол көбінесе веб-сайттарды қызмет көрсету үшін қолданылады. ngx_http_geoip_module
модулінің көмегімен пайдаланушылардың IP мекенжайлары негізінде ресурстарға қол жеткізуді географиялық шектеулерді орнатуға болады.
Бұл мақалада біз NGINX-те GeoIP-ті қалай орнату және баптау керектігін техникалық терминдермен және егжей-тегжейлі мысалдармен қарастырамыз.
1-қадам: Қажетті кітапханаларды орнату
Ubuntu/Debian-да орнату
-
Пакеттер тізімін жаңарту және GeoIP кітапханасы мен мәліметтер базасын орнату:
bashsudo apt-get update sudo apt-get install libgeoip-dev geoip-database
-
NGINX үшін GeoIP модулін орнату:
bashsudo apt-get install nginx-module-geoip
CentOS/RHEL-да орнату
-
GeoIP кітапханасы мен мәліметтер базасын орнату:
bashsudo yum install GeoIP GeoIP-devel GeoIP-data
-
NGINX үшін GeoIP модулін орнату:
bashsudo yum install nginx-module-geoip
2-қадам: GeoIP мәліметтер базасын жүктеу
MaxMind-тен GeoLite2 мәліметтер базаларын жүктеңіз:
Жүктелген файлдарды ашып, оларды NGINX-ке қол жетімді каталогқа орналастырыңыз, мысалы /usr/share/GeoIP/
.
3-қадам: NGINX-ті GeoIP пайдалану үшін баптау
NGINX конфигурациялық файлын ашыңыз, әдетте бұл /etc/nginx/nginx.conf
немесе /etc/nginx/conf.d/
каталогындағы файл, мысалы default.conf
.
http
бөліміне келесі жолдарды қосыңыз:
http {
# GeoLite2 Country мәліметтер базасын қосу
geoip_country /usr/share/GeoIP/GeoLite2-Country.mmdb;
# Рұқсат етілген елдерді анықтау үшін карта баптау
map $geoip_country_code $allowed_country {
default no;
US yes;
CA yes;
}
server {
listen 80;
server_name your_domain.com;
# Рұқсат етілмеген елдер үшін кіруге тыйым салу
if ($allowed_country = no) {
return 403;
}
location / {
root /var/www/html;
index index.html index.htm;
}
}
}
4-қадам: NGINX-ті қайта іске қосу
Конфигурацияға өзгерістер енгізгеннен кейін олар күшіне ену үшін NGINX-ті қайта іске қосу қажет:
sudo systemctl restart nginx
Қосымша баптаулар
GeoLite2 City мәліметтер базасын пайдалану
Қалаларды қоса алғанда, орналасқан жері туралы неғұрлым егжей-тегжейлі ақпарат алу үшін GeoLite2 City мәліметтер базасын пайдаланыңыз.
-
GeoLite2 City мәліметтер базасын жүктеп, ашыңыз.
-
Қала мәліметтер базасын пайдалану үшін NGINX конфигурациясын жаңартыңыз:
http {
# GeoLite2 City мәліметтер базасын қосу
geoip2 /usr/share/GeoIP/GeoLite2-City.mmdb {
auto_reload 5m;
$geoip2_data_country_code country iso_code;
$geoip2_data_city_name city names en;
}
# Рұқсат етілген елдерді анықтау үшін карта баптау
map $geoip2_data_country_code $allowed_country {
default no;
US yes;
CA yes;
}
# Рұқсат етілген қалаларды анықтау үшін карта баптау
map $geoip2_data_city_name $allowed_city {
default no;
"New York" yes;
"Los Angeles" yes;
"Toronto" yes;
}
server {
listen 80;
server_name your_domain.com;
# Рұқсат етілмеген елдер үшін кіруге тыйым салу
if ($allowed_country = no) {
return 403;
}
# Рұқсат етілмеген қалалар үшін кіруге тыйым салу
if ($allowed_city = no) {
return 403;
}
location / {
root /var/www/html;
index index.html index.htm;
}
}
}
Тереңірек баптау мысалы
Ресурсқа тек белгілі бір елдер мен қалалардан қол жеткізуді рұқсат ету қажет деп есептейік, сондай-ақ әр түрлі аймақтар үшін бөлек беттерді баптаңыз.
- Әр түрлі аймақтар үшін әр түрлі беттерді баптау:
http {
geoip2 /usr/share/GeoIP/GeoLite2-City.mmdb {
auto_reload 5m;
$geoip2_data_country_code country iso_code;
$geoip2_data_city_name city names en;
}
map $geoip2_data_country_code $allowed_country {
default no;
US yes;
CA yes;
}
map $geoip2_data_city_name $allowed_city {
default no;
"New York" yes;
"Los Angeles" yes;
"Toronto" yes;
}
server {
listen 80;
server_name your_domain.com;
# Рұқсат етілмеген елдер үшін кіруге тыйым салу
if ($allowed_country = no) {
return 403;
}
# Рұқсат етілмеген қалалар үшін кіруге тыйым салу
if ($allowed_city = no) {
return 403;
}
location /us {
if ($geoip2_data_country_code != "US") {
return 403;
}
root /var/www/html/us;
index index.html index.htm;
}
location /ca {
if ($geoip2_data_country_code != "CA") {
return 403;
}
root /var/www/html/ca;
index index.html index.htm;
}
location / {
root /var/www/html;
index index.html index.htm;
}
}
}
Бұл мысалда АҚШ-тан келген пайдаланушылар /us
-ке, Канададан келген пайдаланушылар /ca
-ға бағытталады, ал қалғандардың барлығы түпкі каталогқа қол жеткізе алады.
Қорытынды
NGINX-те ngx_http_geoip_module модулін пайдалану IP мекенжайлар негізінде ресурстарға қол жеткізуді географиялық шектеулерді орнатуға мүмкіндік береді. Бұл мазмұнға лицензия бойынша қол жеткізуді шектеу немесе қауіпсіздікті қамтамасыз ету сияқты әр түрлі сценарийлер үшін пайдалы болуы мүмкін.
Бұл мақалада біз қажетті кітапханаларды орнату, GeoIP мәліметтер базаларын жүктеу және баптау, сондай-ақ қол жеткізуді географиялық орналасуына қарай шектеу үшін NGINX-ті баптау туралы қарастырдық. Біз сондай-ақ әр түрлі аймақтар үшін әр түрлі беттерді пайдалану арқылы тереңірек баптау мысалын қарастырдық.
Реклама Google |
![]() |
Назар аударыңыз! Бұл мақала ресми құжат емес.Ақпаратты сақтықпен және сынақ ортасында пайдалану керек.
Заманауи сақтық көшірме жасау, репликациялау, деректерді синхрондау және төлемдік бағдарламадан қорғау жүйелерін құру туралы сұрақтарыңыз болса, қазіргі заманғы деректердің сақтық көшірмесін жасау және қалпына келтіру технологиялары бойынша кеңес алу үшін біздің компанияға хабарласыңыз . Біздің компанияның осы салада 20 жылдан астам тәжірибесі бар. |
Қазақстандағы резервтік көшірудің ең жақсы он тәжірибесі
- Proxmox гипервизорын жаңа физикалық серверге көшіру
- OpenShift қолдану арқылы Docker контейнерлерін пайдалану — терең талдау
- Wazuh-ты Proxmox қауіпсіздігін бақылау үшін пайдалану - Терең талдау Кіріспе
- Fail2Ban-ды zVirt-те орнату, баптау және пайдалану
- Graylog Community Edition-ді Proxmox-қа орнату, баптау және пайдалану
- Elasticsearch-ті Proxmox жүйесіне орнату, баптау және пайдалану
- Kibana-ны Proxmox-қа орнату, баптау және пайдалану
- Logstash-ты Proxmox-қа орнату, баптау және пайдалану
- Proxmox логтарын талдау үшін ИИ мүмкіндіктері
- Ceph-ті OpenStack-те орнату, баптау және пайдалану