首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

NginxCDN加速之后,获取用户真实IP做并发访问限制的方法

为了解决这个窘迫,我想到了以前看过的Nginx访问限制。通过查资料,让我拜读了一枚大神的神作,感觉收获颇丰!于是转过来整理一下,分享给更多需要的人!...普通配置就是针对【用户浏览器】→【网站服务器】这种常规模式的nginx配置(没有任何CDN服务)。...---- 二、CDN之后 目前国内已经争相出现了百度云加速加速乐、360网站卫士以及安全宝等免费CDN。让我们这些小网站也能免费享受以前高大上的CDN加速服务。...因为普通配置中基于【源IP限制】的结果就是,我们把【CDN节点】或者【阿里云盾】给限制了,因为这里“源IP”地址不再是真实用户的IP,而是中间CDN节点的IP地址。...我们需要限制的是最前面的真实用户,而不是中间为我们做加速加速服务器。

3.7K30

Nginx限制IP访问频率

最近网站经常出现假死的状态,重启nginx可恢复,但是短时间后又出现,经过排查日志发现,有一个 IP 存在过度频繁请求的情况,十分钟左右的时间请求了12000次左右,导致了服务器资源无法释放,所以产生了假死现象...应急处理:在服务器安全组策略里禁止这个 ip 地址入站 一开始想通过程序控制访问频率,但是发现不能从根本解决问题,因为程序还是得要响应用户请求,所以想到了通过nginx来控制,于是在网上找到了如下解决方案...主要用到了nginx的ngx_http_limit_conn_module和ngx_http_limit_req_module两个配置: ngx_http_limit_conn_module:限制并发连接数...; ngx_http_limit_req_module:限制一段时间内同一IP的访问频率; 首先,我们为了防止别人来攻击,或者访问量异常过高导致服务器崩掉,就需限制访问量,如果是一瞬间的并发访问,那么我们就需要限制一秒之内的并发连接数...#限制ip每秒不超过20个请求,漏桶数burst为5 #brust的意思就是,如果第1秒、2,3,4秒请求为19个, #第5秒的请求为25个是被允许的。

5.7K10
您找到你想要的搜索结果了吗?
是的
没有找到

Nginx 限制IP并发数

前几天介绍了CC攻击及其防护方法,其中有一个方法是限制同一个IP的并发请求数量,以防止来自同一IP的大量高并发攻击 我的服务器一直没有配置这个限制,今天实验了一下,下面是配置过程 配置 示例 limit_conn...addr 2; 表示限制并发数量最高为2 这个数字可以根据自己实际情况设置 测试 写了一个测试用的 a.php 在另一台服务器用ab命令测试并发效果 # ab -c 5 -t 10 http...://192.2.4.31/a.php 这里指定并发数为5,大于上面配置的最高限制 回到nginx服务器查看访问日志 # tail -f access.log 可以看到很多请求的返回状态为503...作为键 zone=addr:10m 表示分配一个名为 'addr' 的区域,空间大小为 10M 相当于这个区域记录了IP的会话状态信息 (2)limit_conn limit_conn 指令用来限制并发连接数...limit_conn addr 2; 表示到名为 'addr' 这个区域中检索IP键,不允许有超过2个的会话状态,超过的话会返回503 通过这两项配置,就可以实现IP并发限制

3.6K50

公共CDNNginx启用Gzip全站CDN加速

分析思路 公用CDN加速公用js库 其实首先想到的是把公共的js库使用公共CDN加速,比如我的前端用到了echarts,js-cookie等。...nginx作为我的反向代理,负责了我服务器对外的服务,我们可以启用nginx的gzip功能,对静态文件进行压缩,包括图片,js,css等。...阿里全站CDN加速 阿里云的CDN介绍: 将源站内容分发至最接近用户的节点,使用户可就近取得所需内容,提高用户访问的响应速度和成功率。...我使用流量计费方式,购买了100G的流量包: 之后可以看到自己的流量包: 在CDN控制台,添加上自己的域名,写上IP,使得加速的域名能够访问你的服务器。...(这一点我是这么认为的,但并不肯定正确) 其它可行方法:Cloudflare免费CDN Cloudflare特别适合国外服务器网站的加速,经测试,我的阿里云服务器放在上面,加速效果并不是特别明显。

20.9K40

公共CDNNginx启用Gzip全站CDN加速

分析思路 公用CDN加速公用js库 其实首先想到的是把公共的js库使用公共CDN加速,比如我的前端用到了echarts,js-cookie等。...接下来,我们还剩下一些自己的js文件,这些是前端打包后的js,不能用公用CDN加速。...nginx作为我的反向代理,负责了我服务器对外的服务,我们可以启用nginx的gzip功能,对静态文件进行压缩,包括图片,js,css等。...阿里全站CDN加速 阿里云的CDN介绍: 将源站内容分发至最接近用户的节点,使用户可就近取得所需内容,提高用户访问的响应速度和成功率。...在CDN控制台,添加上自己的域名,写上IP,使得加速的域名能够访问你的服务器。 ? 登记好域名后,阿里云提示我们去域名解析的地方添加一个CNAME解析: ? 阿里云提供了CNAME指向的域名: ?

