为 Nginx 开启 Geoip 模块以屏蔽特定国家|地区的访问

tengxunyun cera

因为之前是通过 apt-get 方式安装的 Nginx,默认没有带 geoip module,需要安装:

apt-get install nginx-module-geoip   

然后编辑 /etc/nginx/nginx.conf

vim /etc/nginx/nginx.conf   

按 i 进入编辑模式,在最上方新增一行:

load_module modules/ngx_http_geoip_module.so;   

在 http{ 下方新增以下几行

geoip_country /usr/share/GeoIP/GeoIP.dat;
map $geoip_country_code $allowed_country {
    default yes;
    CN no;
    MY no;
}
// 默认允许访问,但是中国大陆地区不允许访问   

或者

geoip_country /usr/share/GeoIP/GeoIP.dat;
map $geoip_country_code $allowed_country {
    default no;
    CN yes;
    HK yes;
    TW yes;
    MO yes;
}
// 默认不允许访问,只允许大中华区访问   

按 ESC 输入 :wq 退出编辑

接下来,安装 Geoip 数据库

apt-get install geoip-database libgeoip1 && 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   

编辑网站的 Nginx 配置文件

vim /etc/nginx/conf.d/xx.conf   // 按照你自己的配置文件打开   

在 server { 之后,location{} 内部或者外部新增

if ($allowed_country = no) {
    return 403;
}   

重启 Nginx 即可

service nginx restart   

cera cloudiplc

相关推荐

开启宝塔面板静态文件加速后js|css加载异常怎么办|

最近宝塔的香港节点CDN宝塔面板静态文件加速服务被DDOS攻击了。所以部分使用宝塔面板又开启了js/css加速的同学会遇到文件加载失败导致宝塔面板的样式失效。如下图:   宝塔面板js、CSS文件CDN加速失败 几个节点经常会出现异常,所以小白都有经验了。也怪宝塔树大招风,经常有小学生测试DDOS、CC攻击。 解决方法很简单,点击最下面的退出。再次登录的时候选择另外的加速节点即可。如果所有节点都失效了,那么可以选择修复面板。也就是在SSH中输入“bt”然后修复下面板。或者删除堡塔面板静态文件加速插件。 rm -rf /www/server/panel/plugin/static_cdn/ 删除脚本有风险,记得备份。建议选择修复面板。

宝塔面板Nginx 开启Brotli压缩|提高网站页面加载速度 建站必备 WordPress页面压缩加速

宝塔面板开启方法 1.安装libbrotli cd /www/server git clone https://github.com/bagder/libbrotli cd libbrotli ./autogen.sh ./configure make && make install 2.下载ngx_brotli模块及其依赖: 源码地址,是google开源的一个:https://github.com/google/brotli cd /www/server #下载brotli git clone https://github.com/google/ngx_brotli.git cd ngx_brotli #更新brotli git submodule update —init 3.先查看目前的Nginx版本信息,使用命令: nginx –V 大致输出内容: [[email protected] ~]# nginx –V nginx version: nginx/1.15.10 built by gcc 4.8.5 20150623 (Red Hat 4.8.5–36) (GCC) built with OpenSSL 1.1.1b 26 …

Linux 宝塔面板免费版开启 waf 防火墙的方法

1、进入宝塔面板,打开 软件管理 > Nginx > 设置 > 配置修改; 2、找到大约在第 13 行的 #include luawaf.conf;,去掉前面的 # 符号(“#”代表注释),保存并重启 Nginx。 3、恭喜你,已经成功开启了防火墙!可以试着访问 http://你的网址/?id=../etc/passwd,页面会弹出拦截提示,如下图: 那么问题来了:该怎么自定义这个防火墙的防护规则呢?别急,请跟我一起来! 还是在宝塔面板里头,打开面板的文件管理,进入 /www/server/nginx/waf 目录,里面的 config.lua 文件就是防火墙的配置文件。每一项的具体含义如下所示: RulePath = “/www/server/panel/vhost/wafconf/” –waf 详细规则存放目录(一般无需修改) attacklog = “on” –是否开启攻击日志记录(on 代表开启,off 代表关闭。下同) logdir = “/www/wwwlogs/waf/” –攻击日志文件存放目录(一般无需修改) UrlDeny=”on” –是否开启恶意 url 拦截 Redirect=”on” –拦截后是否重定向 CookieMatch=”off” –是否开启恶意 Cookie 拦截 postMatch=”off” –是否开启 POST 攻击拦截 whiteModule=”on” –是否开启 url 白名单 black_fileExt={“php”,”jsp”} –文件后缀名上传黑名单,如有多个则用英文逗号分隔。如:{“后缀名1″,”后缀名2”,”后缀名3″……} ipWhitelist={“127.0.0.1”} –白名单 IP,如有多个则用英文逗号分隔。如:{“127.0.0.1″,”127.0.0.2”,”127.0.0.3″……} 下同 ipBlocklist={“1.0.0.1”} …

WordPress通过MySQL数据库批量关闭开启文章评论功能

博客在更换主题后就关闭了文章评论模块,但是仍然有人利用接口恶意评论,今天教大家通过修改WordPress数据库批量关闭开启文章评论功能的办法,自从关闭评论功能后,本站已经没有收到任何垃圾评论了。 在WordPress数据库的posts数据表中,评论的开启有一个专门的字段comment_status管理,如果你有很多文章开启了评论,在WordPress后台设置关闭评论是没有作用的,因为WordPress后台关闭评论的功能只适用于关闭开启后发表的文章,并不会对之前的文章执行关闭操作。要想关闭只能挨着点开文章选择关闭,如果文章数量特别大,操作起来不仅费时还浪费精力,上次关闭博客的文章评论时,就有560多篇文章,所以我选择了直接操作WordPress的MySQL数据库来实现关闭功能,下面是操作步骤。 WordPress后台关闭新文章评论 打开WordPress网站后台,选择左侧设置选项,再选择其中的讨论选项,将其中关于文章默认设置的功能全部取消,即不允许评论。如下图   WordPress通过MySQL数据库批量关闭开启文章评论 这样新发布的文章就不会默认开启评论功能,然后我们对旧文章修改设置。 通过MySQL批量修改文章评论状态 在操作数据库前,切记一定要先备份数据库,否则难免发生意外,数据无价,诸位操作一定要注意。 打开数据库,这个打开方式随便你选择,是使用控制台打开还是使用phpmyadmin看大家喜好,这里为了方便我就用phpmyadmin操作了。选择你网站所在数据库中的posts数据表,这张表中存储的是你的所有文章数据,然后选择sql,输入如下代码点击执行: 关闭评论 update wp_posts set comment_status=’close’; 开启评论 update wp_posts set comment_status=’open’; 成功执行后所有已经发布的文章的评论功能都将被批量开启关闭。

微信扫一扫,分享到朋友圈

为 Nginx 开启 Geoip 模块以屏蔽特定国家|地区的访问