电子商务网站建设论文课题,制图软件有哪几种,wordpress侧边栏目录菜单,公司网站开发怎么入账场景
CentOS7中解压tar包的方式安装Nginx#xff1a;
CentOS7中解压tar包的方式安装Nginx_centos7 tar文件 怎么load_霸道流氓气质的博客-CSDN博客
参考上面流程实现搭建Nginx的基础上#xff0c;实现静态资源的缓存设置。
注意上面安装时的目录是在/opt/nginx目录下
CentOS7中解压tar包的方式安装Nginx_centos7 tar文件 怎么load_霸道流氓气质的博客-CSDN博客
参考上面流程实现搭建Nginx的基础上实现静态资源的缓存设置。
注意上面安装时的目录是在/opt/nginx目录下这里是在/usr/local/nginx目录下。
Nginx缓存静态资源
nginx作为一款高性能的web服务器可以在代理请求时缓存静态资源。
当用户请求一个静态资源时nginx会先从本地缓存中查找。如果缓存中存在这个资源
nginx会直接返回给用户如果缓存中不存在这个资源nginx会从上游服务器获取
然后存储到本地缓存中并返回给用户。
Nginx 服务器中还有一种使用 proxy_ cache 指令设置的临时缓存配置它采用 md5法
将请求链接进行哈希 hash 后根据具体配置生成缓存文件目录保存响应的数据。
准备两台虚拟机并安装配置两个Nginx服务器一台ip是192.168.148.141作为Web缓存服务器
另一台是192.168.148.142作为内容源Web服务器。
注
博客霸道流氓气质_C#,架构之路,SpringBoot-CSDN博客
实现
1、首先配置Web缓存服务器192.168.148.141
编辑nginx.conf配置文件在http块中添加如下配置 #代理临时目录proxy_temp_path /usr/local/nginx/proxy_temp_dir;#Web缓存目录和参数设置proxy_cache_path /usr/local/nginx/proxy_cache_dir levels1:2 keys_zonecache_one:50m inactive1m max_size500m;
注意这里的两个路径因为nginx是安装在/usr/local/nginx下所以上面出现的两个路径是在此路径的基础上配置需要根据
自己需要改成对应的路径。 上面配置的指令
proxy_temp_path用于设置缓存服务器接收内容源服务器响应内容时使用的临时目录。
proxy_cache_path指令用于设置缓存目录相关参数含义
/usr/local/nginx/proxy_cache_dir参数表示用户自定义的缓存文件保存目录。
levels参数表示缓存目录下的层级目录结构它是根据哈希后的请求URL地址创建的目录名称从哈希后的字符串结尾处开始截取。
keys_zone参数指定缓存区名称及大小例如cache_one:50m表示缓存区名称为cache_one,在内存中的空间是50MB。
inactive参数表示主动清空在指定时间内未被访问的缓存。例如1m清空在一分钟内未被访问过的缓存1h表示1小时1d表示1天等。
max_size参数表示指定磁盘空间大小例如500m、10g。
需要注意的是 Nginx 在进行缓存时首先会被写人 proxy_temp_path 指定的临时目录中
因此建议 proxy_ cache_path proxy_temp_path 指令设置的目录应在同一个文件系统中避免不同文件系统之间的磁盘I/O消耗。
接着在server块中添加临时缓存的相关配置
server {listen 80;server_name 192.168.148.141;#charset koi8-r;#access_log logs/host.access.log main;#增加两个响应头信息用于获取访问的服务器地址与缓存是否成功add_header X-Via $server_addr;add_header X-Cache $upstream_cache_status;location / {#设置缓存区域名称proxy_cache cache_one;#以域名、URI、参数组合成Web缓存的Key值Nginx根据Key值哈希proxy_cache_key $host$uri$is_args$args;#对不同的HTTP状态码设置不同的缓存时间proxy_cache_valid 200 10m; #200缓存10分钟proxy_cache_valid 304 1m; #304缓存1分钟proxy_cache_valid 301 302 1h; #301 302缓存1小时proxy_cache_valid any 1m; #其他未设置的状态码缓存1分钟#设置反向代理proxy_pass http://192.168.148.142;}
注意添加位置 配置详解
proxy_cache用于设置缓存区域名称。
proxy_cache_key用于设置hash的Key值组成规则在省略的情况下Nginx将使用默认的Key值组成规则。
proxy_cache_key具体内置变量说明
$host:服务器的域名。
$uri:域名和参数之间的部分。
$is_args:有URL参数时则值为否则为空字符串。
$args:保存URL参数如a1b2,没有参数时为空字符串。
proxy_cache_valid指令对不同的HTTP状态码设置不同的缓存时间该指令的第一个参数表示状态码第二个参数表示缓存时间。
add_header指令添加了两个响应头为了便于在浏览器端查看是否正确缓存。
X-Via表示服务器地址利用内置变量$server_addr获取另一个X-Cache表示资源缓存状态利用内置变量$upstream_cache_status获取。
$upstream_cache_status的返回值有7个
HIT表示缓存命中
MISS表示未命中请求被传送到后端
EXPIRED表示缓存已经过期请求被传送到后端
UPDATING表示正在更新缓存将使用旧的应答
STALE表示无法从后端服务器更新缓存时返回了旧的缓存内容
BYPASS表示缓存被绕过了
REVALIDATED表示启用proxy_cache_revalidate指令后当缓存内容过期时Nginx通过一次If-Modified-Since的请求头去验证缓存内容是否过期
此时会返回该状态。
注意
对于用户的请求仅在处理成功的情况下才会在浏览器的Response Headers中查看到add_header指令设置的响应消息头。
2、访问测试
在内容源服务器192.168.148.142中放置几个测试文件用于访问测试。
这里nginx使用的默认配置所以将文件上传至/usr/local/nginx/html目录下 比如这里新建一个badao.html
h1192.168.148.142/badao.html!/h1
然后启动两台服务器的nginx在浏览器中访问
http://192.168.148.141/badao.html
此时打开浏览的开发工具-网络-点击bdao.html找到响应表头查看X-Via和X-Cache的值可以看到此时为MISS 一分钟内进行第二次请求时为HIT 此时再查看缓存服务器192.168.148.141上面配置的缓存目录/usr/local/nginx/proxy_cache_dir下 可以看到缓存文件。这里使用tree指令查看
该命令需要通过
yum -y install tree
安装后才可以使用。 为了深度验证在141上请求之后立即将142上的对应文件进行重命名此时一分钟内141仍然可以通过缓存获取。 等到缓存过期之后再次访问则会提示404