Darkensand
Проверенные
		- Сообщения
- 47
- Реакции
- 10
- Баллы
- 8,105
Устанавливаем необходимые пакеты в системе:
Debian/Ubuntu
	
	
	
		
CentOS
	
	
	
		
Обновим базу GeoIP до актуальной версии:
	
	
	
		
В каталоге с конфигурационными файлами web-сервера Nginx создадим файл block.map.include следующего содержания:
	
	
	
		
В данном примере мы запрещаем доступ к сайту пользователям из Китая, Вьетнама и Тайваня.
Для того, чтобы разрешить использование сайта только пользователям определенных стран, отредактируем конфигурационный файл следующим образом:
	
	
	
		
Теперь сайт будет доступен только пользователям из России и Украины.
В конфигурационном файле /etc/nginx/nginx.conf в секции http добавляем следующую строку:
	
	
	
		
После чего в настройках хоста (секция server) вставляем следующую конструкцию:
    
	
	
	
		
Применяем изменения:
	
	
	
		
	
	
	
		
Для Apache
Приведем варианты решения некоторых типичных задач (во всех примерах указанные строки нужно добавить в начало файла .htaccess в корневой папке сайта):
Запретить доступ к сайту для посетителей из Китая:
	
	
	
		
Сделать редирект с главной страницы в подраздел /ua/ для посетителей из Украины:
	
	
	
		
Заблокировать POST запросы (комментарии/авторизация на сайте/постинг на форуме) со всех стран, кроме Украины и Польши:
	
	
	
		
Заблокировать GET запросы (комментарии/авторизация на сайте/постинг на форуме) со всех стран, кроме Украины и Польши:
	
	
	
		
				
			Debian/Ubuntu
		Код:
	
	sudo apt-get install nginx-module-geoipCentOS
		Код:
	
	yum install nginx-module-geoipОбновим базу GeoIP до актуальной версии:
		Код:
	
	# mv /usr/share/GeoIP/GeoIP.dat /usr/share/GeoIP/GeoIP.dat_bak
# cd /usr/share/GeoIP/
# wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
# gunzip GeoIP.dat.gzВ каталоге с конфигурационными файлами web-сервера Nginx создадим файл block.map.include следующего содержания:
		Код:
	
	geoip_country /usr/share/GeoIP/GeoIP.dat;
map $geoip_country_code $allowed_country {
        default yes;
        CN no;
        VN no;
        TW no;
}Для того, чтобы разрешить использование сайта только пользователям определенных стран, отредактируем конфигурационный файл следующим образом:
		Код:
	
	geoip_country /usr/share/GeoIP/GeoIP.dat;
    map $geoip_country_code $allowed_country {
        default no;
        RU yes;
        UA yes;
    }Теперь сайт будет доступен только пользователям из России и Украины.
В конфигурационном файле /etc/nginx/nginx.conf в секции http добавляем следующую строку:
		Код:
	
	include include/block.map.include;После чего в настройках хоста (секция server) вставляем следующую конструкцию:
		Код:
	
	 if ($allowed_country = no) {
            return 404;
        }Применяем изменения:
		Код:
	
	RewriteEngine On
RewriteCond %{HTTP:GeoIp-Country-Code} !^(UA|PL)$
RewriteCond %{REQUEST_METHOD} POST
RewriteRule .* - [F]
		Код:
	
	# nginx -s reloadДля Apache
Приведем варианты решения некоторых типичных задач (во всех примерах указанные строки нужно добавить в начало файла .htaccess в корневой папке сайта):
Запретить доступ к сайту для посетителей из Китая:
		Код:
	
	RewriteEngine On
RewriteCond %{HTTP:GeoIp-Country-Code} ^(CN)$
RewriteRule .* - [F]Сделать редирект с главной страницы в подраздел /ua/ для посетителей из Украины:
		Код:
	
	RewriteEngine On
RewriteCond %{HTTP:GeoIp-Country-Code} ^(UA)$
RewriteCond %{REQUEST_URI} ^/$
RewriteRule .* /ua/ [L,R=302]Заблокировать POST запросы (комментарии/авторизация на сайте/постинг на форуме) со всех стран, кроме Украины и Польши:
		Код:
	
	RewriteEngine On
RewriteCond %{HTTP:GeoIp-Country-Code} !^(UA|PL)$
RewriteCond %{REQUEST_METHOD} POST
RewriteRule .* - [F]Заблокировать GET запросы (комментарии/авторизация на сайте/постинг на форуме) со всех стран, кроме Украины и Польши:
		Код:
	
	RewriteEngine On 
RewriteCond %{HTTP:GeoIp-Country-Code} !^(UA|PL)$ 
RewriteCond %{REQUEST_METHOD} GET 
RewriteRule .* - [F]
			
				Последнее редактирование: 
			
		
	
								
								
									
	
								
							
							 
				 
						
 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		