
深入学习nginx
文章平均质量分 53
one-fly
海阔凭鱼跃,天高任鸟飞
展开
-
初探nginx架构
众所周知,nginx性能高,而nginx的高性能与其架构是分不开的。那么nginx究竟是怎么样的呢?这一节我们先来初识一下nginx框架吧。nginx在启动后,在unix系统中会以daemon的方式在后台运行,后台进程包含一个master进程和多个worker进程。我们也可以手动地关掉后台模式,让nginx在前台运行,并且通过配置让nginx取消master进程,从而可以使nginx以单进转载 2015-03-21 23:12:44 · 391 阅读 · 0 评论 -
利用nginx proxy_cache进行网站缓存托底配置
众所周知nginx proxy_cache可以对请求的response进行缓存,起到类似CDN的作用,甚至有比CDN提供更多的功能,还可以用来缓存托底数据,当后台tomcat挂掉的时候,nginx直接将缓存中的托底数据返回给用户。原创 2016-05-18 16:48:22 · 7079 阅读 · 0 评论 -
nginx proxy_cache配置说明
#定义代理缓存路径 ,缓存文件保存路径 缓存初始大小和最大值 缓存时间proxy_cache_path d:\code\cache levels=1:2 keys_zone=cache1:10m max_size=20m inactive=1m; location / {#配置上面定义的keys_zone的值proxy_cache cache1;原创 2016-05-17 21:23:04 · 541 阅读 · 0 评论 -
nginx的请求处理
nginx使用一个多进程模型来对外提供服务,其中一个master进程,多个worker进程。master进程负责管理nginx本身和其他worker进程。所有实际上的业务处理逻辑都在worker进程。worker进程中有一个函数,执行无限循环,不断处理收到的来自客户端的请求,并进行处理,直到整个nginx服务被停止。worker进程中,ngx_worker_process_cycl转载 2015-03-22 14:48:45 · 689 阅读 · 0 评论 -
nginx基础概念-request
这节我们讲request,在nginx中我们指的是http请求,具体到nginx中的数据结构是ngx_http_request_t。ngx_http_request_t是对一个http请求的封装。 我们知道,一个http请求,包含请求行、请求头、请求体、响应行、响应头、响应体。http请求是典型的请求-响应类型的的网络协议,而http是文件协议,所以我们在分析请求行与请求头,以及输出响应行转载 2015-03-21 23:30:34 · 442 阅读 · 0 评论 -
nginx的配置系统
nginx的配置系统由一个主配置文件和其他一些辅助的配置文件构成。这些配置文件均是纯文本文件,全部位于nginx安装目录下的conf目录下。配置文件中以#开始的行,或者是前面有若干空格或者TAB,然后再跟#的行,都被认为是注释,也就是只对编辑查看文件的用户有意义,程序在读取这些注释行的时候,其实际的内容是被忽略的。由于除主配置文件nginx.conf以外的文件都是在某些情况下才使用转载 2015-03-22 14:23:58 · 517 阅读 · 0 评论 -
nginx的模块化体系结构
nginx的内部结构是由核心部分和一系列的功能模块所组成。这样划分是为了使得每个模块的功能相对简单,便于开发,同时也便于对系统进行功能扩展。为了便于描述,下文中我们将使用nginx core来称呼nginx的核心功能部分。nginx提供了web服务器的基础功能,同时提供了web服务反向代理,email服务反向代理功能。nginx core实现了底层的通讯协议,为其他模块和nginx进程构建了基转载 2015-03-22 14:39:08 · 953 阅读 · 0 评论 -
nginx基础概念-lingering_close
lingering_close,字面意思就是延迟关闭,也就是说,当nginx要关闭连接时,并非立即关闭连接,而是先关闭tcp连接的写,再等待一段时间后再关掉连接的读。为什么要这样呢?我们先来看看这样一个场景。nginx在接收客户端的请求时,可能由于客户端或服务端出错了,要立即响应错误信息给客户端,而nginx在响应错误信息后,大分部情况下是需要关闭当前连接。nginx执行完write()系统调用把转载 2015-03-22 12:30:30 · 599 阅读 · 0 评论 -
nginx基础概念-pipeline
在http1.1中,引入了一种新的特性,即pipeline。那么什么是pipeline呢?pipeline其实就是流水线作业,它可以看作为keepalive的一种升华,因为pipeline也是基于长连接的,目的就是利用一个连接做多次请求。如果客户端要提交多个请求,对于keepalive来说,那么第二个请求,必须要等到第一个请求的响应接收完全后,才能发起,这和TCP的停止等待协议是一样的,得到两个响转载 2015-03-22 12:27:49 · 1152 阅读 · 0 评论 -
nginx基础概念-keepalive
在nginx中,对于http1.0与http1.1也是支持长连接的。什么是长连接呢?我们知道,http请求是基于TCP协议之上的,那么,当客户端在发起请求前,需要先与服务端建立TCP连接,而每一次的TCP连接是需要三次握手来确定的,如果客户端与服务端之间网络差一点,这三次交互消费的时间会比较多,而且三次交互也会带来网络流量。当然,当连接断开后,也会有四次的交互,当然对用户体验来说就不重要了。而ht转载 2015-03-22 11:16:48 · 470 阅读 · 0 评论 -
nginx基础概念-connection
在nginx中connection就是对tcp连接的封装,其中包括连接的socket,读事件,写事件。利用nginx封装的connection,我们可以很方便的使用nginx来处理与连接相关的事情,比如,建立连接,发送与接受数据等。而nginx中的http请求的处理就是建立在connection之上的,所以nginx不仅可以作为一个web服务器,也可以作为邮件服务器。当然,利用nginx提供的co转载 2015-03-21 23:16:00 · 498 阅读 · 0 评论 -
使用Nginx缓存静态文件
使用Nginx缓存静态文件原创 2017-03-30 10:48:07 · 3612 阅读 · 0 评论