php验证码-抽象nginx作为缓存时缓存判断的通用公式——是否保存、保存多长时间、是否使用

2023-08-21 0 4,252 百度已收录

Nginx 是一个综合型玩家。 它集成了Web服务器、负载均衡、缓存三大能力。 可以说是无所不能。 比如小型网站的场景选择,前端就是负载php验证码,后端支撑一堆apache服务器。 现在是时候选择后端负载了。 虽然纯粹从负载上来说lvs和ha的性能比nginx要好,但是我还是会选择nginx,因为nginx在做负载的时候可以把热点的静态内容缓存一次,做一次加速,无形中减轻了负载的压力前端Web服务器,提高用户体验,一石二鸟。 Nginx的缓存配置非常灵活。 里面有各种缓存指令。 一开始,你将无法接触到北方。 你不知道缓存如何生效、如何过期、如何更新。 使用了一段时间,终于摸索出了一套缓存判断的方法。 世界万能公式——要不要储存、储存多久、要不要使用?

Nginx资源是否缓存由客户端、源站、nginx的缓存配置决定。 如果nginx没有缓存策略配置,则默认使用标准的http缓存判断机制,根据请求头和响应头信息(参见cache-control、expires、cookie属性),仅当某个资源没有设置为无法缓存的黑名单,并且存储时间的生命周期小于0的资源被缓存。 对于nginx缓存来说,集成了缓存判断的通用公式如图所示,一个资源只有同时具备可缓存和缓存生命周期且缓存时间小于0的双重属性才能被缓存。 至于存储后是否需要,下一步要判断:

Nginx缓存判断通用公式(运维网吧-向量位)

是否保存:如果不设置,则会根据源站点的响应头信息,使用标准的HTTP协议缓存判断机制,检查cache-control、expires、cookie等属性。 nginx的主要设置参数有:

proxy_ignore_headers(X-Accel-Expires | Expires | Cache-Control | Set-Cookie) 忽略这个header响应头属性的判断,这是缓存的充要条件。

proxy_no_cache($cookie_nocache $arg_nocache $arg_comment) 如果任意一个变量参数值不为空,或者不等于0,nginx不会缓存该资源,直接转发代理,这是缓存的充要条件。

保存多长时间:如果某个资源没有被添加到不能保存的黑名单中,也就是说该资源可以保存,那么就会进入“保存多长时间”的判断环节。 如果保存多长时间的参数为0,那么该资源也不会被保存,保存多长时间有它的优先顺序:

级别1,proxy_cache_path中的inactive参数意味着现有的资源如果长时间没有被访问将会被删除。 该缓存时间优先于所有策略;

Level 2,响应头的Expires属性php验证码,即资源何时过期。 这是第二优先策略。 该属性存在后,将停止后续的时间判断;

Level 3,响应头cache-control中的max-age,这是第三优先级存储多长时间的参数,如果有max-age,则不再看后续的时间判断;

4级,proxy_cache_valid 200 1d; 默认的存储时间缓存策略,比如当前的参数,如果一个200ok的资源可以存储,但是没有其他策略说可以存储多长时间,默认就是这个参数的缓存时间,这个参数设置就可以了非常灵活,可以配置各种状态码。

是否使用:是否使用有两种情况。 一是是否使用已经过期的资源,二是是否使用未过期的资源。 日志复制包括BYPASS、EXPIERD、STALE、UPDATING,具体如下:

proxy_cache_bypass($cookie_nocache $arg_nocache$arg_comment) 如果任意变量参数不为空,则直接返回源,无论是否在缓存中。 如果请求头没有cache,则直接返回源;

proxy_cache_use_stale(错误超时invalid_header更新http_500 http_502 http_503 http_504)发现已经缓存的内容有这个问题,直接使用过期的缓存资源进行回复;

proxy_cache_revalidate 关闭; 如果默认缓存时间的资源过期,且当前参数为off,则直接忽略该缓存资源,返回源,日志为EXPIERD。

