nginx反向代理+缓存

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.conf

 upstream 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

相关推荐
Splashtop高性能远程控制软件7 分钟前
本地部署 vs 公有云 vs 混合架构:一份可对照落地的 IT 架构选型指南
运维·架构·远程控制·splashtop
kdxiaojie18 分钟前
Linux 驱动研究 —— V4L2 (2)
linux·运维·笔记·学习
蝶恋舞者1 小时前
怎样设置软件开机自启动(用的最多,最简单)
linux·运维·服务器
段一凡-华北理工大学2 小时前
AI Agent 从入门到封神:24 讲打造你的超级智能体~系列文章23:从Demo到上线:Agent应用的架构设计、性能优化与成本控制实战
运维·网络·人工智能·性能优化·高炉炼铁·工业智能体
L1624762 小时前
Zabbix 7.0 LTS 完整部署与运维手册(AlmaLinux 9 + MySQL 8.0 + Nginx)
运维·mysql·zabbix
happymade2 小时前
MSRM3 区域层级嵌套功能深度解析与实操教程
运维·网络拓扑·网络管理·网络运维·msrm3
网络小白不怕黑2 小时前
14.VSFTP服务相关配置
linux·运维·服务器
手握风云-2 小时前
Redis:不只是缓存那么简单(十四)
redis·缓存
爱喝水的鱼丶2 小时前
SAP-ABAP:ALV字段布局定制全攻略——快速适配业务端个性化展示需求
运维·性能优化·sap·abap·经验交流·alv报表
qetfw3 小时前
CentOS 7 配置 firewalld 防火墙
linux·运维·centos