openresty安装并搭建具有缓存功能的反向代理服务

一,openresty安装并实现简单服务

1, 下载openresty

wget https://openresty.org/download/openresty-1.15.8.1.tar.gz

2, 查看目录结构
3, 编译安装
4, 添加lua代码(获取用户相关信息)
在这里插入图片描述
在这里插入图片描述

二,搭建具有缓存功能的反向代理服务

任务------把静态资源服务作为上游服务,在搭建一台nginx,作为反向代理

原因:
上游服务要处理非常复杂的业务逻辑且强调开发效率,所以性能并不怎么样,用nginx反向代理后,可以由一台nginx把请求按照负载均衡算法代理给多台上游服务器工作,这样就实现了水平扩展,在用户无感知的情况下,添加更多的上游服务器来提升性能,当某台上游服务器出现问题时,nginx把请求自动从有问题的服务器转交给正常的服务器

1,搭建反向代理服务

将之前的nginx服务器变更为上游服务器,而上游服务器通常对公网不提供访问(在listen前加上ip地址,127.0.0.1,表示只能本机的进程打开8080端口),停掉nginx进程,再重新打开,防止之前打开的端口仍然可以使用

然后配置openresty的nginx.conf

在这里插入图片描述
upstream上游服务,可定义多台 eg,将这批服务器命名为local

用proxy_pass 将所有请求代理到配置的上游服务里

Proxy_set_header的作用(可以在官网的http_proxy_module找到)

因为有了反向代理,我们再去拿一些变量或者值就会出错,比如一个tcp连接是有对单地址的,但是有了反向代理后,反向代理与客户端是一个tcp连接,与上游服务又是另外一台连接,所以如果我们取原先的变量叫remote_addr,也就是tcp连接的远端地址,那么在上游服务那里取到的实际是反向代理这台机器的地址,如果想拿浏览器的地址作为限制浏览器访问速度等功能时,其实是拿不到的,所以可以通过proxy_set_header将某些值添加新的header发送到上游,比如X-Real-Ip,设为我们从tcp远端连接拿到的ip地址,host也是同样,用户直接访问的域名是从浏览器中直接输入的,我们可以选择由上游服务处理这个域名,也可以选择由反向代理处理

2, 配置缓存服务器:

nginx作为反向代理时,通常只有动态请求,即不同用户访问同一个url看到的内容是不同的,这个时候才会交给上游服务处理,但一些内容在短时间内是不变的,这个时候为了减轻上游服务的压力,我们会让nginx将上游服务发送的内容缓存,比如缓存一天,那么在一天内即使上游服务对这些内容发生了变化,我们也不管,我们只拿缓存中的内容,因为nginx的性能远远领先于上游服务的性能,所以使用该特性后,对一些小站会有非常大的性能提升

控制缓存:
proxy_cache_path(写在http模块中)设置缓存文件写在哪个目录下。定义缓存的共享内存区域,同一个区域可以在多个地方使用。
Eg:
proxy_cache_path /tmp/nginxcache levels=1:2 keys_zone:my_cache:10m max_size=10g inactive=60m use_tmp_path=off;(这些参数都在控制我们的缓存)

http_proxy_module相关参数:

<1>proxy_temp_path:定义一个目录,用于存储从代理服务器接收到的数据的临时文件。

<2>level参数定义缓存的层次结构级别:从1到3,每个级别接受值1或2

<3>keys_zone设置缓存名字和大小

<4>max_size参数设置的最大缓存大小。当超过此大小时,它将删除最近最少使用的数据

<5>incactive 在非活动参数指定的时间内未访问的缓存数据将从缓存中删除,而不考虑其新鲜度。默认情况下,inactive被设置为10分中

使用:
在我们需要缓存的路径下,添加proxy_cache,proxy_cache后面跟的参数就是我们刚刚开辟的共享内存
在这里插入图片描述

检查:
直接访问站点,并把上游服务停掉,看是不是还能够获得响应结果。
首先访问,这样反向代理的nginx收到响应后,就会把响应缓存到他的文件系统中,再次访问则是从缓存中取到的响应,然后停掉原先的静态资源web服务,发现仍能访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值