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 жылдан астам тәжірибесі бар. |
Қазақстандағы резервтік көшірудің ең жақсы он тәжірибесі
- oVirt гипервизорын қорғау — терең талдау
- oVirt жүйесінен Proxmox жүйесіне виртуалды машинаны көшіру
- Proxmox-тан oVirt-ке виртуалды машинаны көшіру
- Kubernetes контейнерлерін қорғау — терең талдау
- Proxmox гипервизорын бұзудан қалай қорғауға болады - Терең талдау
- Fail2Ban-ды oVirt жүйесін қорғауда қолдану - Терең талдау
- oVirt гипервизорын сақтандыруды ұйымдастыру — Терең талдау
- Виртуалды машинаны гипервизорлар арасында Proxmox арқылы көшіру
- Proxmox гипервизорын виртуалды машиналардың оңтайлы жұмысын қамтамасыз ету үшін конфигурациялау
- Proxmox-те SSH арқылы root құқықтарының бұзылуынан қорғау: терең талдау