4.Nginx缓存设置和CDN

这篇具有很好参考价值的文章主要介绍了4.Nginx缓存设置和CDN。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Nginx缓存设置

设置缓存

##在yum配置文件中添加nginx在线源


vim /etc/yum.repos.d/nginx.repo


[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
##yum安装nginx
yum -y install nginx
##修改配置文件,在192.168.242.69主机上作为nginx的缓存服务器

vim /etc/nginx/nginx.conf

##在http配置块配置

http {
    proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m 
max_size=10g 
inactive=60m 
use_temp_path=off;
    
 
 
 ##配置写法
 
upstream cache_server{
        server 192.168.242.68:80;
        server 192.168.242.69:80;
}


##nginx可以在缓存服务器的基础上做动静分离
##配置动态服务器的网口端口
upstream tomcat_server{
        server XXX:8082;
        server XXX:80;
}
 
 
 
    
}    
##创建缓存需要的文件夹
mkdir -p /data/nginx/cache
###配置文件解释

path:强制参数,指定缓存文件的存放路径。

levels:定义了缓存目录的层级。每层可以用1(最多16种选择,0-f)或2(最多256种选择,00-ff)表示,中间用 : 分隔。

proxy_cache_path /data/nginx/cache;  代表所有缓存只有一个目录,比如/data/nginx/cache/d7b6e5978e3f042f52e875005925e51b

proxy_cache_path /data/nginx/cache levels=1:2;  代表缓存是二层目录(有16*256=4096个目录),比如/data/nginx/cache/b/51/d7b6e5978e3f042f52e875005925e51b


keys_zone:强制参数,定义共享内存区的名称和大小,该共享内存用于保存缓存项目的元数据(所有活动的key和缓存数据相关的信息),这样nginx可以快速判断一个request是否命中或者未命中缓存,1m可以存储8000个key,10m可以存储80000个key。

inactive:删除指定时间内未被访问的缓存文件,默认10分钟。

max_size:设置了缓存存储的上限,如果不指定,最大会用掉所有磁盘空间。

use_temp_path:直接把临时文件放在缓存目录中。
###设置缓存


vim /etc/nginx/conf.d/default.conf



###配置文件解释
server {
        listen 80;
        server_name www.ggl.com;
        location / {
            proxy_cache my_cache;        
#指定用于页面缓存的共享内存,zone名称由proxy_cache_path指令定义


            proxy_cache_valid 200 5m;           
#为不同的响应状态码设置不同的缓存时间,此为缓存状态码为200的请求,缓存时长为5分钟

            proxy_cache_key $request_uri;      
            #指定缓存文件的key为请求的URI
            
            
add_header Nginx-Cache-Status $upstream_cache_status      #把缓存状态设置为头部信息,响应给客户端

            proxy_pass http://cache_server;    
        	#设置代理转发的后端服务器的协议和地址
        }
   }
   
   
   
   
   

 
   
   
server {
    listen 80;
    server_name www.ggl.com;
    
##做静态页面访问    
    location / {
		proxy_cache my_cache;
        proxy_cache_valid 200 5m;
        proxy_cache_key $request_uri;
        add_header Nginx-Cache-Status $upstream_cache_status;
        proxy_pass http://cache_server;      	
   }
   

##做动态页面访问配置
   location .*\.jsp$ {     
	proxy_pass http://tomcat_server;      	
   }
   
   
}   

取消不需要内容的缓存

  • 对于一些实时性要求非常高的页面或数据来说,就不应该去设置缓存
vim /etc/nginx/nginx.conf

http {
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m 
max_size=10g 
inactive=60m
use_temp_path=off;


##创建缓存需要的文件夹
mkdir -p /data/nginx/cache
vim /etc/nginx/conf.d/default.conf


server {
  listen 80;
  server_name www.ggl.com;
  
  #URI 中后缀为 .txt 或 .text 的设置变量值为 "no cache"
  if ($request_uri ~ \.(txt|text)$) {
   set $cache_name "no cache"
  }
  
  location / {
    proxy_no_cache $cache_name;      
#判断该变量是否有值,如果有值则不进行缓存,如果没有值则进行缓存

    proxy_cache my_cache;            #设置缓存内存
    
    proxy_cache_valid 200 5m;        
#缓存状态为200的请求,缓存时长为5分钟

    proxy_cache_key $request_uri;    
#缓存文件的key为请求的URI

add_header Nginx-Cache-Status $upstream_cache_status    
#把缓存状态设置为头部信息,响应给客户端

    proxy_pass http://cache_server;  #代理转发
  }
}





server {
  listen 80;
  server_name www.ggl.com;
  
  if ($request_uri ~ \.(txt|text)$) {
   set $cache_name "no cache"
  }
  
  location / {
    proxy_no_cache $cache_name;      
    proxy_cache my_cache;            
    proxy_cache_valid 200 5m;        
    proxy_cache_key $request_uri;   
add_header Nginx-Cache-Status $upstream_cache_status;    
    proxy_pass http://cache_server;  
  }
  
  
}

查看nginx缓存数据

##在网页配置中添加页面

##在ngin   192.168.242.67节点配置
cd /usr/share/nginx/html

echo '<h1>this is 1 web</h1>' > test.html


##在ngin   192.168.242.68节点配置
cd /usr/share/nginx/html

echo '<h1>this is 2 web</h1>' > test.html
nginx -t
systemctl restart nginx
##在另外一台主机或客户端访问192.168.242.69/test
curl 192.168.242.69/test.html


##在nginx缓存服务器192.168.242.69上,查看缓存
cd /data/nginx/cache

##可以看见这个目录下有缓存的目录和文件
cat /data/nginx/cache/c/97/5804fd1475122d946b51ef022d2cb97c

CDN

概念

  • CDN的全称是Content Delivery Network,即内容分发网络。
  • 其目的是通过在现有的Internet中增加一层新的CACHE(缓存)层,将网站的内容发布到最接近用户的网络”边缘“的节点,使用户可以就近取得所需的内容(就近原则),提高用户访问网站的响应速度。
  • 从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因,提高用户访问网站的响应速度
  • CDN的工作原理就是将您源站的资源缓存到位于全球各地的CDN节点上,用户请求资源时,就近返回节点上缓存的资源,而不需要每个用户的请求都回您的源站获取,避免网络拥塞、缓解源站压力,保证用户访问资源的速度和体验

工作原理

4.Nginx缓存设置和CDN,9.Redis,nginx,缓存,运维文章来源地址https://www.toymoban.com/news/detail-535020.html

1. 用户输入访问的域名,操作系统向 LocalDns 查询域名的ip地址.
2. LocalDns向 ROOT DNS 查询域名的授权服务器(这里假设LocalDns缓存过期)
3. ROOT DNS将域名授权dns记录回应给 LocalDns
4. LocalDns得到域名的授权dns记录后,继续向域名授权dns查询域名的ip地址
5. 域名授权dns 查询域名记录后(一般是CNAME),回应给 LocalDns
6. LocalDns 得到域名记录后,向智能调度DNS查询域名的ip地址
7. 智能调度DNS 根据一定的算法和策略(比如静态拓扑,容量等),将最适合的CDN节点ip地址回应给 LocalDns
8. LocalDns 将得到的域名ip地址,回应给 用户端
9. 用户得到域名ip地址后,访问站点服务器
10. CDN节点服务器应答请求,将内容返回给客户端.(缓存服务器一方面在本地进行保存,以备以后使用,
		二方面把获取的数据返回给客户端,完成数据服务过程)

到了这里,关于4.Nginx缓存设置和CDN的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Nginx使用proxy_cache指令设置反向代理缓存静态资源

    CentOS7中解压tar包的方式安装Nginx: CentOS7中解压tar包的方式安装Nginx_centos7 tar文件 怎么load_霸道流氓气质的博客-CSDN博客 参考上面流程实现搭建Nginx的基础上,实现静态资源的缓存设置。 注意上面安装时的目录是在/opt/nginx目录下,这里是在/usr/local/nginx目录下。 nginx作为一款高

    2024年02月14日
    浏览(47)
  • Ubuntu/Linux安装JDK、Mysql、Redis、Rabbitmq、Nginx 并设置开机自启动

    1、Ubuntu安装版本为20.04 2、文中安装包也可以从网盘下载 链接:https://pan.baidu.com/s/1YAXhSByi0fQULPR6lV3yGg 提取码:ubun 3、相关查看命令 先去Oracle官网下载jdk,本人使用版本为jdk-8u351 将上面的jdk上传到服务器,使用下面命令解压 命令参数解释 参数 含义 tar Linux压缩/解压缩命令 -

    2024年02月02日
    浏览(53)
  • 【Nginx运维】Nginx升级打补丁

    升级nginx的过程主要需要以下步骤: 1.备份当前nginx版本及其配置文件。 2.下载新版本的nginx安装包。(如nginx-1.20.1.tar.gz) 3.解压缩安装包,并进入该目录。 4.使用configure脚本配置编译选项。 5.执行make命令进行编译。 make 6.停止旧版本的nginx服务,启动新版本nginx服务。 7.验证

    2024年02月12日
    浏览(39)
  • Nginx(6)nginx的缓存集成

    缓存就是数据交换的缓冲区(称作Cache),当用户要获取数据的时候,会先从缓存中去查询获取数据,如果缓存中有就会直接返回给用户,如果缓存中没有,则会发请求从服务器重新查询数据,将数据返回给用户的同时将数据放入缓存,下次用户就会直接从缓存中获取数据。 缓

    2024年02月12日
    浏览(39)
  • nginx浏览器缓存和上流缓存expires指令_nginx配置HTTPS

    1.nginx控制浏览器缓存是针对于静态资源[js,css,图片等] 1.1 expires指令

    2024年02月08日
    浏览(44)
  • Nginx缓存&优雅清除缓存

    前面我们知道Nginx可以对浏览器缓存进行配置,让一些静态资源缓存到用户本地存储,以提高页面的响应速度,也能降低服务端的压力。浏览器执行缓存的流程如下: 试想一下,如果用户主动清空了本地的浏览器缓存,那么是不是请求的压力又来到了服务端,为此我们可以增

    2024年02月11日
    浏览(32)
  • web缓存之nginx缓存

             网络缓存位于客户端和 \\\"源服务器 \\\"之间,保存着所有可见内容的副本。当客户端请求缓存中存储的内容时,它可以直接从缓存中检索内容,而无需与服务器通信。这样,网络缓存就 \\\"接近 \\\"了客户端,提高了响应性能,并更有效地利用了应用服务器,使其不必为每

    2024年01月25日
    浏览(32)
  • 【Nginx20】Nginx学习:FastCGI模块(二)缓存配置

    通过上篇文章的学习,普通的 PHP 与 Nginx 的连接就已经没啥大问题了。一般的网站直接那套配置就够了,这也是 Nginx 非常友好的一面。很多在默认的配置文件中注释掉的内容,只要打开就是可以直接使用的。不过,FastCGI 可不是一个小模块,还有很多的配置指令,要想深入,

    2024年02月11日
    浏览(36)
  • 【运维】Nginx添加/替换/更新ssl证书

    xxx.com.key xxx.com.pem 添加或替换红圈里的内容为对应的证书文件目录    打开对应的网站   https://xxx.com

    2024年02月11日
    浏览(69)
  • 【运维安全】运维界葵花宝典:Nginx配置与优化秘籍

    必要的原理介绍 ● Nginx 里有一个master进程和多个worker进程.master进程并不处理网络请求,主要负责调度工作进程: 加载配置,启动工作进程及非停升级.worker进程负责处理网络请求与响应. ● master进程主要用来管理worker进程,具体包括如下4个主要功能: 接收来自外界的信号 向各wo

    2024年02月21日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包