京东一面:Nginx 禁止国外 IP 访问网站!

news/2024/5/9 22:06:54/文章来源:https://blog.csdn.net/zxlyx/article/details/125253010

先来说说为啥要写这篇文章,之前小编看了下nginx 的访问日志,发现每天有好多国外的IP地址来访问我的网站,并且访问的内容基本上都是恶意的。因此 我决定 禁止国外IP 来访问我的网站

想要实现这个功能有很多方法,下面我就来介绍基于 NGINX的ngx_http_geoip2模块 来禁止国外IP 访问网站

一、安装geoip2扩展依赖

[root@ddkk ~]# yum install libmaxminddb-devel -y

二、下载ngx_http_geoip2_module模块

​[root@ddkk tmp]#  git clone https://github.com/leev/ngx_http_geoip2_module.git
[ro tmp]# 

三、解压模块到指定路径

我这里解压到/usr/local 目录下

 

四、安装nginx 模块

首先说明下环境,我的nginx 版本是 1.16 , 在网上查了下 安装 ngx_http_geoip2 模块至少需要 1.18 版本及以上,因此此次安装我是 升级nginx1.18,添加 ngx_http_geoip2 模块。

下载nginx 1.18 版本

[root@ddkk tmp]# wget http://nginx.org/download/nginx-1.18.0.tar.gz

解压nginx1.18 软件包并 升级为 nginx1.18 ,添加 ngx_http_geoip2 模块

需要注意:

1、升级nginx, 添加nginx 模块 只需要 编译 然后 make 不需要 make instll 不然线上的nginx 会被新版本nginx 完完整整的替换掉

2、编译前 需要看下 nginx 当前安装了哪些模块

[root@ddkk tmp]# /usr/local/nginx/sbin/nginx -V

nginx version: nginx/1.16.0built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)built with OpenSSL 1.0.2k-fips 26 Jan 2017TLS SNI support enabledconfigure arguments: --with-http_stub_status_module --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-stream

编译安装

[root@ddkk tmp]# tar -xf nginx-1.18.0.tar.gz 
[root@ddkk tmp]# cd nginx-1.18.0/
[root@ddkk nginx-1.18.0]# ./configure --with-http_stub_status_module \--prefix=/usr/local/nginx \--user=nginx --group=nginx --with-http_ssl_module --with-stream \--add-module=/usr/local/ngx_http_geoip2_module
[root@ddkk nginx-1.18.0]# make
[root@ddkk nginx-1.18.0]# cp /usr/loca/nginx/sbin/nginx /usr/loca/nginx/sbin/nginx1.16    #备份
[root@ddkk nginx-1.18.0]# cp objs/nginx /usr/local/nginx/sbin/    #用新的去覆盖旧的
[root@ddkk nginx-1.18.0]# pkill nginx     #杀死nginx
[root@ddkk nginx-1.18.0]# /usr/local/nginx/sbin/nginx    #再次启动Nginx

查看nginx 版本 以及安装的模块

[root@ddkk nginx-1.18.0]# /usr/local/nginx/sbin/nginx -V

nginx version: nginx/1.18.0built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)built with OpenSSL 1.0.2k-fips 26 Jan 2017TLS SNI support enabledconfigure arguments: --with-http_stub_status_module --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-stream **--add-module=/usr/local/ngx_http_geoip2_module**

五、下载最新的IP地址数据库文件

模块安装成功后,还要在 Nginx 里指定数据库,在安装运行库时默认安装了两个,位于 /usr/share/GeoIP/ 目录下,一个只有 IPv4,一个包含 IPv4 和 IPv6:

登录www.maxmind.com 网址,创建账户 下载最新的库文件(账户创建就不演示了)

点击左侧 ,Download Files

通过Nginx来实现禁止国外IP访问网站

选择GeoLite2 Country ,点击 Download GZIP 下载即可

通过Nginx来实现禁止国外IP访问网站

上传到 /usr/share/GeoIP/ 下并解压

 

六、配置nginx 配置文件

修改前 先备份配置文件

[root@ddkk ~]# cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf-bak[root@ddkk ~]# vim /usr/local/nginx/conf/nginx.conf

在http 中添加 几行,定义数据库文件位置

geoip2 /usr/share/GeoIP/GeoLite2-City.mmdb {
auto_reload 5m;
$geoip2_data_country_code country iso_code;
}map $geoip2_data_country_code $allowed_country {default yes;CN no;
}

通过Nginx来实现禁止国外IP访问网站

在server 中的 location 下 添加 条件

如果满足IP 是国外IP 就 执行下面的return 动作,我这里定义了3种, 注释了其中两个。

当访问IP 是国外IP ,直接返回404

