Author: haoransun
Wechat: SHR—97
学习来源:极客时间-Nginx核心知识100讲,本人购买课程后依据视频讲解汇总成个人见解。
前言
前面已经展示了Nginx如何作为一个静态资源服务器进行工作,我们以此静态资源服务器作为-上游服务,再搭建一个Nginx服务,作为反向代理,演示当Nginx作为方向代理时,应该如何使用?
由于上游服务要处理非常复杂的业务逻辑,而且强调开发效率,因此它的性能并不怎么样,而使用了Nginx作为反向代理之后,可以由一台Nginx将请求用负载均衡算法代理给多台上游服务器工作,这样就实现了水平扩展,在用户无感知的情况下,我们可以添加更多的上游服务器,来提高性能。当上游服务器出现问题时,Nginx可以自动的将请求由有问题、出现灾难的服务器转交给正常的服务器,
现在这个页面仍然是我们刚才搭建的静态资源服务器所展示的页面。
我们需要将此Nginx服务器变更为上游服务器,而上游服务器通常对公网是不进行访问的。我们可以做一个非常简单的操作:
1 | vim conf/nginx.conf |
再次访问时,会发现无法访问了,因为Nginx拒绝了由浏览器发过去的请求连接。
由此,Nginx静态资源服务器已经变成了一个上游服务器。
1 开始搭建Nginx反向代理
之前的 Nginx 是1.14版本,而反向代理我们用openrestry的1.16版本。
1 | [root@haoransun sbin]# ./nginx -v |
我们进入到openresty所在的nginx服务,修改其配置文件如下:
1 | # 在此处添加一个 upstream,即上游服务其中的一台server,它的访问地址是 127.0.0.1:8080 |
此时再去访问我们的代理服务器的IP地址,如果配置里域名,则用域名访问即可,因为监听的80端口,所以使用192.168.121.100:80/dangdang/book.html访问即可。
由下图可看出,我们的请求是由反向代理服务器发给我们的。其中的 server:nginx/1.16.0证明了它的身份。
2 开始搭建Nginx缓存服务器
首先,我们需要proxy_cache_path来设置我们的缓存 文件写在那个目录下,比如:
1 | http { |
此处写在了 /tmp/nginxcache
,以及这些文件的命名方式,这些文件的关键字是要放在共享内存中的,此处开了一个10m的共享内存,命名为my_cache,这些参数都在控制我们的缓存。
缓存如何使用呢?就是在我们需要做缓存的路径下添加proxy_cache
1 | server { |
加完这些参数后,需要重载配置文件,重新启用方向代理服务的配置。
再次直接访问站点,然后将上游服务停掉,看是否能获得同样的结果。
首先,我们再次访问,让其响应内容刷到缓存文件中。
查看进程
将上游服务停掉。
再次访问,实际上读的是缓存系统中的内容作为响应返回给客户端。
此时,上游服务已经停掉了
再次访问