4.4K50

Nginx开启CDN获取用户真实IP

之前开了腾讯云的CDN之后就一直没注意过,用户的真实IP 直到昨天晚上收到一段异常攻击,我就翻了一下日志打算拉黑这部分IP,也没怎么注意IP是什么,直到今天中午休息的时候才发现网站打不开了 就看了一下宝塔的网站监控报表...,才发现每天IP就四十来个,基本全是广东、上海、天津这几个地方的,然后想起来可能是CDN的问题,之前一直没注意这个问题,因为购买了宝塔网站监控报表,也在全局设置-CDN headers配置了腾讯云CDN...的规则X-Forwarded-For,起初我还以为是没同步,我就同步了就没怎么管,直到现在下午有空测试了一下才发现还是腾讯云CDNIP,这就是宝塔的问题了,懒得反馈了 自己动手也就加两行代码的事情,在...Nginx配置规则的http段加上,就行了 set_real_ip_from 0.0.0.0/0; real_ip_header X-Forwarded-For;

1.9K30

Nginx 不受 CDN 服务影响获取访客真实 IP

获取和记录站点访客的真实 IP 对于站点日志的分析和安全策略的指定很有帮助,Nginx 默认的日志记录获取到的 IP 地址如果站点启用了 CDN 服务,那么这里的 IP 地址都是 CDN 服务器节点的...今天明月就给大家分享一个 Nginx 不受 CDN 服务影响获取访客真实 IP 的方法。 ? ?...好在明月以前折腾“Nginx 限制单个 IP 的并发连接数/速度”的时候知道通过 map 指令绕过 CDN 获取访客真实 IP(可参考哦『Nginx 限制单个 IP 的并发连接数改进适配开启 CDN 站点...』一文),由此让 Nginx 日志记录访客真实 IP 不受 CDN 服务影响的方法也就出来了,只需要在你的 Nginx 的配置文件 nginx.conf 里添加如下配置代码获取访客真实 IP 并赋值到一个变量...重启一下 Nginx 生效配置,这时候查看 Nginx 日志文件是不是访客 IP 都是真实 IP 了,不再是 CDN 节点 IP 了。要验证日志实时输出才可以看到确切效果,如下截图: ?

1.9K10

Nginx 不受 CDN 服务影响获取访客真实 IP

获取和记录站点访客的真实 IP 对于站点日志的分析和安全策略的指定很有帮助,Nginx 默认的日志记录获取到的 IP 地址如果站点启用了 CDN 服务,那么这里的 IP 地址都是 CDN 服务器节点的...今天明月就给大家分享一个 Nginx 不受 CDN 服务影响获取访客真实 IP 的方法。 ?...好在明月以前折腾“Nginx 限制单个 IP 的并发连接数/速度”的时候知道通过 map 指令绕过 CDN 获取访客真实 IP(可参考哦『Nginx 限制单个 IP 的并发连接数改进适配开启 CDN 站点...』一文),由此让 Nginx 日志记录访客真实 IP 不受 CDN 服务影响的方法也就出来了,只需要在你的 Nginx 的配置文件 nginx.conf 里添加如下配置代码获取访客真实 IP 并赋值到一个变量...重启一下 Nginx 生效配置,这时候查看 Nginx 日志文件是不是访客 IP 都是真实 IP 了,不再是 CDN 节点 IP 了。要验证日志实时输出才可以看到确切效果,如下截图: ?

2.6K40

获取CDNNginx的用户真实ip地址

目前问题:腾讯云CDN作为前端,Apache作为后端的情况下,Apache只能获取到腾讯云CDN前端的ip地址,而无法获取到用户的真实ip地址,在这种情况下,后端是Apache如何获取用户真实ip地址?...1.腾讯云CDN默认有提供X-Forwarded-For头部,用于记录客户端的真实ip地址,直接修改Apache的访问日志格式就可以使用 2.修改httpd.conf配置文件,添加X-Forwarded-For...地址 2.png Nginx前端:118.89.171.94 Apache后端:115.159.120.41 目前问题:Nginx作为前端,Apache作为后端的情况下,Apache只能获取到Nginx...1.Nginx前端配置 在nginx.conf配置文件中填加三个参数 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr...前端的ip地址 #RemoteIPInternalProxy 118.89.171.95 # 多个Nginx前端 #RemoteIPInternalProxy 118.89.171.96 # 多个Nginx

7.2K140

网站优化之自建CDN:通过Nginx反代自建CDN节点加速网站

