№ 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: "What kind of a god would crucify his own son?" [Firesign Theatre]
Leave a Reply