Linode 的配置
digtalocean有新用户10美元优惠码,Linode同样有新用户优惠。
同样是美国的机房比较快,DigtalOcaen选择旧金山,Linode选弗里蒙特。
稳定上秒国内主机N条街。
都需要英文发Ticket支持,10多分钟就会有响应。
我的Linode经常被攻击,大多被上传一些恶意脚本来发垃圾邮件,通过access很容易发现脚本位置。
GoDaddy账户之间域名PUSH对方账户方法
海外注册商注册的域名就是非常的方便管理以及过户,手上有一枚域名被某人看中,达成协议之后肯定是需要过户的。域名在Godaddy注册商,要么是直接PUSH到他的账户中,要么就是通过解锁、提供转移码让其转到自己需要的注册商。对方选择前者,他自己有Godaddy账户的,这就相当方便。我直接把域名PUSH到他的账户就完事。
第一、登录我们自己的GODADDY账户
然后点击MANAGE MY DOMAINS进入我们的域名列表中。
第二、选择需要过户的域名准备过户设置
选择需要过户的域名,然后在MORE-BEGIN ACCOUNT CHANGE选择转出。这里有一个问题,如果域名状态是Pending是不可以转出的,我们需要先解决"Pending Whois Verification"问题。
第三、输入对方GODADDY资料
我们只需要得到对方账户的用户名或者CUSTOMER NUMBER,以及账户的邮箱,按照上面的图示范就可以转出,点击NEXT,下面如果有勾选的就勾选,反正就是一直到最后一步。
这样我们就完成域名PUSH到对方账户中,对方如何需要接收域名
GoDaddy ACCEPT接受Godaddy域名PUSH
第一、进入域名管理中心
点击上面的域名管理列表,然后看到域名的账户后台。
第二、准备同意转入
进入界面后,点击左上角的位置,看到"Domains" - "Pending Account Changes"。
然后在"Incoming Account Changes"下会看到对方PUSH过来的域名列表,我们选择域名,点击上面的ACCEPT按钮。
这里必须勾选条款同意,然后才可以点击OK按钮。
最后,这样我们在域名列表中,等待不到1分钟就可以看到域名已经到户,如果域名有出现状态是Pending,我们需要进行验证,解决方法参考"Pending Whois Verification"。同样的,我们需要检查域名的信息和DNS解析,有些时候在PUSH转出的时候即便我们勾选不变动DNS,但有些时候还是会变的,所以最好检查一遍。
注意:一定要记得把邮箱域名给修改哦,否则这个域名还是不是你的呀,所以我们必须要把邮箱修改过来了。
网站排名并不是各位简单的一个做内容或做外链了,如果我们要更好的做排名需要对现在排名数据进行深度分析了,这样并可以达到我们需要的效果。通过网站数据,更加放便我们了解网站的健康度,看出网站与用户之间的黏度,准确定位网站问题,及时的进行调整定制新的优化计划,让关键词排名更加稳定。
首先余应磊就来给大家探讨核心数据分析,例:1688086.com
做seo的通常会有这两个迷茫区:
1、不知道从哪开始,所有SEO优化基于数据分析开始。数据会告诉我们用户行为,页面好与坏。
2、做排名过程中不知道自己做的对不对。
大家经常会看网站IP PV 跳出率 页面点击图的数据,大部分人看过之后并没有从其中察觉到什么,这也是很多SEO做的很困难的原因,不懂得数据分析。今天余应磊和大家讲用户数据,只有用户数据才会反应我们优化好不好,用户体验好不好用户不会告诉你,只能通过用户数据的反馈。
大部分看数据的人会别人看什么自己看什么,关注热门数据。我们要关注大众不关注的个别特殊数据,我们很少关注进来就走的用户,我们常关注热门页面,但很少关心点击量少的页面。有些页面点击量少,但停留时间很长,我们是不是可以研究。
页面跳出率很高,分析是什么问题造成。我们并不知道用户喜欢什么,不喜欢什么。而线下店就可以知道。我们只有认真观察反常的数据。数据不能单一来看,pv浏览量,网站在一定用户情况下增加浏览量说明网站页面质量提升,ip、uv(独立访客)固定,pv浏览量增加。pv单独看是不对的。比如拿网站的跳出率来说,用户进入一个页面,没点任何链接就关闭页面就是100%的跳出率。如果点了就是0,相对低点好,但要结合页面停留时间看页面停留时间少,这个页面的内容价值是不高的。
跳出率很低,停留时间也很低,证明页面链接价值很高。内链价值高。这个页面内容价值很低。代表内链很好,百度也是可以给你网站加分,如果网站内容价值很差的话,这样就不利于关键词的排名。(内链是指网站内部的页面之间链接,友情链接是导出链接并不是内链。)
余应磊指出数据分析之重点:凡是大家关注的我不作为重点。凡是大家不关注的我作为重点。
大家最喜欢关注跳出率一般的,我喜欢关注0或100的跳出率100停留时间5分钟26个pv,这个页面解决南京讨债公司合不合法没满足用户二级需求。
停留时间说明页面质量高,看完就关掉说明没解决二级需求。南京讨债公司合不合法我们确实解决了,如果我们能解决二级需求。是不是我们跳出降低,pv上升、权重提高、排名很好。百度淘汰页面质量很低的,提升满足用户需求的页面。我们通过数据分析知道问题所在,是不是就可以改进。跳出率为0的,我们也要研究,是怎么做的好的。
怎么向朋友讨债这个页面,没有排名,如果排名在第二页,第一页没解决这个问题,用户急于解决这个问题,我们这个页面并没有解决,这个pv是不是健康的,我们的发现这个问题是不是该解决这个问题,是不是能排到第一名。用户是不是有别的问题没解决,我们可以解决这些问题。
那么本文所探讨的伪原创又是什么类型呢?从本质上来说,伪原创实际上是对别人文章的一种再加工,如果加工非常出色,完全能够将这些伪原创文章当成高质量的原创文章使用,并能够给用户带来更多的帮助,但是做好这样的伪原创文章显然并不容易,具体可以从下面几个方面着手。
第一,伪原创需要将文字进行全部科学化的加工。这极为关键,事实上我们知道天下文章一大抄,就看你抄的有没有水平,李白曾经仿造崔颢的《黄鹤楼》写了一篇《登金陵凤凰台》就是在伪原创之后的一种再加工,在艺术水平上根本不低于崔颢的作品,甚至还有的专家认为是青出于蓝而胜于蓝。由此可见伪原创并不是简单的抄袭,而是根据原文进行重新构思,写出类似的文章。经过这种科学化加工之后,能够展现出伪原创文章的可读性和高质量属性。这样也有利于伪原创在SEO优化中作用的提升。
第二,伪原创文章可以适当增加一些图片。有些原创的文章更多是从理论上进行分析,这些分析的内容虽然具有一定的质量,对于用户也会起到一定的帮助作用,但是这些过于理论化的分析文字往往会让用户觉得比较高深,那么用户对于这些知识的掌握就变得较难。此时如果你在伪原创这些内容时,可以对这些具有一定高深文字内容进行重新使用比较容易理解的文字进行写作,然后再配合一定的图片引入一些案例分析,让用户能够对比案例来分析这些内容,这样就能够让用户能够更加简单的掌握内容,而这样的内容也更有利于百度的收录,因为图文并茂的网页内容已经开始受到百度的关注。
第三,可以对原创的内容进行去芜存菁。因为现在网上的内容极为丰富,而且有的内容往往存在着非常??碌南窒螅?芏嘤没г诳赐旰芏辔淖种?笠哺悴磺宄?飧瞿谌莸降资鞘裁匆馑迹?墒侨绻?亩镣瓿赏??峋醯靡欢ǖ挠么Γ?墒钦庋?脑亩料匀环浅@朔咽奔洹6源宋痹?纯梢越?庑??碌奈淖纸?芯?蚧??梢越?锩娴暮诵慕?兄匦率崂恚?馐绷狡?恼碌谋局室庖迕挥惺裁床钜欤?墒嵌杂谟没У淖饔孟匀皇蔷???砗蟮奈痹?茨谌莞?邮艿接没?囗??/p>
从上面高难度加工的伪原创方法来看,这样的伪原创内容的建设显然具有较高的难度,但是这也是伪原创的正确方法,也是发挥伪原创内容价值的核心途径,那些简单的抄袭伪原创不仅不会增加网站的权重,甚至会影响权重,甚至被惩罚。所以作为SEO优化人员,必须要注重科学伪原创,这样才能够起到较佳的伪原创优化效果。
大型web应用缓存必不可少,本文我们讲了前端本地缓存,服务器端缓存,HTTP缓存机制,CDN缓存,html5离线存储等缓存策略。缓存策略
浏览器端的缓存规则
对于浏览器端的缓存来讲,这些规则是在HTTP协议头和HTML页面的Meta标签中定义的。他们分别从新鲜度和校验值两个维度来规定浏览器是否可以直接使用缓存中的副本,还是需要去源服务器获取更新的版本。
新鲜度(过期机制):也就是缓存副本有效期。一个缓存副本必须满足以下条件,浏览器会认为它是有效的,足够新的:
含有完整的过期时间控制头信息(HTTP协议报头),并且仍在有效期内;
浏览器已经使用过这个缓存副本,并且在一个会话中已经检查过新鲜度
满足以上两个情况的一种,浏览器会直接从缓存中获取副本并渲染。
校验值(验证机制):服务器返回资源的时候有时在控制头信息带上这个资源的实体标签Etag(Entity Tag),它可以用来作为浏览器再次请求过程的校验标识。如过发现校验标识不匹配,说明资源已经被修改或过期,浏览器需求重新获取资源内容。
一个重要的概念
缓存命中率:一个缓存的有效性是依照缓存的命中率来度量。它是根据得到数据请求次数与所有请求次数的比率。缓存命中率高意味着有很高的比率数据是从缓存中获取到数据的。
Web缓存的作用
减少网络带宽消耗
降低服务器压力
减少网络延迟,加快页面打开速度
HTTP缓存机制
缓存行为主要由缓存策略决定,而缓存策略由内容拥有者设置。这些策略主要通过特定的HTTP头部来清晰地表达。
当一个用户发起一个静态资源请求的时候,浏览器会通过以下几步来获取资源:
本地缓存阶段:先在本地查找该资源,如果有发现该资源,而且该资源还没有过期,就使用这一个资源,完全不会发送http请求到服务器;
协商缓存阶段:如果在本地缓存找到对应的资源,但是不知道该资源是否过期或者已经过期,则发一个http请求到服务器,然后服务器判断这个请求,如果请求的资源在服务器上没有改动过,则返回304,让浏览器使用本地找到的那个资源;
缓存失败阶段:当服务器发现请求的资源已经修改过,或者这是一个新的请求(在本来没有找到资源),服务器则返回该资源的数据,并且返回200, 当然这个是指找到资源的情况下,如果服务器上没有这个资源,则返回404。
用户操作行为与缓存
浏览器中的操作对缓存的影响:
强制刷新 ? 当按下ctrl+F5来刷新页面的时候, 浏览器将绕过各种缓存(本地缓存和协商缓存), 直接让服务器返回最新的资源;
普通刷新 ? 当按下F5来刷新页面的时候,浏览器将绕过本地缓蹲来发送请求到服务器, 此时, 协商缓存是有效的
回车或转向 ? 当在地址栏上输入回车或者按下跳转按钮的时候, 所有缓存都生效
本地缓存阶段
Expires
指定缓存到期GMT的绝对时间,如果设了max-age,max-age就会覆盖expires。如果expires到期需要重新请求。
Cache-Control
Cache-Control:这个是http 1.1中为了弥补 Expires 缺陷新加入的。
对已缓存的内容进行控制:
Cache-control: public表示缓存的版本可以被代理服务器或者其他中间服务器识别。
Cache-control: private意味着这个文件对不同的用户是不同的。只有用户自己的浏览器能够进行缓存,公共的代理服务器不允许缓存。
Cache-control: no-cache意味着文件的内容不应当被缓存。这在搜索或者翻页结果中非常有用,因为同样的URL,对应的内容会发生变化。
其他相关控制字段:
max-age: 指定缓存过期的相对时间秒数,max-ag=0或者是负值,浏览器会在对应的缓存中把Expires设置为1970-01-01 08:00:00 。
s-maxage: 类似于max-age,只用在共享缓存上,比如proxy.
public: 通常情况下需要http身份验证的情况,响应是不可cahce的,加上public可以使它被cache。
no-cache: 强制浏览器在使用cache拷贝之前先提交一个http请求到源服务器进行确认。这对身份验证来说是非常有用的,能比较好的遵守 (可以结合public进行考虑)。它对维持一个资源总是最新的也很有用,与此同时还不完全丧失cache带来的好处),因为它在本地是有拷贝的,但是在用之前都进行了确认,这样http请求并未减少,但可能会减少一个响应体。
no-store: 告诉浏览器在任何情况下都不要进行cache,不在本地保留拷贝。
must-revalidate: 强制浏览器严格遵守你设置的cache规则。
proxy-revalidate: 强制proxy严格遵守你设置的cache规则。
用法举例: Cache-Control: max-age=3600, must-revalidate
cache:使用本地缓存,不发生请求。
协商缓存阶段
Last-Modified & if-modified-since
Last-Modified与If-Modified-Since是一对报文头,属于http 1.0。
last-modified是WEB服务器认为对象的最后修改时间,比如文件的最后修改时间,动态页面的最后产生时间。
ETag & If-None-Match
ETag与If-None-Match是一对报文,属于http 1.1。
ETag可以用来解决这种问题。ETag是一个文件的唯一标志符。就像一个哈希或者指纹,每个文件都有一个单独的标志,只要这个文件发生了改变,这个标志就会发生变化。
ETag机制类似于乐观锁机制,如果请求报文的ETag与服务器的不一致,则表示该资源已经被修改过来,需要发最新的内容给浏览器。
同时使用这两个报文头,在完全匹配If-Modified-Since和If-None-Match即检查完修改时间和Etag之后,如都与服务器的相符,服务器返回304,否则,发送最新内容给浏览器。
Etag/lastModified过程如下:
1.客户端请求一个页面(A)。
2.服务器返回页面A,并在给A加上一个Last-Modified/ETag。
3.客户端展现该页面,并将页面连同Last-Modified/ETag一起缓存。
4.客户再次请求页面A,并将上次请求时服务器返回的Last-Modified/ETag一起传递给服务器。
5.服务器检查该Last-Modified或ETag,并判断出该页面自上次客户端请求之后还未被修改,直接返回响应304和一个空的响应体。
304:通过If-Modified-Since If-Match判断资源是否修改,如未修改则返回304,发生了一次请求,但请求内容长度为0,节省了带宽。 如果有多台负载均衡的服务器,不同服务器计算出的Etag可能不同,这样就会造成资源的重复加载。
Etag 主要为了解决 Last-Modified 无法解决的一些问题:
1、一些文件也许会周期性的更改,但是他的内容并不改变(仅仅改变的修改时间),这个时候我们并不希望客户端认为这个文件被修改了,而重新GET;
2、某些文件修改非常频繁,比如在秒以下的时间内进行修改,(比方说1s内修改了N次),If-Modified-Since能检查到的粒度是s级的,这种修改无法判断(或者说UNIX记录MTIME只能精确到秒);
3、某些服务器不能精确的得到文件的最后修改时间。
其他标签
Content-Length:尽管并没有在缓存中明确涉及,Content-Length头部在设置缓存策略时很重要。某些软件如果不提前获知内容的大小以留出足够空间,则会拒绝缓存该内容。
Vary:缓存系统通常使用请求的主机和路径作为存储该资源的键。当判断一个请求是否是请求同样内容时,Vary头部可以被用来提醒缓存系统需要注意另一个附加头部。它通常被用来告诉缓存系统同样注意Accept-Encoding头部,以便缓存系统能够区分压缩和未压缩的内容。
服务器端缓存
CDN缓存
CDN缓存,也叫网关缓存、反向代理缓存。浏览器先向CDN网关发起WEB请求,网关服务器后面对应着一台或多台负载均衡源服务器,会根据它们的负载请求,动态地请求转发到合适的源服务器上。
CDN缓存策略
CDN边缘节点缓存策略因服务商不同而不同,但一般都会遵循http标准协议,通过http响应头中的Cache-control: max-age的字段来设置CDN边缘节点数据缓存时间。
当客户端向CDN节点请求数据时,CDN节点会判断缓存数据是否过期,若缓存数据并没有过期,则直接将缓存数据返回给客户端;否则,CDN节点就会向源站发出回源请求(back to the source request),从源站拉取最新数据,更新本地缓存,并将最新数据返回给客户端。
CDN服务商一般会提供基于文件后缀、目录多个维度来指定CDN缓存时间,为用户提供更精细化的缓存管理。
CDN缓存时间会对“回源率”产生直接的影响。若CDN缓存时间较短,CDN边缘节点上的数据会经常失效,导致频繁回源,增加了源站的负载,同时也增大的访问延时;若CDN缓存时间太长,会带来数据更新时间慢的问题。开发者需要增对特定的业务,来做特定的数据缓存时间管理。
CDN缓存刷新CDN边缘节点对开发者是透明的,相比于浏览器Ctrl+F5的强制刷新来使浏览器本地缓存失效,开发者可以通过CDN服务商提供的“刷新缓存”接口来达到清理CDN边缘节点缓存的目的。这样开发者在更新数据后,可以使用“刷新缓存”功能来强制CDN节点上的数据缓存过期,保证客户端在访问时,拉取到最新的数据。
CDN的优势
CDN节点解决了跨运营商和跨地域访问的问题,访问延时大大降低;
大部分请求在CDN边缘节点完成,CDN起到了分流作用,减轻了源站的负载。
CDN缓存的缺点
当网站更新时,如果CDN节点上数据没有及时更新,即便用户再浏览器使用Ctrl +F5的方式使浏览器端的缓存失效,也会因为CDN边缘节点没有同步最新数据而导致用户访问异常。
Combo服务
Combo服务,也就是我们在最终拼接生成页面资源引用的时候,并不是生成多个独立的link标签,而是将资源地址拼接成一个url路径,请求一种线上的动态资源合并服务,从而实现减少HTTP请求的需求。
/??fle1,file2,file3,...的url请求响应就是动态combo服务提供的,它的原理很简单,就是根据url找到对应的多个文件,合并成一个文件来响应请求,并将其缓存,以加快访问速度。
但它也存在一些缺陷:
浏览器有url长度限制,因此不能无限制的合并资源。
如果用户在网站内有公共资源的两个页面间跳转访问,由于两个页面的combo的url不一样导致用户不能利用浏览器缓存来加快对公共资源的访问速度。如果combo的url中任何一个文件发生改变,都会导致整个url缓存失效,从而导致浏览器缓存利用率降低。
HTML5缓存思路
HTML5离线应用缓存manifest
用户可离线访问你的应用,这对于无法随时保持联网状态的移动终端用户来说尤其重要
用户访问本地的缓存文件,通常意味着更快的访问速度
仅仅加载被修改过的资源,避免同一资源对服务器多次的请求,大大降低了对服务器的访问压力
manifest文件罗列了需要被缓存的文件清单。
CACHE MANIFEST # wanz app v1 # 指明缓存入口 CACHE: index.html style.css images/logo.png scripts/main.js # 以下资源必须在线访问 NETWORK: login.php # 如果index.php无法访问则用404.html代替 FALLBACK: /index.php /404.html
这个过程中有几个问题需要注意:
如果服务器对离线的资源进行了更新,那么必须更新manifest文件之后这些资源才能被浏览器重新下载,如果只是更新了资源而没有更新manifest文件的话,浏览器并不会重新下载资源,也就是说还是使用原来离线存储的资源。
对于manifest文件进行缓存的时候需要十分小心,因为可能出现一种情况就是你对manifest文件进行了更新,但是http的缓存规则告诉浏览器本地缓存的manifest文件还没过期,这个情况下浏览器还是使用原来的manifest文件,所以对于manifest文件最好不要设置缓存。
浏览器在下载manifest文件中的资源的时候,它会一次性下载所有资源,如果某个资源由于某种原因下载失败,那么这次的所有更新就算是失败的,浏览器还是会使用原来的资源。
在更新了资源之后,新的资源需要到下次再打开app才会生效,如果需要资源马上就能生效,那么可以使用window.applicationCache.swapCache()方法来使之生效,出现这种现象的原因是浏览器会先使用离线资源加载页面,然后再去检查manifest是否有更新,所以需要到下次打开页面才能生效。
localStorage
localStorage.fresh = “vfresh.org”; //设置一个键值 var a = localStorage.fresh; //获取键值 //API //清空storage localStorage.clear(); //设置一个键值 localStorage.setItem(“fresh”,“vfresh.org”); //获取一个键值 localStorage.getItem(“fresh”); //return “vfresh.org” //获取指定下标的键的名称(如同Array) localStorage.key(0); //return “fresh” //删除一个键值 localStorage.removeItem(“fresh”);
与sessionStroage主要的区别是存储时间和作用域。
另外,严格说来localStorage更像是cookie一类的本地数据存储。但在标准缓存之外,开发人员可以用浏览器的一些功能来实现自定义的客户端“缓存”。
构建可缓存站点的建议
来自alloyteam:如何构建可缓存站点
同一个资源保证URL的稳定性
给Css、js、图片等资源增加HTTP缓存头,并强制入口Html不被缓存
减少对Cookie的依赖
减少对HTTPS加密协议的使用
多用Get方式请求动态Cgi
动态CGI也是可以被缓存