nginx反向代理+缓存

server/2025/1/12 13:44:20/

1、nginx-LB配置页面缓存

[root@Oldboy conf]# vi nginx.conf
http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;include  proxy.conf;                                                                                           //调用proxy.confupstream www_pool {                                                                                         //后端服务器地址池server 10.0.0.7:80  weight=1;                                                         //weight 权重,默认为1。 weight越大,负载的权重就越大server 10.0.0.8:80  weight=1;
}upstream bbs_pool {server 10.0.0.7:8080  weight=1;server 10.0.0.8:8080  weight=1;
}upstream blog_pool {server 10.0.0.7:8081  weight=1;server 10.0.0.8:8081  weight=1;
}server {listen       80;server_name  www.etiantian.org;location ~ .*\.(gif|jpg|png|css|js)$ {                                                      //以(jpg|gif|png)为后缀的,跳转并缓存proxy_pass http://www_pool;proxy_set_header Host  $host;                                                          //LB带着主机头访问后端地址池proxy_set_header X-Forwarded-For $remote_addr;                        //将客户端真实ip映射到后端地址池proxy_cache webserver;                                                                    //调用缓存共享池proxy_cache_valid 200 10m;                                                             //缓存状态码 和 缓存时间expires 30d;                                                                                       //过期时间}location /upload/ {                                                                              //基于url缓存proxy_pass http://blog_pool;proxy_set_header Host  $host;proxy_set_header X-Forwarded-For $remote_addr;proxy_cache webserver;proxy_cache_valid 200 10m;expires 30d;}location / {                                                                                            //默认访问直接跳转不缓存proxy_pass http://bbs_pool;}}
}
[root@Oldboy nginx]# cat conf/proxy.conf 
proxy_connect_timeout 60;                                                       
proxy_send_timeout 60; 
proxy_read_timeout 60; 
proxy_buffer_size 16k; 
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k; 
proxy_temp_file_write_size 128k;
proxy_temp_path /application/nginx/temp_dir;
proxy_cache_path /application/nginx/cache/webserver  levels=1:2  keys_zone=webserver:20m  max_size=1g;参数解释:
proxy_connect_timeout 60:      LB与后端服务器连接超时时间 (代理连接超时)
proxy_send_timeout 60:            连接不成功时,后端服务器超时时间 (代理发送超时)
proxy_read_timeout 60:            连接成功后,后端服务器响应时间  (代理接收超时)
proxy_buffer_size 16k:               代理服务器保存用户头信息的缓冲区大小
proxy_buffers 4 64k:                  proxy_buffers缓冲区,网页平均在64k以下的话,这样设置
proxy_busy_buffers_size 128k:  高负荷缓存大小(proxy_buffers的两倍)
proxy_temp_file_write_size 128k:                           缓冲文件夹大小,大于这个值将从upstream获取
proxy_temp_path /application/nginx/temp_dir:  缓冲文件夹路径
proxy_cache_path /application/nginx/cache/webserver     levels=1:2       keys_zone=webserver:20m       max_size=1g;proxy_cache_path:指定缓存目录
levels=1:2:缓存目录格式
keys_zone=webserver:20m:为缓存目录定义共享池的名称和大小20M
max_size=1g : 共享池最大1G

2、测试
(1) 访问http://www.etiantian.org/test.jpg(缓存
在这里插入图片描述
查看LB缓存目录(说明已经缓存上了)
/application/nginx/cache/webserver/cache/webserver/7/be/ccde0d99fc028721307cbd38a4dc5be7
(2) 访问http://www.etiantian.org/(直接跳转不缓存
在这里插入图片描述
(3) 测试将后端服务器都关闭,依然可以访问http://www.etiantian.org/test.jpg,但是无法访问http://www.etiantian.org/。删除缓存目录下的缓存文件,再次访问http://www.etiantian.org/test.jpg报错
502 Bad Gateway


http://www.ppmy.cn/server/157775.html

相关文章

linux网络 | https前置知识 | 数据加密与解密、数据摘要

前言:本节内容讲述https的相关内容。 https博主会着重讲解https如何让一个请求和一个响应能够安全的进行交互。 https博主将用两篇文章进行讲解。本篇是两篇中第一篇。会把http的安全问题引出来, 然后说一下https的基本解决方法。 下面废话不多说, 开始我…

计算机网络之---UDP协议

UDP协议 UDP(User Datagram Protocol,用户数据报协议)是传输层的一种协议,提供无连接的、简单的、低延迟的数据传输服务。与TCP不同,UDP不进行数据的重传、排序或流量控制,因此其传输速度更快,但…

Excel 做数据分析的好与不好

日常工作中,涉及到数据的计算分析,Excel 一定是使用最多的。但是也有不少小伙伴困惑于 Excel 的深入学习难度大,复杂问题不好做,相同问题重复烦,大数据跑不了等问题。这里我们就来聊一聊 Excel 做数据分的好与不好&…

[OPEN SQL] ORDER BY排序数据

本次操作使用的数据库表为SFLIGHT,其字段内容如下所示 航班(SFLIGHT) 该数据库表中的部分值如下所示 OPEN SQL中的ORDER BY语句用于对数据库表中的数据进行排序 在查询数据的时候使用ORDER BY语句,则查询出来的结果会按照ORDER BY指定的字段进行排序 排序…

C++实现设计模式---抽象工厂模式 (Abstract Factory)

抽象工厂模式 (Abstract Factory) 抽象工厂模式 是一种创建型设计模式,提供一个接口,用于创建一组相关或互相依赖的对象,而无需指定它们的具体类。 意图 提供一个创建一组相关对象的接口,而无需指定它们的具体类。解决产品对象之…

基于 JavaEE 的影视创作论坛

在当今数字化时代,影视创作论坛成为了影视爱好者们交流与分享的重要平台。本文将详细介绍基于 JavaEE 的影视创作论坛的设计与实现,让大家了解其背后的技术奥秘。 文末附有完整项目代码 该论坛具备丰富的功能,包括首页推荐、用户管理、影片管…

.NET 终止或结束进程

如何使用 C# 终止进程。 使用简单的方法终止.NET中的现有进程Process.Kill()。有一个可选参数 true 或 false,用于结束与要结束的进程相关的所有子进程。 了解如何创建流程。 结束当前进程: System.Diagnostics.Process.GetCurrentProcess().Kill(tru…

mac 窗口工具Teleport和Rectangle

探索Teleport:让你的Mac舰队无缝协同! teleport Virtual KVM for macOS 项目地址:https://gitcode.com/gh_mirrors/telep/teleport 在数字化时代,效率是王道。面对多台Mac同时工作时的手忙脚乱,Teleport横空出世,带来…