Kaptain.
Telegram /
LinkedIn /
Email /
GIT /
RSS /
GPG /
Заказ печатных плат

№ 4795 В разделе
Sysadmin
от January 18th, 2013,
В подшивках: Linux, Nginx
Вы уже наверняка установили nginx с поддержкой GeoIP и распаковали куда-нибудь саму базу адресов. Нет? Ну так в сети куча мануалов. Зачем плодить их? А вот теперь самое интересное!
в секции http нужно подключить ваши конфиги:
geoip_country /opt/GeoIP.dat;
map $geoip_country_code $bad_country {
default 1;
include geo/good_countries;
}
А теперь фишка! Об этом не написали в других мануалах. Конфиг самого сервера:
server {
listen 80 default; ## listen for ipv4
server_name blablabla.ru;
root /var/www/blablabla.ru;
index index.php index.html index.htm;
error_page 405 403 /geoblock.html;
location ~* /geoblock.html {
internal;
root /etc/nginx/errors;
default_type text/html;
}
location / {
if ($bad_country){
return 405; }
if ($remote_addr = 31.24.28.1){
return 405; }
}
location ~ \.php$ {
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php-fastcgi/php-fastcgi.socket;
fastcgi_index index.php;
fastcgi_intercept_errors on;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Нужно было проверки IP поместить в секцию location / {}, о чем заботливо не написали ни в одном мануале 🙂
Fortune cookie: World War III? No thanks!
Leave a Reply