文档章节

页面接口防刷 解决思路一nginx

xixingzhe
 xixingzhe
发布于 2017/06/02 15:25
字数 454
阅读 19
收藏 0

线上环境 很多接口 如果不做缓存 可能导致有人拿到url  每秒几万次的访问后台程序,导致系统down机.

此处, nginx可以加一层缓存.   

expires起到控制页面缓存的作用,合理的配置expires可以减少很多服务器的请求
要配置expires,可以在http段中或者server段中或者location段中加入
PS. 可以限制单个接口的访问

location ~ ^/user/ {

proxy_pass http://user.example.com;

expires 1; //1h //1d //expires max; 部分文件看需要可以永久 }

nginx wiki  http://nginx.org/en/docs/http/ngx_http_core_module.html#location
 

语法: expires [time|epoch|max|off]

默认值: expires off

作用域: http, server, location

使用本指令可以控制HTTP应答中的“Expires”和“Cache-Control”的头标,(起到控制页面缓存的作用)。

可以在time值中使用正数或负数。“Expires”头标的值将通过当前系统时间加上您设定的 time 值来获得。

epoch 指定“Expires”的值为 1 January, 1970, 00:00:01 GMT。

max 指定“Expires”的值为 31 December 2037 23:59:59 GMT,“Cache-Control”的值为10年。

-1 指定“Expires”的值为 服务器当前时间 -1s,即永远过期

“Cache-Control”头标的值由您指定的时间来决定:

  • 负数:Cache-Control: no-cache
  • 正数或零:Cache-Control: max-age = #, # 为您指定时间的秒数。

"off" 表示不修改“Expires”和“Cache-Control”的值

demo:

控制图片等过期时间为30天,当然这个时间可以设置的更长。具体视情况而定

比如

location~ \.(gif|jpg|jpeg|png|bmp|ico)$ {

           expires 30d;

       }

控制匹配/resource/或者/mediatorModule/里所有的文件缓存设置到最长时间

比如

      

       location ~ /(resource|mediatorModule)/ {

                root    /opt/demo;

                expires max;

        }

另附其他方案: Nginx限制某个IP同一时间段的访问次数 nginx webcache配置 http://blog.sina.com.cn/s/blog_664553710100zmxr.html

本文转载自:http://www.cnblogs.com/wangdaijun/p/6264288.html

共有 人打赏支持
xixingzhe
粉丝 1
博文 170
码字总数 45595
作品 0
西城
程序员
京东首席架构师:618大促网关承载十亿调用量背后的架构实践

618大促,我们的网关承载了几十亿的流量和调用,在这种情况下,网关系统必须保证整个系统的稳定性和高可用,保证高性能和可靠,以支撑业务。我们面临的是一个非常复杂的问题,基于这种复杂问...

高级架构师
04/22
0
0
mysql并发插入重复数据问题的解决思路

一、问题描述 涉及到的功能是一个表单页面添加数据,后端接口的功能就是往数据库中写入表单的数据,系统属于后台系统,但因为跟钱有关,添加的数据要保证同一次填写的数据只能入一次库。 测试...

八月下沙
2016/12/21
206
0
电商抢购秒杀系统的设计_1_应用场景分析

电商抢购秒杀系统的设计1应用场景分析 概述 所谓知已知彼,百战不殆,在开始详细介绍实战中的抢购秒杀系统时,我们了解一些抢购秒杀系统系统面临的尴尬与难点。另外需要说明一点,下面的内容...

蜗牛奔跑
2015/07/02
0
2
Web安全指南 | 八招应对短信验证码攻击

如今,大量的网站、网站、手机app都在使用短信验证码作为验证用户身份的安全技术措施。尤其在年底,企业的促销、抽奖、互动活动会迎来一个高峰期,用到短信验证码的场景非常频繁。 但近期,阿...

正禾
03/12
0
0
给裸接口加一道防护,避免恶意盗刷和爬取

WEB应用是开放的,WEB前端代码也是公开的,和后端交互的接口如果没有经过特殊处理(加密/token),那么就是裸露的,只要知道api地址,那么就能随便获取应用数据。这样应用数据就很容易被人爬...

navyxie
2016/06/04
1K
4

没有更多内容

加载失败,请刷新页面

加载更多

下一页

OSChina 周日乱弹 —— 种族不同,禁止交往

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @小小编辑:推荐歌曲《苏菲小姐》- 鱼果 《苏菲小姐》- 鱼果 手机党少年们想听歌,请使劲儿戳(这里) @貓夏:下大雨 正是睡觉的好时候 临睡前...

小小编辑
33分钟前
32
5
Python 搭建简单服务器

Python动态服务器网页(需要使用WSGI接口),基本实现步骤如下: 1.等待客户端的链接,服务器会收到一个http协议的请求数据报 2.利用正则表达式对这个请求数据报进行解析(请求方式、提取出文...

代码打碟手
35分钟前
0
0
Confluence 6 删除垃圾内容

属性(profile)垃圾 属性垃圾的定义为,一个垃圾用户在 Confluence 创建了用户,但是这个用户在自己的属性页面中添加了垃圾 URL。 如果你有很多垃圾用户在你的系统中创建了属性,你可以使用...

honeymose
今天
0
0
qduoj~前端~二次开发~打包docker镜像并上传到阿里云容器镜像仓库

上一篇文章https://my.oschina.net/finchxu/blog/1930017记录了怎么在本地修改前端,现在我要把我的修改添加到部署到本地的前端的docker容器中,然后打包这个容器成为一个本地镜像,然后把这...

虚拟世界的懒猫
今天
1
0
UML中 的各种符号含义

Class Notation A class notation consists of three parts: Class Name The name of the class appears in the first partition. Class Attributes Attributes are shown in the second par......

hutaishi
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部