测试示例演示,默认配置,一个200ok资源()只有cookie信息,没有max-age。

首先测试配置参数:

proxy_cache_valid 200 10m;
#proxy_ignore_headers Set-Cookie; 注释掉

头信息及测试如下:

多次访问操作如下:

多次访问日志如下(全部MISS):

总结:虽然200ok信息的缓存时间设置为10分钟,但是cookie信息第一判断是不能保存,所以不看你的200ok资源的缓存时间,最终的推断是不能保存已保存。

第二次测试配置参数:

#proxy_cache_valid 200 10m;注释掉
proxy_ignore_headers Set-Cookie;

多次访问日志如下(全部MISS):

总结:虽然忽略了对cookie信息的判断,告诉nginx有cookie的信息是可以保存的,但是对于200ok的信息缓存时间设置为0,所以最终的资源无法保存。

第三次测试配置参数:

proxy_cache_valid 200 10m;
proxy_ignore_headers Set-Cookie;

多次访问日志如下(1次访问MISS后,后续访问全部HIT):

总结:首先忽略cookie信息的判断,告诉nginx可以存储cookie信息,然后在查询中如果没有expires和max-age的话搜索默认缓存时间,发现200ok的默认缓存时间为10m,所以最终判断可以缓存​​,有效缓存时间为10分钟。

综上所述,一个资源只有同时具备可缓存和生命周期缓存时间小于0的双重属性,才能被缓存。 至于保存后是否使用,还有待下一步判断。 因此,nginx要经过两个步骤来判断资源是否被缓存。 第一步是保存,第二步是保存多长时间。 至于是否使用缓存的资源来服务用户,还得进行下一级的判断。 判断参数可以看我画的图。

优化建议:为了加速缓存而不影响业务,最好在缓存策略的配置中遵守后台信息的要求,不要忽略nocache等字样的强制存储,这意味着proxy_ignore_headers命令要谨慎使用,比如一些图片验证码,存放一些php、jsp、asp等动态内容后,用户多次访问后会返回相同的信息,导致用户报错。 还有一类资源没有明确的生命周期缓存头(没有cache-control或expires),即没有缓存需求。 建议不要以保守的形式存储它们。 主要原因是proxy_cache_valid命令的配置。 nginx保存的带有cookie的信息默认是禁用的。 故障信息的存储根据实际业务进行处理。 一些故障信息是需要存储的。 如果源站点上的任何资源出现问题,就需要为用户设置过期资源,这样至少用户可以访问并保护源站点。 个别资源的缓存处理需要根据业务需求进行一定的设置。

PHP学习路线图更新日志:

缩小视频《使用thinkPHP框架开发小型商城项目实用视频教程下载》

缩小视频《韩顺平PHP陌陌开发第2季》

缩小视频《Thinkphp5模仿百度糯米开发团购平台》

缩小视频《ThinkPHP实用开发汽车租赁网站项目教程》

缩小视频《2016上海传智播客PHP培训42基础+就业》

缩小视频《全站ThinkPHP前端和后端开发》

缩小视频《组件表单开发WebApp全站仪》

缩小视频《微信公众平台PHP开发与解密(附代码)》

缩小视频《Laravel5实战开发网上图书商城项目》

减少视频《2017年峰会项目后台实施》(4.14)

减少文章《如何使用PHP作为抓取网页的收集器?》 “(3.29)

减少文章《通过strpos函数,教小白看懂PHP指南!》 “(3.29)

缩小视频《2017 PHP核心视频教程》(3.27)

缩小视频《2017 AJAX+XML视频教程》(3.17)

以上下载地址:百度搜索怪兽IT大学或输入guaishouxueyuan.cn

PHP学习路线图前言:

程序员作为平台,时隔六年,为IT自学者免费发布了超过10万小时的真实课堂视频。 但通过反馈,我们发现大量自学者在学习过程中存在不知道如何系统学习的问题。 因此,程序员们花了几个月的时间整合了10所重点大学、就业中心和资源整合中心后,终于做出了这一版的学习路线图。