前言 如果你的源站服务器在国外,又不想用cdn(因为太贵了)使用反代是一个比较好的选择。...(´∇ノ`*)ノ 正文 假设:源站域名fsacg.cn 源站ip111.111.111 反代服务器ip 000.000.000 首先我们需要新购一台服务器,要线路好,速度快,不需要配置多高。...我们点击文件,找到/etc/hosts,在最下面添加一行:111.111.111 fsacg.cn 左边的源站ip,右边是源站域名,中间有空格。...最后我们去源站域名控制台把A解析记录值修改为反代服务器ip就可以了。等待生效。 验证反代是否成功,可以对源站域名ping,看看返回的ip是不是反代服务器的。...最后 然后如果服务器有防火墙就把反向代理服务器IP加入白名单即可。其他无需设置。

23.7K40

cdn加速是什么?cdn加速有什么好处?

cdn加速这一词,前段时间,网上有许多以文章、图片、视频等形式作过相关报道,主要是为了响应国家号召“提网速降网费”而开放出来的一种网站网速加速服务,然而,很多人不是了解这个,接下来让我们一起了解下cdn...cdn加速有什么好处?别走开,答案在下文。 image.png cdn加速是什么? 关于“cdn加速是什么?”这个问题,我们可以从以下来理解。...内容分发网络的英文缩写就是cdn,为什么需要cdn加速呢?...cdn加速有什么好处? cdn加速的好处有以下这些。 1.提升该网站的排名。简单来说,一个网站打开速度越快,对浏览器是越欢迎的,相反,打开很慢,浏览器甚至可能拒绝该网站的搜索。 2.网站不瘫痪。...由于cdn加速技术可以把文件存储在不同服务器,可以减少网站因为带宽而产生的费用。 通过上文的介绍,我们对cdn加速是什么和cdn加速有什么好处的问题,有了一个初步的了解。

44.6K40

如何做cdn加速 cdn加速的作用

cdn加速是现如今非常火爆的加速方法,但是大家对如何做cdn加速并不是非常的了解。...然而网络加速器的出现能够解决这一难题,cdn加速器内部工作原理是网络数据的分发与传输,利用cdn加速网络数据传输不再是单一的传输模式,而是使用分时段多线程的传输方法。...因此现在在生活中cdn加速是很多服务器选择的优先加速模式。...如何做cdn加速 首先大家要通过网络服务器选择一个cdn加速的模块,在cdn加速模块中要输入自己的加速服务器域名,此时cdn加速模块会自动对域名进行解析。...如果最终生成了解析代码并且网络也提示解析成功,说明了服务器已经开始使用cdn加速。 通过上面的内容大家肯定学会了如何做cdn加速

120.3K20

NGINX中根据用户真实IP限制访问

需求 需要根据用户的真实IP限制访问, 但是NGINX前边还有个F5, 导致deny指令不生效. 阻止用户的真实IP不是192.168.14.*和192.168.15.*的访问请求....实现 备注: 关于deny指令的使用, 请参见我的另一篇文章: NGINX 实战手册-安全-访问控制 最简单的实现如下: 前置条件: 需要nginx前边的load balancer设备(如F5)开启...allow 192.168.14.0/24; allow 192.168.15.0/24; deny all; 根据nginx官方文档, deny指令是根据" client address"进行限制的...,而是服务端根据客户端的ip指定的,当你的浏览器访问某个网站时,假设中间没有任何代理,那么网站的web服务器(Nginx,Apache等)就会把remote_addr设为你的机器IP,如果你用了某个代理...但是实际场景中,我们即使有代理,也需要将$remote_addr设置为真实的用户IP,以便记录在日志当中,当然nginx是有这个功能,但是需要编译的时候添加--with-http_realip_module

2.5K20

NGINX 中根据用户真实 IP 进行限制

需求 需要根据用户的真实 IP 进行限制, 但是 NGINX 前边还有个 F5, 导致 deny 指令不生效....阻止用户的真实 IP 不是 192.168.14.* 和 192.168.15.* 的访问请求....allow 192.168.14.0/24; allow 192.168.15.0/24; deny all; 根据nginx官方文档, deny 指令是根据「client address」进行限制的....,而是服务端根据客户端的 ip 指定的,当你的浏览器访问某个网站时,假设中间没有任何代理,那么网站的 web 服务器(Nginx,Apache 等)就会把 remote_addr 设为你的机器IP,如果你用了某个代理...但是实际某些特殊场景中,我们即使有代理,也需要将 $remote_addr 设置为真实的用户 IP,以便记录在日志当中,当然 nginx 是有这个功能,但是需要编译的时候添加 --with-http_realip_module

2.4K30

Nginx限制IP访问只允许特定域名访问

为了我们的服务器安全,我们需要禁止直接使用 IP 访问我们的服务器,我们可以借助 [Nginx]完成 1、找到 nginx 的配置文件 cd /usr/local/nginx/conf/ 找到 nginx.conf...文件 编辑它 2、添加新的 server # 禁止ip访问 server { listen 80 default_server; listen 443 ssl default_server...server_name _; return 403; } 注意是在所有的 server 前面添加一个新的 server,如图所示 这里我们开启了 http 和 https 的监听,如果是直接使用 ip...访问的,我们将会返回 403 状态码给客户端 3、修改 server nginx.conf 文件中默认配置信息为 server { listen 80; server_name.../nginx -s reload 浏览器输入 IP 地址,出现如下 说明我们的配置已经成功了 我们输入域名试试 输入域名能够正常访问,说明我们的配置生效,此时就限制IP 的访问,只允许特定域名访问了

8.8K30
领券