【NGINX入门】3.Nginx的缓存服务器proxy_cache配置

【NGINX入门】3.Nginx的缓存服务器proxy_cache配置,第1张

本文介绍NGINX缓存机制,配置和参数说明。

如图所示,nginx缓存,可以在一定程度上,减少源服务器的处理请求压力。因为静态文件(比如css,js, )中,很多都是不经常更新的。nginx使用proxy_cache将用户的请求缓存到本地一个目录。下一个相同请求可以直接调取缓存文件,就不用去请求服务器了。毕竟,IO密集型服务的处理是nginx的强项。

Nginx的缓存加速功能是由proxy_cache(用于反向代理和静态缓存)和fastcgi_cache(PHP动态缓存)两个功能模块完成。

Nginx缓存特点:

先上个例子:

因为我是在一台服务器上做试验,所以用了两个端口 80 和 90 进行模拟两台服务器之间的交互。

接下来讲一下配置项:

这里我设置了 、 css 、 js 静态资源进行缓存。

当用户输入 http://wangxiaokaivip 域名时,解析得到 ip:port 的访问地址。 port 默认为80。所以页面请求会被当前server截取到,进行请求处理。

当解析到上述文件名结尾的静态资源,会到缓存区获取静态资源。

如果获取到对应资源,则直接返回数据。

如果获取不到,则将请求转发给 proxy_pass 指向的地址进行处理。

这里直接处理 90 端口接受到的请求,到服务器本地目录 /mnt/blog 下抓取资源进行响应。

细心的读者应该发现,我在第二段例子里,留了个彩蛋 add_header wall "hey!guys!give me a star" 。

add_header 是用于在报头设置自定义的信息。

所以,如果缓存有效的话,那么静态资源返回的报头,一定会带上这个信息。

(1)Nginx系列教程(3)nginx缓存服务器上的静态文件

https://yqaliyuncom/articles/752967

(2)proxy_cache

nginx 反向代理之 proxy_cache https://wwwcnblogscom/yyxianren/p/10832172html

(3)Nginx使用upstream负载均衡和proxy_cache缓存实现反向代理

https://blog51ctocom/13770206/2163952

Nginx在不依赖第三方模块的前期下,主要的功能有:

①、正向代理

正向代理,是在用户端的。比如需要访问某些国外网站,我们可能需要购买***。并且***是在我们的用户浏览器端设置的(并不是在远端的服务器设置),浏览器先访问***地址,***地址转发请求,并最后将请求结果原路返回来。

②、反向代理

客户端向服务器发送请求时,会首先经过Nginx服务器,由服务器将请求分发到相应的WEB服务器。正向代理是代理客户端,而反向代理则是代理服务器,Nginx在提供反向代理服务方面,通过使用正则表达式进行相关配置,采取不同的转发策略,配置相当灵活,而且在配置后端转发请求时,完全不用关心网络环境如何,可以指定任意的IP地址和端口号,或其他类型的连接、请求等。

③、负载均衡

当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况

④、动静分离

在Web开发中,通常来说,动态资源其实就是指那些后台资源,而静态资源就是指HTML,JavaScript,CSS,img等文件。

一般来说,都需要将动态资源和静态资源分开,将静态资源部署在Nginx上,当一个请求来的时候,如果是静态资源的请求,就直接到nginx配置的静态资源目录下面获取资源,如果是动态资源的请求,nginx利用反向代理的原理,把请求转发给后台应用去处理,从而实现动静分离。

在使用前后端分离之后,可以很大程度的提升静态资源的访问速度,同时在开过程中也可以让前后端开发并行可以有效的提高开发时间,也可以有些的减少联调时间。

Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;Nginx可以作为一个HTTP服务器进行网站的发布处理,另外Nginx可以作为反向代理进行负载均衡的实现。

1、全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。

2、events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。

3、http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。

4、server块:配置虚拟主机的相关参数,一个http中可以有多个server。

5、location块:配置请求的路由,以及各种页面的处理情况。