if ($allowed_country = yes) {# return https://www.baidu.com;# return /home/japan;return 404;}

通过Nginx来实现禁止国外IP访问网站

修改完毕后, 检测下配置文件,重新加载下 nginx

[root@ddkk ~]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[roo@ddkk ~]# /usr/local/nginx/sbin/nginx -s reload

7、模拟测试验证

使用海外节点的服务器去访问网站

这里我的IP 是 来自于韩国

通过Nginx来实现禁止国外IP访问网站

可以看到访问网站报错 404 Not Found

 

通过Nginx来实现禁止国外IP访问网站

我们再来看下nginx 的访问日志

"13.125.1.194 - - [14/Aug/2020:16:15:51 +0800] "GET /favicon.ico HTTP/1.1" **404** 548 "https://www.ddkknj.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36"通过Nginx来实现禁止国外IP访问网站

到此我们通过Nginx来实现禁止国外IP访问网站 就结束了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_746543.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MOSS 2010:Visual Studio 2010开发体验(34)——工作流开发最佳实践(六):网站工作流...

我们前面花了几篇文章介绍了工作流的概念,以及如何设计可重用的工作流(可重用和全局可重用).如果你对这些话题还不是很清楚,可以先参考的链接 MOSS 2010:Visual Studio 2010开发体验(26)——工作流开发概述…

借助HttpCombiner让你的网站加速

借助HttpCombiner让你的网站加速 上一篇 < 利用Microsoft Ajax Minifier在服务器端对静态资源进行自动化压缩 > 得到不少有意义的交流和建议,最近也在不停的尝试做一些网站优化的工作,我会陆续的写一些或者翻译一些优化方面的文章跟大家交流,一方面提供给有需要的朋友一…

Firefox浏览器查看SEO数据最好用的插件

虽然我觉得我的firefox浏览器是越来越笨重&#xff0c;但是一些必不可少的插件我还是装了的。今天我给大家推荐SearchStatus插件&#xff0c;可以说它是Firefox 上最优秀的SEO 插件。 安装地址&#xff1a;SearchStatus 安装后&#xff0c;工具条默认显示在右下角的浏览器状态栏…

网站结构优化的基本方法

网站结构优化的基本方法网站结构优化就是对网站页面的存储方式&#xff08;物理结构&#xff09;、内部链接关系&#xff08;逻辑结构&#xff09;进行合理的调整&#xff0c;以减少网站的目录层级&#xff0c;优化普通页面与重要页面之间的链接深度&#xff0c;增加重要页面的…

经典伤感配乐鉴听-人生的旅途|最佳音乐推荐网站-MP3火力网|音乐试听|唱片导购|

导读&#xff1a; 作者&#xff1a;MP3火力网 发布时间&#xff1a;2007-06-15 09:52:33 来源&#xff1a;MP3火力网(注:如需停止部份页面音乐播放,请按一下浏览器停止(X)按键.重播按F5刷新页面) 唱片推荐 经典伤感配乐鉴听&#xff0d;人生的旅途推荐音乐:推荐指数 8.8(最高…

LNMP禁止输入IP直接访问网站的设置

查看原文&#xff1a;http://www.hellonet8.com/1131.html 从博主刚开始接触建站到现在已经1年多了&#xff0c;期间用过免费空间和虚拟主机&#xff0c;最后也最终转战到VPS上了。总体感觉虚拟主机性能和VPS的差距还是比较大的&#xff0c;而且VPS自主性比虚拟主机多很多&…

个人第一个在线看电影电视网站

查看原文&#xff1a;http://www.hellonet8.com/1245.html 今天章郎虫把我的一个在线电影电视网站给正式上线了。这个网站是纯采集的&#xff0c;所以基本没用多少时间。电影站的名字也是随便写的&#xff0c;叫“ZJ影视资源网”&#xff0c;网址是http://video.chekiang.info/…

18个优秀的在线图片编辑服务网站 | 可能吧

导读&#xff1a; 说起编辑图片&#xff0c;可能大多数人都会马上想起强大的Photoshop。事实上&#xff0c;除了购买或下载盗版的PS之外&#xff0c;你还可以使用很多优秀在线图片编辑服务&#xff0c;这些网站大多数都是免费的。对于大部分的人来说&#xff0c;它们提供的功能…

PHP-COOKIE保存网站访问量

2019独角兽企业重金招聘Python工程师标准>>> <?php global $count; $count1; if(!isset($_COOKIE["visittime"])){ setcookie("visittime",date("y-m-d H:i:s")); setcookie("visitcount",1); echo "欢迎你第一次…

重新设计的网站的14个例子

网站重新设计更为复杂&#xff0c;因为会碰到原设计的设计规范&#xff0c;这是不可避免的。在不影响功能和网站内容的情况下&#xff0c;设计人员需要阐述一个新的观点或者给它一个新的外观。虽然重新设计一个网站是一个具有挑战性的任务&#xff0c;但是这对爱好设计师工作的…

Nginx屏蔽个别User-Agent蜘蛛访问网站的方法

查看原文&#xff1a;http://www.sijitao.net/1930.html 对于做国内站的我来说&#xff0c;我不希望国外蜘蛛来访问我的网站&#xff0c;特别是个别垃圾蜘蛛&#xff0c;它们访问特别频繁。这些垃圾流量多了之后&#xff0c;严重浪费服务器的带宽和资源。通过判断user agent&am…

使用七牛云解决gravatar头像拖慢wordpress网站打开速度的问题

查看原文&#xff1a;http://www.sijitao.net/1968.html 之前博主使用的是多说镜像来解决gravatar头像打不开和拖慢网站打开速度的问题&#xff0c;但运行一段时间后发现多说头像不怎么稳定&#xff0c;有时候头像还是打不开。所以这次试用七牛云存储来解决&#xff0c;整体思路…

Zabbix 增加HTTPS网站SSL证书过期时间监控

原文地址&#xff1a;https://zhangnq.com/3106.html 随着HTTPS网站的普及&#xff0c;SSL证书的过期时间需要重点关注。如果使用lets encrypt的免费证书&#xff0c;可以配置自动更新程序。不过我觉得最好还是做下监控&#xff0c;因为有时候自动续期可能会出现问题。zabbix实…

Nginx和PHP网站防CC攻击解决方案步骤举例

昨天接到客户服务器告警,看到一个nginx+php网站正在遭受CC攻击,导致服务器复制居高不下,正常业务访问大多数时候出现502错误。 CC攻击是 DDOS(分布式拒绝服务) 的一种,DDoS是针对IP的攻击,而CC攻击的是网页。CC攻击来的IP都是真实的,分散的。数据包都是正常的数据包,攻…

2011年国外最受欢迎的15个Torrent网站

2019独角兽企业重金招聘Python工程师标准>>> 面向全球电子商务知识库网站eBizMBA公布了2011年国外最受欢迎的15个Torrent网站&#xff1a; 1 ISOHunt (http://www.isohunt.com) eBizMBA排名第392&#xff0c;估计每月访客12000000人&#xff0c;竞争力排名第713&…

使用Bootstrap 3开发响应式网站实践01,前期准备、导航区域等

“使用Bootstrap 3开发响应式网站实践”系列&#xff0c;将使用Bootstrap 3.2制作一个自适应网站&#xff0c;无论是在电脑、平板&#xff0c;还是手机上&#xff0c;都呈现比较好的效果。在电脑浏览器上的最终效果如下&#xff1a; 在手机上的呈现效果如下&#xff1a; 本篇主…

一些网站 http://ychun.w.googlepages.com/pages

大家都可以说话的地方&#xff1a; 电子产品世界&#xff1a;http://bbs.edw.com.cn nios论坛&#xff1a;http://www.niosforum.com 嵌入式论坛&#xff1a;http://www.anywlan.com/tony/bbs PLD论坛&#xff1a;http://www.pld.com.cn/bbs/index.asp EDAboard&#xff1a;htt…

国外网站设计:25个小众的电子商务网站案例

对于电子商务网站来说&#xff0c;网站的设计和布局的可用性对于产品的销售会产生巨大的影响&#xff0c;另外就是产品带给访客的第一印象也很重要。一个设计良好的电子商务网站会为用户提供一个更愉快的体验&#xff0c;并让他们更容易浏览&#xff0c;搜索&#xff0c;并完成…

微软特邀讲师 徐雷 为受邀为世界500强达丰集团讲授《微软ASP.NET MVC5企业网站开发课程》...

老徐FrankXuLei 非常荣幸受邀为微软大企业客户世界500强达丰集团&#xff08;广达电脑&#xff09;信息化部讲授《微软ASP.NET MVC5企业网站开发课程》缘分2005年在公司篮球队和达丰集团打过友谊赛达丰集团全球第一大笔记本电脑制造商。上海60000多人.技术人员非常客气.企业非常…

Azure公开发布: 基本网站等级, 虚拟网络动态路由网关与点对站, 虚拟网络增强功能...

收到来自Azure的邮件&#xff0c;中国地区的3个功能公开发布&#xff0c;其实在这之前我已经测试了相关功能&#xff0c;并且已经将v-net to v-net ***发布为博文。 以下为邮件内容&#xff1a; 1. Azure基本网站等级 标准网站等级的客户将可以获得更多增值服务。 基本网站等级…