1. linux为什么要用keepalived,nginx,负载均衡,动静分离这些技术
假如一个机器只能1万个人同时访问,那么这个时候有100万人来访问,你就得解决啊
怎么解决呢?
加机器加带宽
那怎样让他们访问量均衡,避免个别机器压力过大宕机呢?
负载均衡,动静分离啊。。
2. Wordpress插件过多很臃肿,怎么优化
缓存就指很多方便了,比如CDN缓存、静态缓存、数据库缓存、浏览器缓存等等。
1、CDN缓存:CDN的话最好是备案了再起飞,因为大多数没备案的CDN都是给美国节点,而很多人是香港服务器,那岂不是绕着太平洋跑?另外,CDN需要正确的配置(写缓存规则)才能够达到最好的效果。
2、静态数据库缓存:这个呢就不做推荐了,各有各的优点,自己比较效果吧。
3、浏览器缓存:这里呢说一下,如果长期更新浏览器缓存不要搞太久,很多人在网络云加速设置个一年什么的。ServiceWorker的话可以试试,离线打开是不是很装逼呢
精简是重要的
很多优秀的主题包含了很多不必要的功能,这时候就需要适当的精简,毕竟只有骨骼轻才可以飞。
插件的话能用纯代码就用纯代码,插件什么的卡死了。
一些CSS/JS文件要适当的压缩合并,减少请求数,因为在HTTP/1.1中每个文件都要握手。
Gzip的话是有必要开的,大家也知道打包文件更小吧。
HTTP/2压缩了请求头,而且合并了请求,也就是说全站两个域名只需两次请求。
SPDY的话是谷歌的一个项目,本身是为了加快HTTP,不过现在的HTTP/2已经包含了其大部分功能,谷歌也要放弃该项目了
支持HTTP/2的CDN有CloudFlare、腾讯云、又拍云、上海云盾、360网站卫士、魔门云(非联盟已回源,备案无国内,只有一两个节点,巨坑!)等等。
定时清理WordPress的垃圾
压缩合并让请求更快
动静分离让静态资源国内加载
如果你是国外主机的话,这个方法十分管用,可以把图片、CSS、JS文件等托管到国内,不过如果有了HTTP/2的话建议不要搞,因为又要与一个域名握手了。
HTTP/2 SPDY大法好
InstantClick预加载
这个之前提到过,InstantClick当访客鼠标悬浮在a链接时,InstantClick会异步请求这个页面,当访客点击时,便瞬间切页,有木有飞起?不过这玩意会扯出一大堆Bug,像统计、高亮什么的都需要重载,萌新就别弄了,国内估计也就泽泽大佬的Yo模板自带了,至于WordPress还没见过,主题作者也不想撤扯出一大堆问题让用户天天问吧。
经常听一群人说清电脑辣鸡,windows有垃圾,WordPress当然也有,例如自动草稿这样的肯定是不要的东西,这里呢推荐WP Clean Up插件,国人写的。
希望可以帮助到你,望采纳!
3. 网站静态页访问正常,动态页访问非常慢
首先建议你使用nginx+tomcat实现动静分离,然后再分析系统瓶颈。动态页面较慢可能原因出现在数据库操作上,可以调试一下数据库的查询时间会不会太长,有没有使用连接池,mysql的连接数够不够,查询完后连接有没有关闭。
再看下tomcat内存、连接数有没有调整过,这些连接数都开大后别忘了操作系统的文件连接数也相应开大。
最后再来看一下代码实现有没有问题,业务里sql查询次数过多。
经过上面的优化后一般就能解决你的问题了,如果经过上面的优化后还有问题可以再联系我,如何用工具去分析系统。
4. 蔚可云的网页加速和动态加速有什么区别
空间总共分为三种:存储类空间、静态 CDN 空间、动态 CDN 空间。CDN做为内容分发技术,其核心原理就
空间总共分为三种:存储类空间、静态 CDN 空间、动态 CDN 空间。CDN做为内容分发技术,其核心原理就是将内容缓存到离用户最近的节点上,实现内容分发加速,这里内容主要分为两种,一种是静态内容,一种是动态内容。首先,对静态资源,CDN的加速效果是最好的,因为文件本身没有变化,CDN会将文件缓存至节点,供用户访问。那如何判断你的cdn加速是动态还是静态?
如果源站有新的静态资源产生,CDN也会及时去缓存这些资源,让用户无论是首次访问,还是多次访问,都可以快速获得内容。从技术角度上来讲:静态资源就是当用户多次访问这个资源,资源的源代码永远不会改变的资源。动态资源是当用户多次访问这个资源,资源的源代码可能会发送改变。
一、CDN加速作用于动态网站
两种方案:
1、动静分离 静态的走类似http://hkt4.xx.com的独立域名,动态的可以用动态加速
2、可以设置缓存设置规则,可看互联数据CDN。
基本的原理如下:通过CDN众多节点找到一条最快的路由,去源站点取数据从而达到对动态网站加速,再配合数据压缩技术,可以将动态网站的访问速度提高10倍甚至100倍。另外,动态网站的页面内容一般是由静态图片和动态文本混合组成,而静态图片将会被缓存到CDN节点的硬盘上,也能提高动态网站的访问速度。
动态内容并不是指网页上简单的 GIF 动态图片或是 Flash 动画,动态网站的概念现在还没有统一标准,但都具备以下几个基本特征:
1. 交互性:网页会根据用户的要求和选择而动态地改变和响应,浏览器作为客户端,成为一个动态交流的桥梁。
2. 自动更新:即无须手动更新 HTML 文档,便会自动生成新页面。
3. 因时因人而变:即当不同时间、不同用户访问同一网址时会出现不同页面。
如果待加速资源已经经过合理分类,只包括图片、文档、音道视频等静态文件,那么优先选用静态 CDN 空间,既可以获得更快速的加速效果,也版可以获得更多的功能支持。如果待加速的资源未合理分类,包括了静态资源和动态资源,那么需要使用动态 CDN 空间,一键实现权全站加速。
所以大家普遍认为动态网站不适合CDN加速,其实不是。动态网站一般是与用户互动,数据要求实时性,比如论坛、搜索引擎、电子商务、股票行情。动态网站加速的基本原理:比如现在3个CDN节点:电信,联通,移动,用户网站放在电信。
联通用户访问的时候,会通过昆明电信节点>>中转节点电信>>中转节点联通 由于中转电信和中转联通节点都是一个机房,这样就解决了电信和联通之间的瓶颈问题。
二、CDN加速作用于静态网站
静态内容:主要是指那些普通的文本文件或html或像html的没有任何后台动作的jsp、asp、php、css、html、jpg、js页面文件。
静态内容一般客户端发送请求到web服务器,web服务器从内存在取到相应的文件,返回给客户端,客户端解析并渲染显示出来。
用户使用某个域名来访问静态资源时,比如这个域名为“hkt4.com”,它对应一个CNAME,叫做“cdn.hkt4.com”,那么普通DNS服务器(区别CDN专用DNS服务器)在解析“hkt4.com”时,会先解析成“cdn.hkt4.com”,普通DNS服务器发现该域名对应的也是一个DNS服务器,那么会将域名解析工作转交给该DNS服务器,该DNS服务器就是CDN专用DNS服务器。CDN专用DNS服务器对“cdn.hkt4.com”进行解析,然后依据服务器上记录的所有CDN。
服务器地址信息,选出一个离用户最近的一个CDN服务器地址,并返回给用户,用户即可访问离自己最近的一台CDN服务器了。但目前来看,CDN在静态资源的表现要远优于对动态资源的加速,其主要原因还在于业务逻辑的源站化,如果边缘计算的技术得到普及,那应该可以大大改善CDN对于动态资源的加速效果。
总的来讲,CDN是可以实现网站的动静态加速,主要方法是链路优化和缓存策略。判断cdn加速是动态还是静态不是最重要的,要想实现对该类网站的加速,必须能够在实现静态加速的同时,还可以做动态加速。但不建议使用“免费爬墙加速器”,互联数据CDN用最稳定的CDN技术,不管网站是动态还是静态,多能实时确保站点安全稳定运行。今天买一个月送一个月,一键接入,高防又高速,绝对是你关于免备案CDN中最好的选择!
5. 对象存储与SAN存储和NAS存储相比较有什么优势
对象存储可以简单理解为用来存储图片、音频、视频等非结构化数据的数据池。相对于主机服务器,具有读写速度快,利于分享的特点。在这里给大家总结了这六点。
1、网站数据动静分离,大幅提升网页性能
一般情况下,我们都是建议使用主机服务器和对象存储分工合作的方式来存储网站数据。主机服务器主要负责存储网站的动态数据,对象存储则用来存储网站的静态文件。从而实现网站的动静分离,当用户访问一个网站时,分别从主机服务器和对象存储的服务器同步读取数据,可以大幅的提升网页性能。
2、单独的文件管理界面,管理网站文件和本地电脑一样方便
无论是腾讯云、阿里云、杉岩,对象存储都有单独的管理控制台,腾讯云和阿里云还有专门的电脑客户端。你不必打开网站,就可以像使用网络云盘一样使用对象存储来管理你的网站文件,除了上传、下载、预览等常用功能,还可以直接在对象存储上进行图片处理/媒体转码/数据分析等。
3、本质是”内置大容量硬盘的分布式服务器“,同一个文件支持跨域共享
对象存储的本质是“内置大容量硬盘的分布式服务器”,对象存储有自己的 CPU、内存、网络和磁盘系统,具备一定的智能,同一个对象存储数据池可以新建不同的存储桶(bucket),分别用来存储不同网站的数据,彼此互不干扰。而且同一个文件可以引用到不同的网站,可以有效的减少数据冗余。
4、储存节点多,支持跨地域实时同步,实现异地容灾
假设你的图片等数据存储在你自己的服务器上,只能通过定期数据备份的方式保护你的数据。数据量大的话,每次备份都需要大量的时间和占用大量的磁盘空间,管理起来还不方便。
如果你的数据放置在对象存储的数据池了,并与网站关联。那么静态文件的备份就可以交给对象存储。你只需要对网站少量的动态文件进行备份。省时省力。
比如我使用对象存储,我在离我最近的节点【深圳】来存储网站的图片等静态文件。但是考虑到极端情况,比如深圳节点由于突然停电,可能导致数据全部丢失。但如果之前我选择了【杭州】作为第二个存储节点,而且设置【深圳】节点的数据实时增量同步到【杭州】节点。那么就算深圳节点的数据丢失了,但是我在杭州的数据还是可以使用。等到恢复供电,我再把数据从杭州节点同步回深圳节点就可以了。这就是我们说的异地容灾。
5、成本低,资源弹性伸缩,按需付费
对象存储不像服务器的流量是固定的,包含在服务器的费用里面了。无论你用或不用,都是这么多。对象存储可以是根据你的实际使用量进行计费。
6、节省服务器空间
为什么选择将这一点放在最后说呢?因为现在服务器的价格还算实惠,活动也比较多。大部分站长已经不存在服务器空间不够用的问题。而且对象存储的出现也不是为了解决服务器空间不够用的问题。而是为了结合【块存储】、【文件存储】各自的优点,从而实现高效的文件读写和分享。但是节省了服务器空间还是不争得事实,所以还是提一下吧。
6. 如何配置百度云加速CDN缓存提高网站访问速度
配置网络云加速CDN缓存提高网站访问速度
今天在登陆网络推广后台后,发现优化建议里面有一条提示,网站打开速度慢,达到7秒。想一下有多少网民愿意等待7秒呢,没耐心的都直接关闭你的网站。这个流失率不小啊。于是我就按照提示用网络的那个网站速度诊断工具,测试一下,网通和电信都显示得分56:
然后我就想到了使用网络云加速来提高一下网站的打开相应速度,因为以前在群里看到有人提到过这个东西,说是可以能提高网站的加载速度。而且还不止这些好处呢!下面我就以自己实际操作的步骤来给大家看看,一个网站如何加入网络云加速。
1.需要登录你的账号
这里有两种登录方式,一个是用的网络账号;另外一个就是使用网络推广账号,我这里就使用的网络推广账号进行登录了。
进入我的网站进行相关设置
进入网站,然后添加网站。这里也有两种接入方式:NS/CNAME方式,我自己使用的是NS验证的方式,因为感觉这个方便点,能使用网络各机房节点的DNS高智能服务,同时也是网络推荐使用的接入方式。
然后进入下一步,配置子域名;这里默认的有一个MX记录,还有一个A记录;在这里需要检查的是指向IP地址是否是你空间上的那个IP,接下来增加一个@记录A指向的,这样无论是带三个W的还是顶级域名都会指向同一个页面地址,方便搜索引擎统一认识啊!
其次,配置服务商设置。在这里需要去你的空间管理那边,把原先的那个DNS地址修改一下,改为网络的ns1.bddns.cn和ns2.bddns.cn;这两个缺一不可的。在这里我就演示一下新网的修改方法,登陆新网管理那边,修改域名DNS地址,然后确定就修改成功了。修改成以后,回到网络云刚才那个页面,检验修改就大功告成了,是不是挺容易的呢?具体的可以看一下下面的图;
设置好以后也可以看网站数据,看什么节点啊,这些之类的。接入网络云之后,还真发现网站打开速度快了。
如果你发现你的网站打开速度慢,想让它变快点的话,那不妨来使用网络云加速试试吧!
7. Linux运维如何从初级进阶为高级
1、Linux基础
刚开始阶段需要熟悉Linux/Windows操作系统安装,目录结构、启动流程等。
2、系统管理
主要学习Linux系统,生产环境中基本都在字符界面完成工作,所以要掌握常用的几十个基本管理命令,包括用户管理、磁盘分区、软件包管理、文件权限、文本处理、进程管理、性能分析工具等。
3、网络基础
OSI和TCP/IP模型一定要熟悉。基本的交换机、路由器概念及实现原理要知道。
4、Shell脚本编程基础
掌握Shell基本语法结构,能编写简单的脚本即可。
中级
1、网络服务
最常用的网络服务一定得会部署,比如vsftp、nfs、samba、bind、dhcp等。
代码版本管理系统少不了,可以学习下主流的SVN和GIT,能部署和简单使用就可以了。
经常在服务器之间传输数据,所以要会使用:rsync和scp。
数据同步:inotify/sersync。
重复性完成一些工作,可写成脚本定时去运行,所以得会配置Linux下的定时任务服务crond。
2、Web服务
每个公司基本都会有网站,能让网站跑起来,就需要搭建Web服务平台了。
如果是用PHP语言开发的,通常搭建LAMP、LNMP网站平台,这是一个技术名词组合的拼写,分开讲就是得会部署Apache、Nginx、MySQL和PHP。
如果是JAVA语言开发的,通常使用Tomcat运行项目,为了提高访问速度,可以使用Nginx反向代理Tomcat,Nginx处理静态页面,Tomcat处理动态页面,实现动静分离。
不是会部署这么简单,还要知道HTTP协议工作原理、简单的性能调优。
3、数据库
数据库选择MySQL,它是世界上使用最为广泛的开源数据库。学它准没错!也要会一些简单的SQL语句、用户管理、常用存储引擎、数据库备份与恢复。
想要深入点,必须会主从复制、性能优化、主流集群方案:MHA、MGR等。NoSQL这么流行当然也少不了,学下Redis、MongoDB这两个就好了。
4、安全
安全很重要,不要等到系统被入侵了,再做安全策略,此时已晚!所以,当一台服务器上线后应马上做安全访问控制策略,比如使用iptables限制只允许信任源IP访问,关闭一些无用的服务和端口等。
一些常见的攻击类型一定得知道啊,否则怎么对症下药呢!比如CC、DDOS、ARP等。
5、监控系统
监控必不可少,是及时发现问题和追溯问题的救命稻草。可以选择学习主流的Zabbix开源监控系统,功能丰富,能满足基本的监控需求。监控点包括基本服务器资源、接口状态、服务性能、PV/UV、日志等方面。
也可以弄个仪表盘展示几个实时关键的数据,比如Grafana,会非常炫酷。
6、Shell脚本编程进阶
Shell脚本是Linux自动完成工作的利器,必须得熟练编写,所以得进一步学习函数、数组、信号、发邮件等。
文本处理三剑客(grep、sed、awk)得玩6啊,Linux下文本处理就指望它们了。
7、Python开发基础
Shell脚本只能完成一些基本的任务,想要完成更复杂些的任务,比如调用API、多进程等。就需要学高级语言了。
Python是运维领域使用最多的语言,简单易用,学它准没错!此阶段掌握基础就可以了,例如基本语法结构、文件对象操作、函数、迭代对象、异常处理、发邮件、数据库编程等。
8. 新手问一个nginx动静分离的问题,nginx相较于tomcat更适合处理静态资源,他的原理是需要
需要将tomcat的静态资源部署在nginx上
9. linux动静分离什么意思
proxy_pass属于ngx_http_proxy_mole,次模块可以将请求发送到一台服务器上
proxy_pass放在location标签中,可使用http
# location /poy{
# proxy_pass http://10.0.0.90;
# }
参数:
proxy_set_header,(当后端web服务器上有多个虚拟主机,需要使用header来区分代理的主机名)获取用户的主机名或者真是IP,以及代理者的IP地址
server {
listen 80;
server_name www.linuea123.com;
location / {
root html;
index index.html index.htm;
proxy_pass http://backend;
proxy_set_header Host $host;
}
获取用户的真是iP,截获客户请求地址(nginx开启即可,appche需要在LogFormat ""%{X-Forwareded-for}i添加)
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr获取用户的真是iP,截获客户请求地址
client_body_buffer_size:用于指导客户端请求主题缓冲区大小,用户访问先保存到本地在传递给用户
proxy_connect_timeout:表示与后端服务器连接的超时时间,既发起握手等待响应的超时时间
proxy_send_timeoit:表示后端服务数据返回最短时间,超过则断开
proxy_read_timeout:设置nginx从代理的后端服务器获取信息
proxy_buffer_size:设置缓存区大小,默认缓冲大小指令:proxy_buffers设置
# location /poy{
# proxy_pass http://10.0.0.90;
# proxy_set_header Host $host;
# }
proxy.conf如下:
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
目录和扩展名分离测试(还有浏览器的分离):
upstream jingtai {
server 10.0.1.10:80 weight=5 max_fails=10 fail_timeout=10s;
server 10.0.1.11:80 weight=5 max_fails=10 fail_timeout=10s;
}
upstream dongtai {
server 10.0.2.10:80 weight=5 max_fails=10 fail_timeout=10s;
server 10.0.2.11:80 weight=5 max_fails=10 fail_timeout=10s;
}
server {
listen 80;
server_name www.linuxea.com;
location / {
root html;
index index.html index.htm;
proxy_pass http://dongtai;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
location /image/ {
proxy_pass http://jingtai;
###################扩展名分离#######################
#location ~ .* (gif|jpg|jpeg|png|bmp|swf|css|js)$ {
# proxy_pass http://jingtai;
# include proxy.conf;
#}
#location ~ .*. (php|php3|php5.3)$ {
# proxy_pass httpd://jingtai;
# include proxy.conf;
#}
#################if#################################
#if($request_uri ~* ".*.(jsp|jsp*|do|do*)$")
#{
# proxy_pas httpd://jingtai;
#}
##################android&iphone####################
# listen 80;
# server_name app.linuxea.com;
# location / {
# if (http_user_agent ~* "android")
# {
# proxy_pass http://android;
#}
# if (http_user_agent ~* "iphone")
#{
# proxu_pass http:/iphone;
#}
# proxy_pass http://pc;
# include proxy.conf;
#}
###################proxy如下##########################
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
location /dongtai/ {
proxy_pass http://dongtai;
proxy_redirect off;
proxy_set_header Host $host;
p2roxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}
proxy参数
proxy_set_header Host $host; 用户请求的header传递给后端访问
p2roxy_set_header X-Real-IP $remote_addr;接收客户端ip,通过X-forwared给后端
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
代理和web超时响应参数如下:
proxy_connect_timeout 60;
proxy_send_timeout 30;
proxy_read_timeout 30;
内存和磁盘缓冲参数如下:
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
10. 如何解决百度云加速缓存
一、动静均缓存
网络云加速更新后取消了简单的勾选配置,其实对于我们来说真的说是福利了,作为首批先锋测试团成员,下面我就简单给大家设置一下!很多朋友解析到网络云加速后就放一边了,结果速度依然蜗牛,没有感受到飞的快感,那么今天我就要带大家一起挖掘一下网络云加速真正隐藏属性。
其实,新版网络云加速需要自己自定义规则来开启缓存!下面简单分享下动态网站在网络云加速下开启高速缓存的自定义规则,如图点击可进入设置
同样的,根据前面的黑白名单规则,我们先定个调,一般网站应该是这样的情况:前台都缓存、后台不缓存、个别页面要缓存或不缓存。
先看下网络云加速自定义规则的说明:
提示说明:
规则自定义指对“指定URL”进行页面级规则定制(支持通配符*)。可对任意子域名、目录、甚至单个URL进行针对性的加速缓存、安全防护等配置。列表中上下关系决定优先级,靠上规则优先级高。站长可以通过点击“↑”调整优先级。新增规则优先级最低,将于30s内生效。
URL指定支持通配符*,例如
1) 对img.xiangta.cc进行特定设置,需增加URL: img.xiangta.cc/*
2) 对xiangta.cc/news/ 进行特定设置,需增加URL: xiangta.cc/news/*
3) 对xiangta.cc所有html页面进行特定设置,需增加URL: xiangta.cc/*.html
支持通配,这就简单了!不过免费版只支持3条规则,这个就需要你们合理斟酌一下了,不要看我可以设置10条,我是网络云加速测试者,永久享用10条顶级以及很多功能。
优先级从上往下依次降低,所以我们要保证不缓存的规则写到最上面,才能不会缓存规则覆盖。
根据我个人经验,一般网站设置如下3条规则即可:
①、网站后台:xiangta.cc/admin/* 设置为不缓存或细致缓存
②、前端分页:xiangta.cc/?page=* 设置为不缓存或细致缓存
③、网站前台:*xiangta.cc* 设置为前后通配都缓存,缓存一般为1天或者12小时,20小时,根据自己更新速度设置缓存
Ps:细致缓存其实就是只缓存静态文件,其中缓存时间或有效期请自行设定即可,无需按图照办。另外由于新版网络云加速现在不能对单个域名设置了,所以最后的缓存规则是前后通配,保证某些网站的二级静态域名也缓存到位。另外,这只是我个人经验推荐的配置,比如评论分页就可以根据自己的需要设置为其他页面,此处分享仅供参考!
这样设置好了之后,网站前台刷几下就可以看到效果了,当然还可以F12到network里面去看header的缓存命中情况,这就不赘述了。注意本人网站是动态网站。
二、只缓存静态
动静都缓存可以解决国内低配VPS的2个尴尬:带宽和负载。带宽问题,国内普遍小水管就不用我多说了吧。负载问题则是动态网站一直以来的诟病,刷新快一点,CPU就满了。
但是,有一些网站,本地已有缓存或者访问流量并不高,他们不想开启全站缓存,因为会带来的各种数据不刷新问题。因此,我们如何既解决速度问题,又兼顾实时数据呢?
当然,开启CDN不进行整站缓存设置的话,大部分CDN会默认缓存静态文件,基本满足以上需求。但是某些CDN有个坑爹的规则:他会和谐某些关键词,访问有这些关键词的页面就提示违规并不显示。
如何解决这个问题?很简单,通过域名做动静分离即可。
将静态链接替换为二级域名,并开启CDN缓存。主域名则不走CDN或走CDN但不开启缓存。
将静态链接替换为二级域名应该不用我多说了吧?
可当然我个人网站的文件都是分离的。
主域名不走CDN也很简单,直接在解析时不开启缓存即可,也就是直接回源:
如果担心暴露IP,如果是阿里云ECS,你还可以CNAME到阿里云的WAF上:
走CDN开启缓存和走CDN禁止缓存应该也不用我多说了,上文都有分享规则。
如上设置后,你的网站的速度也会很快,当然前提是你的动态部分不卡才行。如果网站还是比较卡,但是你有不想开启纯静态导致数据不刷新,那么
①、如果是独立主机,可以考虑开启redis或opcache等php动态缓存
②、如果是虚拟主机,可以安装 DB Cache Reloaded Fix这类数据缓存插件
当然,如果你觉得还是不够快,那么心系与她一样,开启Nginx的fastcgi缓存!
在这里我推荐一下文件分流存储服务商,又拍云价格便宜而且效果很明显,节点我就不多说了,自己ping一下就知道了,配合着网络云加速,分分钟让你网站秒杀市面上20M带宽的VPS。
三、总结下区别
方案一 和 方案二 到底有什么区别呢?
方案一:是将动态和静态都强制缓存到CDN,这样就算本地不开启任何缓存,用户的访问速度也是杠杠的。如果想要给搜索引擎蜘蛛一样的速度,那么本地最好也开启一下静态缓存。
方案二:则是只缓存静态数据,动态数据依然请求到源服务器。这样做的好处是既解决了带宽尴尬,又解决了前台数据不能实时刷新的问题。因为占带宽的主要是静态文件,而非html代码。我们将大体积的静态文件托管到CDN加速,源服务器就只要负担体积很小的html代码流量了,速度自然就快了,如果觉得还是不够快那你就选择配合使用分布储存