6、缓存控制字段cache-control的配置说明 ( https://wwwcnblogscom/kevingrace/p/10459429html )

HTTP协议的Cache -Control指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置 Cache-Control并不会影响另一个消息处理过程中的缓存处理过程。

请求时的缓存指令包括: no-cache、no-store、max-age、 max-stale、min-fresh、only-if-cached等。

响应消息中的指令包括: public、private、no-cache、no- store、no-transform、must-revalidate、proxy-revalidate、max-age。

no-cache: 数据内容不能被缓存, 每次请求都重新访问服务器, 若有max-age, 则缓存期间不访问服务器

no-store: 不仅不能缓存, 连暂存也不可以(即: 临时文件夹中不能暂存该资源)

private(默认): 只能在浏览器中缓存, 只有在第一次请求的时候才访问服务器, 若有max-age, 则缓存期间不访问服务器

public: 可以被任何缓存区缓存, 如: 浏览器、服务器、代理服务器等

max-age: 相对过期时间, 即以秒为单位的缓存时间

no-cache, private: 打开新窗口时候重新访问服务器, 若设置max-age, 则缓存期间不访问服务器

设置以分钟为单位的绝对过期时间, 优先级比Cache-Control低, 同时设置Expires和Cache-Control则后者生效 也就是说要注意一点: Cache-Control的优先级高于Expires

expires起到控制页面缓存的作用,合理配置expires可以减少很多服务器的请求, expires的配置可以在http段中或者server段中或者location段中 比如控制等过期时间为30天

客户端必须设置正向代理服务器,当然前提是要知道正向代理服务器的IP地址,还有代理程序的端口。

"它代理的是客户端,代客户端发出请求",是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。

正向代理的用途:

(1)访问原来无法访问的资源,如Google

(2) 可以做缓存,加速访问资源

(3)对客户端访问授权,上网进行认证

(4)代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息

多个客户端给服务器发送的请求,Nginx服务器接收到之后,按照一定的规则分发给了后端的业务处理服务器进行处理了。此时~请求的来源也就是客户端是明确的,但是请求具体由哪台服务器处理的并不明确了,Nginx扮演的就是一个反向代理角色。

客户端是无感知代理的存在的,反向代理对外都是透明的,访问者并不知道自己访问的是一个代理。因为客户端不需要任何配置就可以访问。

反向代理,"它代理的是服务端,代服务端接收请求",主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息。

反向代理的作用:

(1)保证内网的安全,通常将反向代理作为公网访问地址,Web服务器是内网

(2)负载均衡,通过反向代理服务器来优化网站的负载

如何实现Nginx的反向代理?

这句话什么意思?

意思是说当客户机来访问服务器的时候,服务器本身并不出面接待,而是将客户的请求转高给手下的子服务器(小弟)负责接待。

比如:你访问wwwbaiducom,其实并不时百度总服务器接待的你,而是百度的代理服务器接待的你,不过他们的服务是一样的,提供同样的页面;

如是搭建Nginx服务才能实现这样的效果呢?

搭建一个最简单,最基础nginx代理服务器,需要一台代理服务,两台子服务器,XX台客户机来作验证;

操作流程如下:

第一步、服务器和客户机配好IP地址,其中Nginx代理服务器需要配置两张网卡,两个IP地址,一个和客户机通信,一个和子服务器通信;

代理服务器与客户机和子服务器都分别配置同网段IP地址;

例如:

代理服务器:19216845    19216825

子服务器         :1921682100    1921682200

客户机    :192168410

这样配置的好处是: 可以负载均衡,保障用户的访问体验,保障上网速度,同时也保障了,即便有一台服务器坏掉了,另一台服务可以接待用户访问;

第二步、代理服务器上安装Nginx服务软件,两台子服务器上安装HTTPD服务并写入相应的网页,然后启动服务;

yum  -y install  httpd        ##安装httpd服务;

echo  "罗贵"  >    /var/www/html/indexhtml       ##写一个简单的网页

/configure    --user=nginx    --group=nginx   --with-http_ssl_module

make   &&   make   install     ##编译安装Nginx

第三步、修改Nginx的配置文件;

vim   /usr /local /nginx /conf /nginxconf

http   {      ##在文件中找到http开头的行,并在http下面随意找两行添加下面两行的内容;

            upstream    luogui    {        ##luogui是集群名字,可以自由定义,upstream 上游的意思;翻译过来就是在上游建立一个名字为luogui的集群,集群中包含下述IP地址;

                      server   1921682100:80;

                      server    1921682200:80;

}

server    {

        listen        80;

        server_name   wwwluoguicom;     ##域名,可以自由定义;

location   ^/php$  {    ##匹配网页地址的意思,匹配以 / 开头php结尾的网页文件;

        proxy_pass  http://luogui;        ##通过proxy代理服务器将用户的请求转发给luogui集群服务器;(注:优先级最高,系统会优先处理这条命令)

             }

                             }

第四步、测试效果;

firefox   http://19216845  或者  本地测试   curl  http://19216845 

结果应该是暂停任何一台子服务器,客户机访问网页都没有问题;

以上

                                                    (EDN)

祝:开心!

罗贵

2019-04-05于深圳

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Ramblerru站点(俄文:Рамблер)开发的,第一个公开版本010发布于2004年10月4日。

其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 104发布。

反向代理的优势:

1、加快了对内部服务器的访问速度

在内部服务器前放置两台反向代理服务器,分别连接到教育网和公网,这样公网用户就可以直接通过公网线路访问学校服务器,从而避开了公网和教育网之间拥挤的链路。同时反向代理服务器的缓存功能也加快了用户的访问速度。

2、节约了有限的IP资源

校园网内部服务器除使用教育网地址外,也会采用公网的IP地址对外提供服务,公网分配的IP地址数目是有限的,如果每个服务器有分配-个公网地址,那是不可能的,通过反向代理技术很好地解决了IP地址不足的问题。

Nginx是一个高性能的Web和反向代理服务器,它具有有很多非常优越的特性:

作为负载均衡服务器 :Nginx既可以在内部直接支持Rails和PHP,也可以支持作为HTTP代

理服务器对外进行服务。Nginx用C编写,不论是系统资源开销还是CPU使用效率都比

Perlbal要好的多。

作为邮件代理服务器 :Nginx同时也是-一个非常优秀的邮件代理服务器(最早开发这个产品的目的之-也是作为邮件代理服务器),Lastfm 描述了成功并且美妙的使用经验。

Nginx安装非常的简单,配置文件非常简洁(还能够支持per语法),Bugs非 常少的服务器:

Nginx启动特别容易,并且几乎可以做到724不间断运行,即使运行数个月也不需要重新启

动。你还能够在不间断服务的情况下进行软件版本的升级。

处理静态文件,索引文件以及自动索引;

反向代理加速(无缓存), 简单的负载均衡和容错;

FastCGI,简单的负载均衡和容错;

模块化的结构。过滤器包括gzipping, byte ranges, chunked responses,以及SSiI-ilter 。

在SSI过滤器中,到同一个proxy或者FastCGI的多个子请求并发处理;

SSL和TLSSNI支持;

使用外部HTTP认证服务器重定向用户到IMAP/POP3后端;

使用外部HTTP认证服务器认证用户后连接重定向到内部的SMTP后端;

认证方法:

POP3: POP3 USER/PASS, APOP, AUTH LOGIN PL AIN CRAM-MD5;

IMAP: IMAP LOGIN;

SMTP: AUTH LOGIN PLAIN CRAM-MD5;

SSL支持;

在IMAP和POP3模式下的STARTTLS和STLS支持;

FreeBSD 3x, 4x, 5x, 6x i386; FreeBSD 5x, 6x amd64;

Linux22, 24, 26 i386; Linux 26 amd64;

Solaris 8 i386; Solaris 9 i386 and sun4u; Solaris 10 i386;

MacOS X (104) PPC;

一个主进程和多个工作进程。工作进程是单线程的,且不需要特殊授权即可运行;

kqueue (FreeBSD 41+), epoll (Linux 26+), t signals (Linux 2219+), /dev/poll (Solaris711/99+), select,以及poll支持;

kqueue支持的不同功能包括EV_ _CLEAR, EV_ DISABLE (临时禁止事件),NOTE_ _LOWAT, EV_ EOF, 有效数据的数目,错误代码;

sendfile (FreeBSD 31+), sendfile (Linux 22+), sendfile64 (Linux 2421+),和sendfilev(Solaris 8 7/01+)支持;

输入过滤(FreeBSD 41+)以及TCP_ _DEFER_ ACCEPT (Linux24+)支持;

10,000 非活动的HTTP keep-alive连接仅需要25M内存。

最小化的数据拷贝操作;

基于IP和名称的虚拟主机服务;

Memcached的GET接口;

支持keep-alive和管道连接;

灵活简单的配置;

重新配置和在线升级而无须中断客户的工作进程;

可定制的访问日志,日志写入缓存,以及快捷的日志回卷;

4xx-5xx错误代码重定向;

基于PCRE的rewrite重写模块;

基于客户端IP地址和HTTP基本认证的访问控制;

PUT, DELETE,和MKCOL方法;

支持FLV (Flash视频) ;

带宽限制;

内嵌的perl

通过aio read() 1 aio _write() 的套接字工作的实验模块,仅在FreeBSD下。

对线程的实验化支持,FreeBSD 4x的实现基于rfork()

Nginx主要的英语站点是htp://sysoevru/en/

本人有自己整理大数据学习的功课,闲置着也无用了。

获取方式:

私信方式:

第一步,点击头像。

第二部:头像旁边有一个私信按钮,发送{学习资料}即可!

是个服务器,主要是php常用到的服务器。

Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Ramblerru 站点开发的,第一个公开版本010发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 104发布。

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、新浪、网易、腾讯等。

优点是可以在大多数 Unix like OS 上编译运行,并有 Windows 移植版。 Nginx 的140稳定版已经于2013年4月24日发布,一般情况下,对于新建站点,建议使用最新稳定版作为生产版本,已有站点的升级急迫性不高。Nginx 的源代码使用 2-clause BSD-like license。

Nginx 是一个很强大的高性能Web和反向代理服务器,它具有很多非常优越的特性:

在高连接并发的情况下,Nginx是Apache服务器不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达 50,000 个并发连接数的响应,感谢Nginx为我们选择了 epoll and kqueue作为开发模型

Nginx是lgor Sysoev为俄罗斯访问量第二的ramblerru站点设计开发的。从2004年发布至今,凭借开源的力量,已经接近成熟与完善。

Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。并且支持很多第三方的模块扩展。

Nginx的稳定性、功能集、示例配置文件和低系统资源的消耗让他后来居上,在全球活跃的网站中有1218%的使用比率,大约为2220万个网站。

1、全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。

2、events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。

3、http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。

4、server块:配置虚拟主机的相关参数,一个http中可以有多个server。

5、location块:配置请求的路由,以及各种页面的处理情况。

Nginx常用功能。

1、Http代理,反向代理:作为web服务器最常用的功能之一,尤其是反向代理。

Nginx在做反向代理时,提供性能稳定,并且能够提供配置灵活的转发功能。Nginx可以根据不同的正则匹配,采取不同的转发策略,比如文件结尾的走文件服务器,动态页面走web服务器,只要你正则写的没问题,又有相对应的服务器解决方案。

。并且Nginx对返回结果进行错误页跳转,异常判断等。如果被分发的服务器存在异常,他可以将请求重新转发给另外一台服务器,然后自动去除异常服务器。

2、负载均衡

Nginx提供的负载均衡策略有2种:内置策略和扩展策略。内置策略为轮询,加权轮询,Ip hash。扩展策略,就天马行空,只有你想不到的没有他做不到的啦,你可以参照所有的负载均衡算法,给他一一找出来做下实现。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 【NGINX入门】3.Nginx的缓存服务器proxy_cache配置

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情