如何使用 Nginx 搭建一个具有缓存功能的反向代理服务呢

    上篇文章演示了,Nginx是如何做为一个静态服务器工作的;那么我们将这个服务器作为上游服务器;今天我们再搭建一个Nginx来作为反向代理,演示Nginx作为具有缓存功能的反向代理如何使用;
也就是说,使用nginx的两个功能:

  • 反向代理
  • 缓存

    由于上游服务器要处理非常复杂的业务逻辑,性能可能比较低,使用Nginx作为反向代理以后呢,可以由一台Nginx,把请求按照复杂均衡算法,代理给多台上游服务器工作,这样我们就实现了水平扩展,在用户无感知的情况下,我们添加更多的上游服务器,来提升我们的处理性能。
    而当上游服务器出现问题的时候,nginx可以自动的把请求,从有问题的服务器转交给正常的服务器来处理。

    首先,我们需要将上一篇文章中的静态资源dlib服务做一定的修改,只能本机访问8080端口;因此,修改完nginx.conf的内容,如下:

设置只能本机访问8080端口

重新启动服务

验证非本机是否能访问8080

接下来,我们使用OpenResty版本的nginx作为反向代理,因此,需要下载、安装此版本:
官网地址:
http://openresty.org/cn/linux-packages.html

安装OpenResty

OpenResty安装位置:
安装位置

配置文件内容

通过下面的命令,可以启动openresty版本的nginx
systemctl start openresty

因为nginx服务是部署在window下的虚拟机(centos7)里的, 因此需要在window下的hosts文件里,配置域名映射关系;

域名映射

接下来,我们访问以下配置文件中定义的域名:

访问域名

接下来重新看一下,proxy_pass的相关配置:

proxy_set_header命令说明

proxy_set_header 这个命令,起到什么作用呢?

因为有了一个反向代理,所以我们再获取一些变量或者一些值的时候,可能就会出问题;
比方说,一个tcp链接是由对端地址的,
但是有了反向代理以后,那么我们的反向代理与客户端是一个tcp链接,而反向代理与上游服务器又是另一个tcp链接,因此,如果取以前的变量remote_addr,
也就是tcp远端的连接地址,那么这个时候,在上游服务那里,取到的实际上是反向代理的地址,如果想获得浏览器的地址,作为限制浏览器访问速度等功能的一个作用时,其实是拿不到的,所以通过命令proxy_set_header命令,可以把一些值添加一条新的header,如X-Real-IP,发送到上游服务器;
host也是,用户访问的域名是直接在浏览器中输入的,我们即可以上游服务器来处理这个域名,也可以让反向代理处理域名

那么,proxy所有配置特性,可以在官网中查询,地址如下:
http://nginx.org/en/docs/

proxy_set_header特性网址-1

proxy_set_header特性网址-2

cache特性介绍

 因为nginx作为反向代理的时候,通常只有动态的请求,也就是不同的用户,访问同一个url, 看到的内容是不同的,
这个时候,才会交由上游服务器处理,但是,可能会有一些内容在某段时间内是不变的,这个时候为了减轻上游服务器的压力,我们就会让nginx把上游服务返回的内容,缓存一段时间,比如一天,在一天之内,即使上游服务器对这个内容的响应发生了变化,也不处理;只会拿已经缓存的内容,向浏览器进行响应,因为nginx的性能远远领先与上游服务器的性能,所以对于小的站点会有大的性能提升

二、配置缓存功能

好的,接下来,我们演示一下,如何配置一个缓存服务器:
先进行缓存类型的设置,如下图所示:

创建缓存

那么如何使用刚才配置的缓存呢?
使用缓存

修改完成openresty版本的配置文件后,

重新启动openresty服务:
systemctl restart openresty

三、 验证缓存

接下来,开始验证,缓存是否起作用?
先关闭掉以前的静态资源服务:
/sbin/nginx -s stop
再刷新页面

验证缓存服务器

(请注意:
如果以前的静态资源服务已经关闭了,请打开,然后访问一次静态资源,这样,缓存服务才能缓存静态资源; 然后,此时关闭静态资源服务,验证刚才配置的缓存是否有效果。)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,099评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,473评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,229评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,570评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,427评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,335评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,737评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,392评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,693评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,730评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,512评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,349评论 3 314
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,750评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,017评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,290评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,706评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,904评论 2 335

推荐阅读更多精彩内容