自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原少子杨

个人博客地址:iziyang.github.io,欢迎来坐坐

  • 博客(15)
  • 资源 (1)
  • 收藏
  • 关注

原创 Nginx 如何自定义变量?

之前的两篇文章 Nginx 变量介绍以及利用 Nginx 变量做防盗链 讲的是 Nginx 有哪些变量以及一个常见的应用。那么如此灵活的 Nginx 怎么能不支持自定义变量呢,今天的文章就来说一下自定义变量的几个模块以及 Nginx 的 keepalive 特性。通过映射新变量提供更多的可能性:map 模块功能:基于已有变量,使用类似 switch {case: … default: …} 的语法创建新变量,为其他基于变量值实现功能的模块提供更多的可能性模块:ngx_http_map_module

2020-06-21 10:30:42 3221

原创 听说你的资源被盗用了,那你知道 Nginx 怎么防盗链吗?

上一篇文章讲了 Nginx 中的变量和运行原理,下面就来说一个主要提供变量并修改变量的值的模块,也就是我们要讲的防盗链模块:referer 模块。简单有效的防盗链手段场景如果做过个人站点的同学,可能会遇到别人盗用自己站点资源链接的情况,这就是盗链。说到盗链就要说一个 HTTP 协议的 头部,referer 头部。当其他网站通过 URL 引用了你的页面,用户在浏览器上点击 URL 时,HTTP 请求的头部会通过 referer 头部将该网站当前页面的 URL 带上,告诉服务器本次请求是由谁发起的。例如

2020-06-14 15:29:57 278

原创 Nginx 的变量究竟是怎么一回事?

之前说了很多关于 Nginx 模块的内容,还有一部分非常重要的内容,那就是 Nginx 的变量。变量在 Nginx 中可以说无处不在,认识了解这些变量的作用和原理同样是必要的,下面几乎囊括了关于 Nginx 的所有变量,单独看起来可能比较枯燥,放心,后面依然有实战内容。Nginx 变量的运行原理围绕 Nginx 中的变量模块可以分为两类,一类是提供变量的模块,另外一类是使用变量的模块。提供变量的模块在 Preconfiguration 源代码中定义变量名以及可以解析出变量的方法使用变量的模

2020-06-13 18:39:28 226

原创 Nginx 的过滤模块是干啥用的?

上一篇文章我写了 Nginx 的 11 个阶段,很多人都说太长了。这是出于文章完整性的考虑的,11 个阶段嘛,一次性说完就完事了。今天这篇文章比较短,看完没问题。过滤模块的位置之前我们介绍了 Nginx 的 11 个阶段,在 content 阶段时,Nginx 会生成返回给用户的响应内容,对用户的响应内容,实际上还需要做再加工处理,Nginx 的过滤模块就是对响应内容进行再加工处理的。所以实际上过滤模块位于 content 阶段之后,log 阶段之前。我们先来看一段配置指令:limit_req zo

2020-05-27 08:33:13 813

原创 万字长文!一次性弄懂 Nginx 处理 HTTP 请求的 11 个阶段

title: Nginx 处理 HTTP 请求的 11 个阶段date: 2020-04-12 21:22:42tags: Nginxcategories: SRENginx 处理一个 HTTP 请求的全过程前面给大家讲了 Nginx 是如何处理 HTTP请求头部的,接下来就到了真正处理 HTTP 请求的阶段了。先看下面这张图,这张图是 Nginx 处理 HTTP 请求的示意图,虽然简单,但是却很好的说明了整个过程。Read Request Headers:解析请求头。Identify .

2020-05-21 09:28:24 1176

原创 Nginx 是如何处理 HTTP 头部的?

Nginx 处理 HTTP 头部的过程Nginx 在处理 HTTP 请求之前,首先需要 Nginx 的框架先和客户端建立好连接,然后接收用户发来的 HTTP 的请求行,比如方法、URL 等,然后接收所有的 Header,根据这些 Header 信息,才能决定由哪些 HTTP 模块处理请求。下面这张图,解释了 Nginx 在处理 HTTP 请求之前,所经历的一系列流程,强烈建议收藏保存。下面针对每...

2020-04-12 20:29:58 1001

原创 Nginx 的配置指令

