Nginx缓存配置(简易实现CDN功能)

article/2025/5/6 17:51:51

环境推荐使用openresty,自带了挺多模块的,如果直接使用nginx,需要对缺少的模块进行添加,添加教程参照百度或者OpenResty教程

1、本地站点ETag缓存

    示范开启静态文件缓存

        环境:

nginx -v
nginx version: openresty/1.15.8.3

(该版本Nginx原生有ETag,默认启用了,如果没有需要对ETag模块进行添加,添加后使用etag on;命令开启)

 server {listen       80;server_name  localhost;#....其他配置删除了location / {root   html;index  index.html index.htm;}location ~ .*\.(js|css|gif|jpg|jpeg|png|bmp|swf|flv|html|htm)$ {expires 1d;#缓存一天过期}}

第一次请求时花费37ms

image.png

image.png

内容未变的情况下后续访问请求响应的状态码会是304(无更改)花费19ms

image.png

image.png

2、对反向代理开启缓存

    2.1nginx.conf中http模块加入如下代码定义一个缓存策略

#-----------------nginx cache configure start
proxy_cache_path /ngx_cache  levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=30d use_temp_path=on;
proxy_temp_path /ngx_cache/temp;#临时目录
proxy_cache_key $host$request_uri;#缓存的KEY
#-----------------nginx cache configure end

    2.2定义一个反代所需upstream和server

    upstream fpa.cn {server 127.0.0.1:81;}server {listen       81;root html;}

    2.3将80端口对上面的服务器进行反代设置

server {listen       80;server_name  localhost;charset utf-8;#access_log  logs/host.access.log  main;location / {root   html;index  index.html index.htm;proxy_pass http://fpa.cn;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}

    2.4对反代的请求中的静态文件使用缓存

server {listen       80;server_name  localhost;charset utf-8;#access_log  logs/host.access.log  main;location / {root   html;index  index.html index.htm;proxy_pass http://fpa.cn;}location ~ .*\.(js|css|gif|jpg|jpeg|png|bmp|swf|flv|html|htm)$ {#proxy_cache_use_stale error timeout http_500 http_502  http_503 http_504;#对error等允许使用过期缓存进行返回proxy_cache my_cache;#指定使用my_cache这个缓存配置proxy_cache_key $host$uri$is_args$args;#设置缓存的key(在缓存的文件里开头有KEY:值)proxy_cache_valid 1d;#缓存有效期1天#proxy_ignore_headers Cache-Control;#开启后忽略不允许缓存add_header X-Cache $upstream_cache_status;#将缓存是否命中的结果返回add_header X-Via $server_addr;#将缓存服务器IP返回proxy_pass http://fpa.cn;#反代}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}

效果图:

image.png

image.png

进入配置的缓存目录查看,该页面已被缓存

image.png

http://chatgpt.dhexx.cn/article/PP3eVEjF.shtml

相关文章

Nginx缓存配置教程

问题引出 假设某电商平台商品详情页需要实现 700 QPS(假设宽带是千兆宽带) 千M局域网宽带网卡速率按照1000进位,所以1Gbps1,000,000,000bps125,000,000Bps≈119.21MB/s 当达到500QPS 的时候很难继续压测上去。 假设每个页面主体渲染所需要的…

Nginx缓存配置

Nginx缓存配置 一、Nginx缓存介绍二、具体操作三、实例1 一、Nginx缓存介绍 Nginx 不仅仅是一个 Web 服务器,它还可以作为一个缓存服务器使用。通过 Nginx 缓存,可以对一些静态资源或者数据更新频率较低的后端服务做缓存,降低静态资源或后端…

nginx 缓存配置详解都是干货

一、缓存类型 1、服务端缓存 2、代理缓存 3、客户端缓存 4、代理缓存的工作流程: 二、代理缓存配置语法 1、代理缓存路径 配置语法 Syntax: proxy_cache_path path [levelslevels] [use_temp_pathon|off] keys_zonename:size [inactivetime] [max_sizesize] […

微信那些词语发不出去

在写文章的时候,会遇到以下3种情况: 1、你所编辑的图文消息可能含有敏感内容,你可以继续保存或发布该图文消息(发布等待时长约3-4小时),若保存或发布后,经核实含有敏感内容的,将可能…

微信公众号文章存在敏感词被屏蔽

在写文章的时候,会遇到以下3种情况: 1、你所编辑的图文消息可能含有敏感内容,你可以继续保存或发布该图文消息(发布等待时长约3-4小时),若保存或发布后,经核实含有敏感内容的,将可能…

微信公众平台有哪些敏感词不准发

在写文章的时候,会遇到以下3种情况: 1、你所编辑的图文消息可能含有敏感内容,你可以继续保存或发布该图文消息(发布等待时长约3-4小时),若保存或发布后,经核实含有敏感内容的,将可能…

微信公众号敏感词检测工具

在写文章的时候,会遇到以下3种情况: 1、你所编辑的图文消息可能含有敏感内容,你可以继续保存或发布该图文消息(发布等待时长约3-4小时),若保存或发布后,经核实含有敏感内容的,将可能…

微信公众号文章是否违规怎么检测?

在写文章的时候,会遇到以下3种情况: 1、你所编辑的图文消息可能含有敏感内容,你可以继续保存或发布该图文消息(发布等待时长约3-4小时),若保存或发布后,经核实含有敏感内容的,将可能…

微信小程序发布需要校验敏感信息(内容、图片)-Java后端实现

精选30云产品&#xff0c;助力企业轻松上云&#xff01;>>> 前端只需要将图片和内容传过来即可 pom依赖 HttpClient的依赖和json转换的依赖 <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><versio…

SpringBoot调用微信小程序敏感词拦截接口

SpringBoot调用微信小程序敏感词拦截接口 获取接口调用凭据 | 微信开放文档 (qq.com) 在调用微信小程序安全识别接口时需要先拿到&#xff0c;小程序的token令牌&#xff0c;需要调用下面这个接口 https://api.weixin.qq.com/cgi-bin/token?grant_typeclient_credential&am…

微信小程序通过云函数调用安全api,实现敏感词校验

如题&#xff0c;话不多说&#xff0c;直接上代码 1.首先需要在小程序中引入云函数框架 1.1在project.config.json中添加设置&#xff0c;同时在小程序根目录新建cloudfunctions文件夹 "cloudfunctionRoot": "cloudfunctions/" 1.2在app.json中添加设置…

php屏蔽词库,PHP调用微信过滤敏感词汇API

之前写过一篇过滤敏感词汇的文章,但是最近临近国庆,小程序提高了安全能力得检测,审核变得更加严格,要求自定义昵称、头像、签名等必须要有过滤敏感词汇得机制,严格上之前那边文章也可以过滤,但是具体微信过滤得内容就不得而知了,所以,今天就分享一下PHP利用微信小程序的…

微信小程序敏感词过滤

当你的小程序有用户提交&#xff08;评论、文章、图片&#xff09;时&#xff0c;如果你的代码没有过滤敏感词汇&#xff0c;将会审核不通过&#xff0c;幸好官方提供了API&#xff0c;方便了很多&#xff0c;废话不多说&#xff0c;干&#xff01; 本文只有文字过滤 本文采用…

企业微信又更新了!聊天敏感词、下载直播回放视频、聊天文件支持10GB...

企业微信版本已更新至3.0.36&#xff0c;还没有更新的速速去升级啦&#xff01; 一、客户联系功能增强 企业可设置聊天敏感词&#xff0c;设置后将下载到成员的企业微信。当成员发送给客户的消息包含敏感词时&#xff0c;将予以提示或发送失败。 登录企业微信管理后台在客户联…

Java实现微信小程序文本内容敏感词检查

1.背景2.策略3.实现1. 调用auth.getAccessToken&#xff0c;获取接口调用凭证2. 调用security.msgSecCheck检测文本内容 4.遇到的问题5.工具类完整代码6.使用方式 1.背景 发布小程序的时候&#xff0c;没有通过审核&#xff0c;审核结果为 提示要完善内容审核机制。 2.策略 …

普通微信如何设置敏感词监控?以及企业微信敏感词监控拦截

微信作为一个广泛使用的社交平台&#xff0c;拥有庞大的用户群体&#xff0c;这使得微信营销在企业的市场推广中扮演着重要的角色。通过微信营销&#xff0c;企业可以获得一定程度的业绩增长。然而&#xff0c;随着企业规模的扩大&#xff0c;微信营销也面临着一些挑战和盲区。…

微信小程序安全系列——文本内容安全识别

前言 相信很多朋友跟我遇到过相同的问题&#xff0c;就是在开发一些笔记或者博客的时候&#xff0c;会遇到一些过滤敏感、时政、黄、赌、毒这类词汇、句子等这种棘手问题。 今天我们看一下微信小程序提供的文本安全内容识别&#xff0c;也可以减少一些我们的工作量。通过微信…

常用的文本去重代码:

常用的文本去重代码&#xff1a; 本代码用到了simhash库&#xff08;https://github.com/yanyiwu/simhash&#xff09; import re import os from pathlib import Path import json from simhash import Simhashdef droplike(lines):def distance(v1, v2, f64):x (v1 ^ v2) …

simhash海量文本去重的工程化

https://yuerblog.cc/2018/05/30/simhash-text-unique-arch/ simhash算法是google发明的&#xff0c;专门用于海量文本去重的需求&#xff0c;所以在这里记录一下simhash工程化落地问题。 下面我说的都是工程化落地步骤&#xff0c;不仅仅是理论。 背景 互联网上&#xff0…

自然语言处理学习笔记5:去重处理之使用SimHash进行海量文本去重

摘要: 传统的Hash算法只负责将原始内容尽量均匀随机地映射为一个签名值&#xff0c;原理上仅相当于伪随机数产生算法。传统的hash算法产生的两个签名&#xff0c;如果原始内容在一定概率下是相等的&#xff1b;如果不相等&#xff0c;除了说明原始内容不相等外&#xff0c;不再…