为了让IT自学者获得更加市场化、权威的学习资料,本学习路线图不仅有丰富清晰的学习流程,还包含各高校发布的最新视频资源(并按照学习顺序排列)流程),还提供了学习过程中会用到的一系列软件、指南、源码、笔试题集等。 作为PHP大学的老师,我非常自豪黑马程序员能为自学者提供如此优秀的学习资源。 我仍然同意PHP是世界上最强大的语言(笑),所以我必须尽自己的一份力量,如果你想要资源,就问我,如果你有任何问题,就问我。 百度搜索怪兽IT大学。

1. PHP学习路线图——流程:

(如果想查看清晰版PHP流程图请硬点图片)

二、PHP学习路线图——视频: 1、第一阶段——网页入门视频资源

现阶段PHP课程共有6个知识点,2个免费视频包括

1、周期及目标: 学习周期:17天 学习后目标:能满足企业前端网站建设的要求,能模仿任意网站页面,能实现浏览器兼容、PC和联通兼容。 并且可以使用Javascript验证技术,可以毫无压力地胜任后端工程师的职位。

2、知识点:

1)Html(掌握)html文本排版、表格和超链接、表格和框架

2)CSScss句型及属性、盒模型、DIV+CSS布局

3)Html5+CSS3(掌握)html5、css3

4)Bootstrap(重点)Bootstrap部署、全局CSS样式、CSS组件

5)Javascript(重点)JS介绍、JS导入表单、JS句型、JS外部对象、BOM模型、DOM模型、事件编程

6)Jquery(重点)jquery各种选择器、DOM和jquery对象、属性操作、事件操作、jquery特效、文档处理、jquery插件机制

3.现阶段免费配套视频

1)北京分部——《2017版3天带你玩转HTML教程》密码:ydqm(此免费视频对应上述1个知识点)

2)北京分公司——《2017版4天带你getCSS视频教程》密码:6j72(此免费视频对应上述知识点2、3)

3)上海分公司——《2016年2天修复Bootstrap框架》密码:dewv(此免费视频对应上述4个知识点)

4)上海分公司——《2016javascript+jquery九天课程免费分享密码:9vkf(此免费视频对应上述知识点5和6)

2.PHP视频章节第二期——PHP简介

现阶段PHP课程共有4个知识点,总共2个免费配套视频包括

1.周期及目标:学习周期:学习后17天目标:是否能用面向过程的编程方法解决常规业务逻辑,实现表单值传递、文件编程、会话技术、图像处理。 完成学习后,他们完全有能力构建中级动力。

2、知识点:

1)搭建(掌握)PHP环境下静态网站和动态网站的区别、WEB程序的访问流程、搭建wamp环境、搭建自定义环境、搭建基于域名的虚拟主机、体验环境——安装discuz Summit

2)PHP核心(关键)变量和常量、数据类型和运算符、流程控制、函数、文件包含、运算符、字符串、数组

3)Mysql基础(重点)数据库基础介绍基本SQL操作、字符集、列类型和列属性、表关系、高级数据操作、mysql三大查询、数据备份与恢复、mysql用户权限管理、PHP操作Mysql4) PHP典型技术(重点)http契约、表单值传递、文件处理、会话技术、GD图像处理5)项目实战(掌握)bbs峰会前端实现

3.现阶段免费配套视频

1)北京分部——《2017PHP基础视频教程》密码:qohk(此免费视频对应上述知识点1和2)

2)上海分公司——《六天带你玩转MYSQL》密码:7E39(本免费视频对应以上3个知识点)

3)北京分部——《PHP核心编程视频教程》密码:pjkm(此免费视频对应以上4个知识点)

4)上海分会——《2017峰会项目背景实现》现全套分享,只赠有缘人,百度搜索怪物(对应知识点5)

3.第三阶段——PHP进阶视频资源