我们已经了解了 Nginx 的基本命令和架构原理,下面该到最让人头疼也是最不容易理解的部分了,那就是 nginx.conf 这个配置文件,下面从 Nginx 的指令开始,一步步来讲解 Nginx 的配置。Nginx 指令先来看一个典型的 Nginx 配置文件示例。mainhttp { upstream { … } split_clients {…} map {…}...

2020-04-07 07:35:26 205

原创 Nginx 架构和基础原理

Nginx 的应用场景Nginx 的应用场景主要有三个:静态资源服务反向代理服务API 服务静态资源服务Nginx 可以通过本地文件系统提供静态资源的服务,例如纯静态的 HTML 页面等。反向代理服务很多应用服务的运行效率是很低的,QPS,TPS,并发等都是受限的,所以需要把很多应用服务组成一个集群,向用户提供高可用性的服务,这个时候需要 Nginx 的反向代理功能,而应用服务...

2020-03-22 22:20:37 138

原创 Nginx 入门及基本命令行操作

Nginx 介绍Nginx 是一个高性能的 Web 服务器,从 2001 年发展至今,由于 Nginx 对硬件和操作系统内核特性的深度挖掘,使得在保持高并发的同时还能够保持高吞吐量。Nginx 还采用了模块设计,有大量的第三方模块可以扩展 Nginx 的功能,因此 Nginx 的场景非常丰富,同时 Nginx 采用的是 BSD 许可证,赋予了 Nginx 最大的灵活性。简单来说,Nginx 具有...

2020-03-22 16:25:19 132

原创 HTTP 协议的前世今生

HTTP 协议全称是超文本传输协议(Hypertext Transfer Protocol),这里面需要理解三个地方:超文本、传输、协议,下面就从 HTTP 协议的历史讲起。20 世纪 60 年代,美国国防部高等研究计划署(ARPA)建立了 ARPA 网,它有四个分布在世界各地的节点,被认为是互联网的始祖。到了 70 年代,基于对 ARPA 网络的实践和思考,研究人员发明出了著名的 TCP/I...

2019-12-31 06:42:12 1088 1

原创 如何让 Python 变快

公众号:原少子杨程序快慢的标准就是时间复杂度。时间复杂度使用大 O 标记法,这个大家应该都清楚,下面是常见的增长量级:增长量级名称O(1)O(1)O(1)常量级O(logbn)O(log_bn)O(logb​n)对数级O(n)O(n)O(n)线性级O(nlogbn)O(nlog_bn)O(nlogb​n)nlognnlognnlognO(...

2019-04-19 16:41:56 229

原创 如何使 Python 更优雅

公众号:原少子杨条件表达式我们经常会使用条件语句来从两个值中选择一个,例如:if x > 0: y = math.log(x)else: y = float('nan')这几行代码会检查 x 是否为正数。如果为正数,则计算 math.log;如果为负数,math.log 会抛出 ValueError 异常。为了避免程序停止,则直接生成了“NAN”,一个特殊的...

2019-04-19 16:25:05 129

原创 Python 中的列表、字典和元组

公众号:原少子杨列表列表与字符串类似,也是一个序列,所不同的地方在于,字符串中的元素是字符,列表中的元素可以是任意类型,并且可以嵌套,例如,字典、元组、列表、字符串、数值类型都可以作为列表的元素。创建列表最简单的方式就是使用 [] 创建列表:>>> l = []>>> l[]>>> l = ['str', 2.0, 5, ...

2019-04-15 19:05:17 756

原创 操作符和递归

向下取整(//)和取余(%)两个数相除,传统的除法会得到一个浮点数,向下取整会得到一个整数。>>> minutes = 105>>> minutes / 601.75>>> minutes // 601>>> minutes % 6045取余可以用来获取一个数后一位或者后几位数字,例如 x % 10 可以...

2019-04-02 11:24:00 131

原创 给女朋友讲什么叫接口设计!

首先介绍一个库,Python 中有一个模块叫 turtle,是一个图形库,可以用来画一些简单的形状。我将基于这个图形库教会大家如何做接口设计。先来创建一个 turtle 对象import turtlebob = turtle.Turtle()turtle.mainloop()这段代码就会新建一个窗口,里面包含一个小箭头,这个小箭头就是画图的起点。下面介绍一下怎么用 turtle 来...

2019-03-26 19:27:25 757

Linux Shell脚本攻略(第2版

Linux 脚本编写,最经典一本Linux 脚本教程,值得大家阅读。

2018-03-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除