文档章节

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

xixingzhe
 xixingzhe
发布于 2017/06/02 15:25
字数 454
阅读 20
收藏 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
粉丝 2
博文 175
码字总数 46744
作品 0
西城
程序员
私信 提问
京东首席架构师:618大促网关承载十亿调用量背后的架构实践

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

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

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

八月下沙
2016/12/21
206
0
全面接入「人脸识别」,智慧城市公共服务的另一种思路

     摘要:“人脸识别从线上到线下,应用在城市公共服务中的标准场景(信息查询、身份验证、安检安防等),所有这些“更智慧”的举措都指向了便民、利民、惠民化改造。”      人脸...

人工智能有点意思
2017/09/22
0
0
EaglePHP 2.0更新日志(精简版发布)

EaglePHP,是一款开源、高效、面向对象的PHP MVC开发框架,完全基于PHP5可用于开发WEB程序和服务,借鉴国外优秀框架的设计思路,分层的设计思想使独立开发成为可能,建立模型推动代码的重 用...

maoxiaojian
2012/08/09
1K
6
jetty 在请求URI里传入非法字符,jetty会断开连接,导致nginx认为该节点不健康

jetty 在请求URI里传入非法字符(如直接一个16进制字节A1,非%A1,用抓包TCP工具发送),jetty抛出如下错误 8.1.0.RC1、 8.1.18.v20150929、 9.3好的 如果前面代理用nginx的proxynextupstre...

greki
2015/11/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Confluence 6 配置边栏

如果你具有空间的管理员权限,你可以对空间的变量进行自定义,让你的空间具有自己的空间标识(logo),修改显示的继承关系和在空间中添加快捷方式以帮助用户在空间中进行快速导航。 希望开始...

honeymose
19分钟前
1
0
Ubuntu18.04 安装MySQL

1.安装MySQL sudo apt-get install mysql-server 2.配置MySQL sudo mysql_secure_installation 3.设置MySQL非root用户 设置原因:配置过程为系统root权限,在构建MySQL连接时出现错误:ERROR...

AI_SKI
今天
3
0
3.6 rc脚本(start方法) 3.7 rc脚本(stop和status方法) 3.8 rc脚本(以daemon方式启动)

3.6-3.7 rc脚本(start、stop和status方法) #!/usr/bin/env python# -*- coding: utf-8 -*-# [@Version](https://my.oschina.net/u/931210) : python 2.7# [@Time](https://my.oschina.......

隐匿的蚂蚁
今天
3
0
Cnn学习相关博客

CNN卷积神经网络原理讲解+图片识别应用(附源码) 笨方法学习CNN图像识别系列 深度学习图像识别项目(中):Keras和卷积神经网络(CNN) 卷积神经网络模型部署到移动设备 使用CNN神经网络进行...

-九天-
昨天
5
0
flutter 底部输入框 聊天输入框 Flexible

想在页面底部放个输入框,结果键盘一直遮住了,原来是布局问题 Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("评论"), ...

大灰狼wow
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部