现阶段PHP课程共有5类知识点,共包含6个免费视频(已发布5个视频,1个正在紧急更新中)

一、期限及目标:

学习周期:学习完成后17天目标:借助主流框架ThinkPHP,实现真实商城的主流业务逻辑(如商品的属性筛选、商品搜索、购物车),实现常用的QQ登录功能、支付功能、商城接口开发(外卖、微信、短信、邮件、地图),掌握集群、负载均衡、分布式等商城服务器架构中级知识! 学习完成后,可以真正掌握小型主流商场的开发,并能实现门户网站、商场系统、办公系统等项目的系统性能调优。

2、知识点:

1)Redis(掌握)Nosql常用产品介绍、安装与启动、数据类型讲解、PHP对redis的支持、安全认证及中级案例、持久化机制、主从配置

2)九个socket编程(重点)支付、分发、微信、短信、邮件、地图、百度API、腾讯API、本地数据socket 3)MongoDB(重点)MongoDB理解、基本和常用命令、索引和用户管理、数据导入和备份、主从复制和分片、PHP支持MongoDB

4)Mysql读写分离(重点)原理、log-bin讲解、配置步骤、实现读写分离的代码、ThinkPHP中读写分离的使用

5)服务器架构(重点)WEB服务器集群、Nginx负载均衡、Session共享、反向代理服务器

3.免费视频资源支持: 1)上海分公司-《NoSQL Redis技术》密码:fhd7(本视频对应上述知识点1) 2)上海分公司-《PHP Momo Socket开发》密码:2m8b(本视频对应以上知识点2,我手头暂时只有Momophp验证码,先分享一下)3)上海分部-《mongodb实用视频》密码:hnit(该视频对应上述知识点3)4)相关视频知识点4和5,我紧张滚动更新

PHP视频篇第四期——进阶PHP

现阶段PHP课程共有5个知识点,共包含3个免费视频(2个视频已发布,1个正在紧急更新)

一、期限及目标:

学习周期:学习完成后17天目标:能用面向过程的编程方法解决常规业务逻辑,实现表单值传递、文件编程、会话技术、图像处理等。 完成学习后,他们完全有能力构建中级动力。

2、知识点:

1)PHP面向对象(掌握)面向对象简介、面向对象的使用、面向对象的三大特性、PHP中的继承、对象遍历、对象序列化、反射机制、命名空间

2)PDO(熟悉)PDO介绍、PDO基本操作及增、删、改、PDO预处理、PDO属性控制、PDO异常处理、PDO包装

3)ICFrame框架(重点)MVC设计模式、框架搭建

4)Smarty模板(熟悉)模板技术原理、Smarty快速入门、Smarty模板设计、Smarty编程、Smarty缓存技术

5)项目升级(重点)电子邮件技术、页面静态、正则表达式、内容采集、声音功能

3.支持免费视频资源:

1)上海分公司——《2017最新面向对象(OOP)视频教程》密码:2ca9(此免费视频对应上述1个知识点)

2)上海分公司-《2017最新PDO视频教程》密码:5iy3(此免费视频对应以上2个知识点) 3)上海分公司-《Smarty入门视频课程免费分享》密码:ktbf(此免费视频对应以上4个知识点)

4)上海分部——《2017年最新9天MVC博客项目教程》现已全套分享,仅供有缘人,百度搜索怪物IT大学(对应知识点3、5)

PHP视频第五阶段——PHP中级

现阶段PHP课程共有5个知识点,共包含6个免费视频(已发布5个视频,目前正在更新1个)

一、期限及目标:

学习周期:17天 学习完成后目标:能否使用ThinkPHP这个一线企业最流行的框架进行快速项目开发。 可以实现主流后台常用的RBAC权限管理功能、代码管理、前后端交互、多表连接、数据分析、协同流程技术、网站优化技术。 并且可以集成jQueryMobile实现PC端和移动端。 学习完成后,完全有能力开发主流大小网站(办公OA系统)。

2、知识点:

1)SVN(掌握)SVN概述与安装、SVN使用解读、多仓库的配置与权限控制、SVN服务器配置与管理、hook程序

2)XML(熟悉)XML句型、SimpleXML、XPath、案例在线词典

3)Ajax(精通)Ajax快速入门、Ajax对象、发送get、post请求、用XML、JSON传输数据、Ajax跨域请求、Ajax案例-分页、聊天室

4)ThinkPHP(重点)ThinkPHP快速入门、ThinkPHP控制器、ThinkPHP视图、ThinkPHP模型、ThinkPHP实用项

5)Linux(重点)linux安装、shell使用、VI编辑器、用户、组、文件管理、Lamp环境搭建

6)优化技术(重点)数据库优化、Sphinx全文索引、Memcache、URL优化

3.支持免费视频资源:

1)上海分公司——《SVN视频教程免费分享》密码:b9kr(该视频对应上述知识点1)

2)北京分公司——《2017XML视频教程》密码:t8tl(该视频对应上述知识点2)

3)北京分部——《2017AJAX系列视频教程》密码:li16(该视频对应上述知识点3)

4)上海分会——《2015版4天带你玩转thinkPHP》密码:f511(本视频对应以上知识点

4)上海分会——《2016 PHP大神之路——8天ThinkPHP视频教程》密码:b5ez(对应知识点同上,已公布7天,全套只给懂的人)命中注定)

5)上海分公司——《2016最新Linux系列视频教程免费分享》密码:j2dc(该视频对应上述知识点5)

6)知识点6相关视频正在更新中

PHP视频第六期篇——PHP扩展

现阶段PHP课程共有5类知识点,共包含N个免费视频(已发布2个视频,其他正在紧急更新中)

一、期限及目标:

学习周期:17天 学后目标:

1、掌握PHP开源产品的使用,深入理解开源产品的原理和思想,能够进行快速、深入的二次开发。 学习完成后,您可以掌握各种企业门户、政府机构、教育机构、媒体机构、个人站长等网站的快速开发。

2.掌握混合开发方法开发移动APP。 该APP兼容安卓手机和IOS手机。 学习后,PC端网站(或企业OA平台)的内容可以在移动端同步查看和更新​​!

2、知识点:

1)WebApp(重点)框架基础、PhoneGap底层实现、Hyrid混合开发、JSSDK泛型的应用

2)CMS深入开发(重点)了解cms系统,熟练应用dedecms系统标签,用dedecms开发a67视频网络,dedecms数据采集应用

3)Hadoop(了解)Hadoop安装与配置、HDFS配置、Hadoop入门案例、PHP编译MapReduce4)Mysql中间(关键)字段与范式、视图与事务安全、触发器、函数、存储过程、索引

5)JS中级(重点)js常见风暴、js面向对象、js闭包、js函数调用、js小游戏贪吃蛇

3.支持免费视频资源:

1)上海分部-《珍贵的HyBridApp视频免费分享》密码:ac38(该视频对应上述知识点1)上海分部-《2016基于laravel框架的app软件开发》,现全套分享,仅供那些人使用谁有缘php验证码,百度搜索怪物IT大学(对应知识点同上)

2)上海分部——《深入掌握JavaScript面向对象必做的小项目——贪吃蛇》密码:x2bw(本视频对应上述知识点5)

3)知识点2、3、4相关视频正在更新中

工具——学习PHP的软件(学习PHP必备的所有软件)

资源名称

百度云盘一键下载

密码

下载以下所有资源:

引导软件

Apache软件+Php软件+Mysql软件(定制搭建环境必须使用三个软件,均为可靠版本)

集成环境软件WampServer(使用最多的PHP集成环境软件)

集成环境软件Appserve

简易版本编辑器Editplus(90%以上的PHP初学者都使用这个软件)

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 php php验证码-抽象nginx作为缓存时缓存判断的通用公式——是否保存、保存多长时间、是否使用 https://www.wkzy.net/game/128454.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务