建站

建站

wecenter 设置伪静态

博客blog 发表了文章 • 0 个评论 • 28 次浏览 • 2017-10-31 20:43 • 来自相关话题

1、编辑网站根目录 .htaccess 文件 添加以下代码
RewriteBase / 需不需要加看情况 如果不生效 则加上
我的网站托管到000webhost上 需要添加这一行


RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]



2、网站后台管理 站点功能配置处
选择开启伪静态
在自定义路由处填写

/article/(:any)===/article_(:any).html
/question/(:any)===/question_(:any).html



3、观察效果
随便打开一个问题或文章 地址已经变了

/question/20 已经变成了 /question_20.html 查看全部
1、编辑网站根目录 .htaccess 文件 添加以下代码
RewriteBase / 需不需要加看情况 如果不生效 则加上
我的网站托管到000webhost上 需要添加这一行


RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]



2、网站后台管理 站点功能配置处
选择开启伪静态
在自定义路由处填写

/article/(:any)===/article_(:any).html
/question/(:any)===/question_(:any).html



3、观察效果
随便打开一个问题或文章 地址已经变了

/question/20 已经变成了 /question_20.html


wecenter 使用highlight.js 高亮代码

博客blog 发表了文章 • 0 个评论 • 69 次浏览 • 2017-10-13 00:54 • 来自相关话题

1、编辑网站
views/default/global/header_meta.tpl

在<head></head>中加入
<pre><code class="html">
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script>
</code></pre>

2、使用
<pre><code class="html">
<pre><code class="html">
放置代码
</code></pre>
</code></pre>

3、highlight.js详细教程
<a href="https://highlightjs.org/" rel="nofollow" target="_blank">https://highlightjs.org/</a>



===================
使用bbcode 代替 pre code
1、编辑网站

修改system/Services/BBCode.php

org标注的是原始代码 把这两行替换成org下面的一行
<pre><code class="php">
private function _code_callback($match)
{
//return "<pre>" . str_replace('[', '<span>[</span>', $match[1]) . "</pre>"; // org
return "<pre><code $match[1]>$match[2]</code></pre>";
}



public function __construct()
{
// Replace [code]...[//code] with <pre><code>...</code></pre>
// $this->bbcode_table["/\[code\](.*?)\[\/code\]/is"] = '_code_callback'; // org
$this->bbcode_table["/\[code(.*?)\](.*?)\[\/code\]/is"] = '_code_callback';
}

<code></pre>

2、使用

[code class="html"]
放置代码
注意//code 要写成/code
我这里避免真的当代码转了 所以放置了两个//
[//code]


TODO:
20191025 网站重新部署好 bbcode没生效 还没时间调查 查看全部
1、编辑网站
views/default/global/header_meta.tpl

在<head></head>中加入
<pre><code class="html">
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script>
</code></pre>

2、使用
<pre><code class="html">
<pre><code class="html">
放置代码
</code></pre>
</code></pre>

3、highlight.js详细教程
<a href="https://highlightjs.org/" rel="nofollow" target="_blank">https://highlightjs.org/</a>



===================
使用bbcode 代替 pre code
1、编辑网站

修改system/Services/BBCode.php

org标注的是原始代码 把这两行替换成org下面的一行
<pre><code class="php">
private function _code_callback($match)
{
//return "<pre>" . str_replace('[', '<span>[</span>', $match[1]) . "</pre>"; // org
return "<pre><code $match[1]>$match[2]</code></pre>";
}



public function __construct()
{
// Replace [code]...[//code] with <pre><code>...</code></pre>
// $this->bbcode_table["/\[code\](.*?)\[\/code\]/is"] = '_code_callback'; // org
$this->bbcode_table["/\[code(.*?)\](.*?)\[\/code\]/is"] = '_code_callback';
}

<code></pre>

2、使用

[code class="html"]
放置代码
注意//code 要写成/code
我这里避免真的当代码转了 所以放置了两个//
[//code]


TODO:
20191025 网站重新部署好 bbcode没生效 还没时间调查

使用CloudFlare加速和保护你的境外网站

博客blog 发表了文章 • 0 个评论 • 222 次浏览 • 2017-10-11 21:32 • 来自相关话题

博主的小站搭建在OpenShift Paas上,使用的免费账户,目前收费账户不面向大陆开放。免费看起很诱人,其实弊端也很多,首先你是小白鼠,软件更新都通过免费用户测试,然后再升级给收费用户,也就是说服务不稳定啊,宕机啊,是常有的事情;其次,只给免费用户提供了512M内存和1G存储空间,貌似还有流量和连接数的限制,但官方没有给出具体数值;然后如果你的网站经常遭受攻击,影响他们正常运营,他们有权停止你的服务。
如果以上你都能接受,又是搭建的比较小的网站,可以尝试下,否则还是使用国内收费服务吧,一些大牌厂商还是值得信赖的。
不过博主就这点出息,选择了国外的免费服务,首先美国是个比较注重人权的国家,就算是免费用户,不会说随随便便就把你干掉,比某些国内厂商靠谱多了,然后免去了备案的烦恼,对于向往自由的我,备案就像栓了个绳,非常不爽。
不管网站建在哪都会遭受到一些恶意攻击,对于建在国外网站,还要承受访问速度慢的苦恼,接下来,也是本文的重点,为大家介绍使用CloudFlare来加速和保护你的境外网站。大陆的站长就回避吧,使用它不但加速不了,还会拖累你的速度。考虑安全和速度,找个国内的CDN使用吧,比如360或者安全宝。

注册
网址:https://www.cloudflare.com/
不细说了,自己摸索下吧,看不懂的补补英语吧。如果打不开,尝试翻墙。网站被墙了没事,只要分配的CDN节点的IP没有被墙,就可以使用。

基础功能
如果使用CloudFlare的CDN,就必须使用他的DNS解析服务,所以要到你域名提供商那里修改NameServers,改成CloudFlare提供的记录。
注册之后,找Add site,将自己的域名输入,他会自动扫描你当前的DNS设置,或者你自己手动进行配置下。 非常简单,配置好DNS后,CloudFlare就开始加速你的网站了,并且自动提供了基础的防攻击功能。







注意看DNS记录的Status一栏,上面一个带颜色的图标指示该条记录在使用CDN功能,下面一个不带颜色的指示该条记录没有使用CDN功能。直接点击图标可以打开或者关闭,试一下吧。

防盗链功能
CloudFlare提供了图片防盗链功能,防止其他网站引用你的图片,保护你的流量不白白流失。
开启方法:

点击如下图标







进入网页后,往下拉,找到下图中所示的项目,点击打开开关即可。






稍微高级点的CDN功能
CloudFlare默认按文件扩展名缓存文件,只有下图所示的扩展名的文件才会进行缓存,其他请求会交给原站进行响应。







我发现使用默认的缓存功能,效果不明显,缓存的请求和流量占总数的百分比很小,以下是CloudFlare的统计数据:
















怎么能改善下呢?CloudFlare有Page Rules这项功能,可以添加URL Pattern,匹配上的设置成Cache或者Bypass(不缓存)。
于是我为自己的小站添加了两条规则,一条规则是将uploads目录下静态文件全部缓存,这里的文件有pdf、zip等格式的文件,CloudFlare默认不缓存。






之前我给自己的网站开启了伪静态,第二条规则把伪静态的html页面也一起缓存了,因为博客文章改动不大,差不多相当于静态页面了。这条规则有啥影响还不得知,暂时没有遇到问题,可以想象到的一个影响是,更新了一个文章后,浏览器不能看到实时看到,但实际情况是可以更新,这块是挺智能的。






这条规则注意设置项:
Custom caching :Cache Everything
Edge cache expire TTL : 4 hours
还有目前已知的可能会引起问题的设置,Rocket Loader 最好设置成no,否则他能识别出伪静态,不进行缓存。这里面很多设置项,感兴趣的可以研究下,英语不好,我就不细细研究每一项是什么意思了,目前的设置满足我的要求了,过几天看效果。


20150915 出问题了
直接缓存伪静态的博客页面,存在的问题:
1、管理员后台登陆后,查看博客,由于是缓存的静态页面,就失去了登陆信息。
2、读者评论后,返回的页面依然是缓存的静态页面,看不到自己实施的评论。
基于以上原因去掉了缓存伪静态html页面的功能,但如果你的小站流量压力比较大,权衡一下,可以继续开着该功能,上面上个缺点也不是不能接受。博主会继续研究,充分挖掘ClareFlare的功能,尽可能多的缓存页面。


怎么确定页面被缓存了
这里有个在线测试网站的工具:http://www.webpagetest.org
输入你要测试的网址,点击开始测试。找一个文章的地址,比如:http://blog.dreamshare.in/over ... .html,这样可以测试下伪静态的页面缓存没有。
测试完成点击Details查看详细测试结果,先不关心其他结果,翻到页面下方 Request Headers 点击Expand All 查看所有请求和响应。

Request 1: http://blog.dreamshare.in/over ... .html

Response Headers:
HTTP/1.1 200 OK
Date: Mon, 14 Sep 2015 16:16:54 GMT
Content-Type: text/html; charset=UTF-8
...
CF-Cache-Status: HIT
...
Server: cloudflare-nginx
CF-RAY: 225d662598281e71-SJC
Content-Encoding: gzip

Request 5: http://blog.dreamshare.in/wp-i ... 4.2.4

Response Headers:
HTTP/1.1 200 OK
Date: Mon, 14 Sep 2015 16:16:55 GMT
Content-Type: text/css
...
CF-Cache-Status: HIT
...
Accept-Ranges: bytes
Server: cloudflare-nginx
CF-RAY: 225d662908581e71-SJC


查看CF-Cache-Status,如果是HIT,说明该请求是被缓存的,直接由CDN响应的,HIT的越多,CDN作用越大,源站的压力就越小。仔细比对下你自己设置的规则有没有生效。
附CF-Cache-Status说明:
HIT: resource in cache, served from CDN cache.
MISS: resource not in cache, served from origin server.
EXPIRED: resource was in cache but has since expired, served from origin server.
STALE: resource is in cache but is expired, served from CDN cache because another visitor's request has caused the CDN to fetch the resource from the origin server. This is a very uncommon occurrence and will only impact visitors that want the page right when it expires.
IGNORED: resource is cacheable but not in cache because it hasn't met the threshold (number of requests, usually 3), served from origin server. Will become a HIT once it passes the threshold.
REVALIDATED: REVALIDATED means we had a stale representation of the object in our cache, but we revalidated it by checking using an If-Modified-Since header.
 



20160108 重新设置的CDN PageRule
启用了以下三条规则:






1、缓存所有html结尾的url 也就是所有的伪静态页面都缓存了 之前使用了WP自带评论功能 缓存伪静态页面存在问题
现在使用了多说评论功能 评论不再有之前的问题了
2、dreamshare.in 301 重定向到 blog.dreamshare.in
3、缓存所有wp-content/uploads下的文件 查看全部

博主的小站搭建在OpenShift Paas上,使用的免费账户,目前收费账户不面向大陆开放。免费看起很诱人,其实弊端也很多,首先你是小白鼠,软件更新都通过免费用户测试,然后再升级给收费用户,也就是说服务不稳定啊,宕机啊,是常有的事情;其次,只给免费用户提供了512M内存和1G存储空间,貌似还有流量和连接数的限制,但官方没有给出具体数值;然后如果你的网站经常遭受攻击,影响他们正常运营,他们有权停止你的服务。


如果以上你都能接受,又是搭建的比较小的网站,可以尝试下,否则还是使用国内收费服务吧,一些大牌厂商还是值得信赖的。


不过博主就这点出息,选择了国外的免费服务,首先美国是个比较注重人权的国家,就算是免费用户,不会说随随便便就把你干掉,比某些国内厂商靠谱多了,然后免去了备案的烦恼,对于向往自由的我,备案就像栓了个绳,非常不爽。


不管网站建在哪都会遭受到一些恶意攻击,对于建在国外网站,还要承受访问速度慢的苦恼,接下来,也是本文的重点,为大家介绍使用CloudFlare来加速和保护你的境外网站。大陆的站长就回避吧,使用它不但加速不了,还会拖累你的速度。考虑安全和速度,找个国内的CDN使用吧,比如360或者安全宝。



注册


网址:https://www.cloudflare.com/

不细说了,自己摸索下吧,看不懂的补补英语吧。如果打不开,尝试翻墙。网站被墙了没事,只要分配的CDN节点的IP没有被墙,就可以使用。



基础功能


如果使用CloudFlare的CDN,就必须使用他的DNS解析服务,所以要到你域名提供商那里修改NameServers,改成CloudFlare提供的记录。


注册之后,找Add site,将自己的域名输入,他会自动扫描你当前的DNS设置,或者你自己手动进行配置下。 非常简单,配置好DNS后,CloudFlare就开始加速你的网站了,并且自动提供了基础的防攻击功能。



status.png



注意看DNS记录的Status一栏,上面一个带颜色的图标指示该条记录在使用CDN功能,下面一个不带颜色的指示该条记录没有使用CDN功能。直接点击图标可以打开或者关闭,试一下吧。



防盗链功能


CloudFlare提供了图片防盗链功能,防止其他网站引用你的图片,保护你的流量不白白流失。


开启方法:

点击如下图标

scrapeshield.png



进入网页后,往下拉,找到下图中所示的项目,点击打开开关即可。

hotlink-protection.png


稍微高级点的CDN功能


CloudFlare默认按文件扩展名缓存文件,只有下图所示的扩展名的文件才会进行缓存,其他请求会交给原站进行响应。




extensions.png


我发现使用默认的缓存功能,效果不明显,缓存的请求和流量占总数的百分比很小,以下是CloudFlare的统计数据:


request.png


bandwidth.png


performance.png



怎么能改善下呢?CloudFlare有Page Rules这项功能,可以添加URL Pattern,匹配上的设置成Cache或者Bypass(不缓存)。


于是我为自己的小站添加了两条规则,一条规则是将uploads目录下静态文件全部缓存,这里的文件有pdf、zip等格式的文件,CloudFlare默认不缓存。



upload-rule.png


之前我给自己的网站开启了伪静态,第二条规则把伪静态的html页面也一起缓存了,因为博客文章改动不大,差不多相当于静态页面了。这条规则有啥影响还不得知,暂时没有遇到问题,可以想象到的一个影响是,更新了一个文章后,浏览器不能看到实时看到,但实际情况是可以更新,这块是挺智能的。



html-rule.png


这条规则注意设置项:
Custom caching :Cache Everything
Edge cache expire TTL : 4 hours
还有目前已知的可能会引起问题的设置,Rocket Loader 最好设置成no,否则他能识别出伪静态,不进行缓存。这里面很多设置项,感兴趣的可以研究下,英语不好,我就不细细研究每一项是什么意思了,目前的设置满足我的要求了,过几天看效果。




20150915 出问题了


直接缓存伪静态的博客页面,存在的问题:


1、管理员后台登陆后,查看博客,由于是缓存的静态页面,就失去了登陆信息。


2、读者评论后,返回的页面依然是缓存的静态页面,看不到自己实施的评论。


基于以上原因去掉了缓存伪静态html页面的功能,但如果你的小站流量压力比较大,权衡一下,可以继续开着该功能,上面上个缺点也不是不能接受。博主会继续研究,充分挖掘ClareFlare的功能,尽可能多的缓存页面。




怎么确定页面被缓存了


这里有个在线测试网站的工具:http://www.webpagetest.org

输入你要测试的网址,点击开始测试。找一个文章的地址,比如:http://blog.dreamshare.in/over ... .html,这样可以测试下伪静态的页面缓存没有。


测试完成点击Details查看详细测试结果,先不关心其他结果,翻到页面下方 Request Headers 点击Expand All 查看所有请求和响应。



Request 1: http://blog.dreamshare.in/over ... .html

Response Headers:
HTTP/1.1 200 OK
Date: Mon, 14 Sep 2015 16:16:54 GMT
Content-Type: text/html; charset=UTF-8
...
CF-Cache-Status: HIT
...
Server: cloudflare-nginx
CF-RAY: 225d662598281e71-SJC
Content-Encoding: gzip

Request 5: http://blog.dreamshare.in/wp-i ... 4.2.4

Response Headers:
HTTP/1.1 200 OK
Date: Mon, 14 Sep 2015 16:16:55 GMT
Content-Type: text/css
...
CF-Cache-Status: HIT
...
Accept-Ranges: bytes
Server: cloudflare-nginx
CF-RAY: 225d662908581e71-SJC


查看CF-Cache-Status,如果是HIT,说明该请求是被缓存的,直接由CDN响应的,HIT的越多,CDN作用越大,源站的压力就越小。仔细比对下你自己设置的规则有没有生效。


附CF-Cache-Status说明:

HIT: resource in cache, served from CDN cache.


MISS: resource not in cache, served from origin server.


EXPIRED: resource was in cache but has since expired, served from origin server.


STALE: resource is in cache but is expired, served from CDN cache because another visitor's request has caused the CDN to fetch the resource from the origin server. This is a very uncommon occurrence and will only impact visitors that want the page right when it expires.


IGNORED: resource is cacheable but not in cache because it hasn't met the threshold (number of requests, usually 3), served from origin server. Will become a HIT once it passes the threshold.


REVALIDATED: REVALIDATED means we had a stale representation of the object in our cache, but we revalidated it by checking using an If-Modified-Since header.


 




20160108 重新设置的CDN PageRule


启用了以下三条规则:

cdn-pagerule.png


1、缓存所有html结尾的url 也就是所有的伪静态页面都缓存了 之前使用了WP自带评论功能 缓存伪静态页面存在问题
现在使用了多说评论功能 评论不再有之前的问题了
2、dreamshare.in 301 重定向到 blog.dreamshare.in
3、缓存所有wp-content/uploads下的文件


wecenter 设置伪静态

博客blog 发表了文章 • 0 个评论 • 28 次浏览 • 2017-10-31 20:43 • 来自相关话题

1、编辑网站根目录 .htaccess 文件 添加以下代码
RewriteBase / 需不需要加看情况 如果不生效 则加上
我的网站托管到000webhost上 需要添加这一行


RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]



2、网站后台管理 站点功能配置处
选择开启伪静态
在自定义路由处填写

/article/(:any)===/article_(:any).html
/question/(:any)===/question_(:any).html



3、观察效果
随便打开一个问题或文章 地址已经变了

/question/20 已经变成了 /question_20.html 查看全部
1、编辑网站根目录 .htaccess 文件 添加以下代码
RewriteBase / 需不需要加看情况 如果不生效 则加上
我的网站托管到000webhost上 需要添加这一行


RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]



2、网站后台管理 站点功能配置处
选择开启伪静态
在自定义路由处填写

/article/(:any)===/article_(:any).html
/question/(:any)===/question_(:any).html



3、观察效果
随便打开一个问题或文章 地址已经变了

/question/20 已经变成了 /question_20.html


wecenter 使用highlight.js 高亮代码

博客blog 发表了文章 • 0 个评论 • 69 次浏览 • 2017-10-13 00:54 • 来自相关话题

1、编辑网站
views/default/global/header_meta.tpl

在<head></head>中加入
<pre><code class="html">
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script>
</code></pre>

2、使用
<pre><code class="html">
<pre><code class="html">
放置代码
</code></pre>
</code></pre>

3、highlight.js详细教程
<a href="https://highlightjs.org/" rel="nofollow" target="_blank">https://highlightjs.org/</a>



===================
使用bbcode 代替 pre code
1、编辑网站

修改system/Services/BBCode.php

org标注的是原始代码 把这两行替换成org下面的一行
<pre><code class="php">
private function _code_callback($match)
{
//return "<pre>" . str_replace('[', '<span>[</span>', $match[1]) . "</pre>"; // org
return "<pre><code $match[1]>$match[2]</code></pre>";
}



public function __construct()
{
// Replace [code]...[//code] with <pre><code>...</code></pre>
// $this->bbcode_table["/\[code\](.*?)\[\/code\]/is"] = '_code_callback'; // org
$this->bbcode_table["/\[code(.*?)\](.*?)\[\/code\]/is"] = '_code_callback';
}

<code></pre>

2、使用

[code class="html"]
放置代码
注意//code 要写成/code
我这里避免真的当代码转了 所以放置了两个//
[//code]


TODO:
20191025 网站重新部署好 bbcode没生效 还没时间调查 查看全部
1、编辑网站
views/default/global/header_meta.tpl

在<head></head>中加入
<pre><code class="html">
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script>
</code></pre>

2、使用
<pre><code class="html">
<pre><code class="html">
放置代码
</code></pre>
</code></pre>

3、highlight.js详细教程
<a href="https://highlightjs.org/" rel="nofollow" target="_blank">https://highlightjs.org/</a>



===================
使用bbcode 代替 pre code
1、编辑网站

修改system/Services/BBCode.php

org标注的是原始代码 把这两行替换成org下面的一行
<pre><code class="php">
private function _code_callback($match)
{
//return "<pre>" . str_replace('[', '<span>[</span>', $match[1]) . "</pre>"; // org
return "<pre><code $match[1]>$match[2]</code></pre>";
}



public function __construct()
{
// Replace [code]...[//code] with <pre><code>...</code></pre>
// $this->bbcode_table["/\[code\](.*?)\[\/code\]/is"] = '_code_callback'; // org
$this->bbcode_table["/\[code(.*?)\](.*?)\[\/code\]/is"] = '_code_callback';
}

<code></pre>

2、使用

[code class="html"]
放置代码
注意//code 要写成/code
我这里避免真的当代码转了 所以放置了两个//
[//code]


TODO:
20191025 网站重新部署好 bbcode没生效 还没时间调查

使用CloudFlare加速和保护你的境外网站

博客blog 发表了文章 • 0 个评论 • 222 次浏览 • 2017-10-11 21:32 • 来自相关话题

博主的小站搭建在OpenShift Paas上,使用的免费账户,目前收费账户不面向大陆开放。免费看起很诱人,其实弊端也很多,首先你是小白鼠,软件更新都通过免费用户测试,然后再升级给收费用户,也就是说服务不稳定啊,宕机啊,是常有的事情;其次,只给免费用户提供了512M内存和1G存储空间,貌似还有流量和连接数的限制,但官方没有给出具体数值;然后如果你的网站经常遭受攻击,影响他们正常运营,他们有权停止你的服务。
如果以上你都能接受,又是搭建的比较小的网站,可以尝试下,否则还是使用国内收费服务吧,一些大牌厂商还是值得信赖的。
不过博主就这点出息,选择了国外的免费服务,首先美国是个比较注重人权的国家,就算是免费用户,不会说随随便便就把你干掉,比某些国内厂商靠谱多了,然后免去了备案的烦恼,对于向往自由的我,备案就像栓了个绳,非常不爽。
不管网站建在哪都会遭受到一些恶意攻击,对于建在国外网站,还要承受访问速度慢的苦恼,接下来,也是本文的重点,为大家介绍使用CloudFlare来加速和保护你的境外网站。大陆的站长就回避吧,使用它不但加速不了,还会拖累你的速度。考虑安全和速度,找个国内的CDN使用吧,比如360或者安全宝。

注册
网址:https://www.cloudflare.com/
不细说了,自己摸索下吧,看不懂的补补英语吧。如果打不开,尝试翻墙。网站被墙了没事,只要分配的CDN节点的IP没有被墙,就可以使用。

基础功能
如果使用CloudFlare的CDN,就必须使用他的DNS解析服务,所以要到你域名提供商那里修改NameServers,改成CloudFlare提供的记录。
注册之后,找Add site,将自己的域名输入,他会自动扫描你当前的DNS设置,或者你自己手动进行配置下。 非常简单,配置好DNS后,CloudFlare就开始加速你的网站了,并且自动提供了基础的防攻击功能。







注意看DNS记录的Status一栏,上面一个带颜色的图标指示该条记录在使用CDN功能,下面一个不带颜色的指示该条记录没有使用CDN功能。直接点击图标可以打开或者关闭,试一下吧。

防盗链功能
CloudFlare提供了图片防盗链功能,防止其他网站引用你的图片,保护你的流量不白白流失。
开启方法:

点击如下图标







进入网页后,往下拉,找到下图中所示的项目,点击打开开关即可。






稍微高级点的CDN功能
CloudFlare默认按文件扩展名缓存文件,只有下图所示的扩展名的文件才会进行缓存,其他请求会交给原站进行响应。







我发现使用默认的缓存功能,效果不明显,缓存的请求和流量占总数的百分比很小,以下是CloudFlare的统计数据:
















怎么能改善下呢?CloudFlare有Page Rules这项功能,可以添加URL Pattern,匹配上的设置成Cache或者Bypass(不缓存)。
于是我为自己的小站添加了两条规则,一条规则是将uploads目录下静态文件全部缓存,这里的文件有pdf、zip等格式的文件,CloudFlare默认不缓存。






之前我给自己的网站开启了伪静态,第二条规则把伪静态的html页面也一起缓存了,因为博客文章改动不大,差不多相当于静态页面了。这条规则有啥影响还不得知,暂时没有遇到问题,可以想象到的一个影响是,更新了一个文章后,浏览器不能看到实时看到,但实际情况是可以更新,这块是挺智能的。






这条规则注意设置项:
Custom caching :Cache Everything
Edge cache expire TTL : 4 hours
还有目前已知的可能会引起问题的设置,Rocket Loader 最好设置成no,否则他能识别出伪静态,不进行缓存。这里面很多设置项,感兴趣的可以研究下,英语不好,我就不细细研究每一项是什么意思了,目前的设置满足我的要求了,过几天看效果。


20150915 出问题了
直接缓存伪静态的博客页面,存在的问题:
1、管理员后台登陆后,查看博客,由于是缓存的静态页面,就失去了登陆信息。
2、读者评论后,返回的页面依然是缓存的静态页面,看不到自己实施的评论。
基于以上原因去掉了缓存伪静态html页面的功能,但如果你的小站流量压力比较大,权衡一下,可以继续开着该功能,上面上个缺点也不是不能接受。博主会继续研究,充分挖掘ClareFlare的功能,尽可能多的缓存页面。


怎么确定页面被缓存了
这里有个在线测试网站的工具:http://www.webpagetest.org
输入你要测试的网址,点击开始测试。找一个文章的地址,比如:http://blog.dreamshare.in/over ... .html,这样可以测试下伪静态的页面缓存没有。
测试完成点击Details查看详细测试结果,先不关心其他结果,翻到页面下方 Request Headers 点击Expand All 查看所有请求和响应。

Request 1: http://blog.dreamshare.in/over ... .html

Response Headers:
HTTP/1.1 200 OK
Date: Mon, 14 Sep 2015 16:16:54 GMT
Content-Type: text/html; charset=UTF-8
...
CF-Cache-Status: HIT
...
Server: cloudflare-nginx
CF-RAY: 225d662598281e71-SJC
Content-Encoding: gzip

Request 5: http://blog.dreamshare.in/wp-i ... 4.2.4

Response Headers:
HTTP/1.1 200 OK
Date: Mon, 14 Sep 2015 16:16:55 GMT
Content-Type: text/css
...
CF-Cache-Status: HIT
...
Accept-Ranges: bytes
Server: cloudflare-nginx
CF-RAY: 225d662908581e71-SJC


查看CF-Cache-Status,如果是HIT,说明该请求是被缓存的,直接由CDN响应的,HIT的越多,CDN作用越大,源站的压力就越小。仔细比对下你自己设置的规则有没有生效。
附CF-Cache-Status说明:
HIT: resource in cache, served from CDN cache.
MISS: resource not in cache, served from origin server.
EXPIRED: resource was in cache but has since expired, served from origin server.
STALE: resource is in cache but is expired, served from CDN cache because another visitor's request has caused the CDN to fetch the resource from the origin server. This is a very uncommon occurrence and will only impact visitors that want the page right when it expires.
IGNORED: resource is cacheable but not in cache because it hasn't met the threshold (number of requests, usually 3), served from origin server. Will become a HIT once it passes the threshold.
REVALIDATED: REVALIDATED means we had a stale representation of the object in our cache, but we revalidated it by checking using an If-Modified-Since header.
 



20160108 重新设置的CDN PageRule
启用了以下三条规则:






1、缓存所有html结尾的url 也就是所有的伪静态页面都缓存了 之前使用了WP自带评论功能 缓存伪静态页面存在问题
现在使用了多说评论功能 评论不再有之前的问题了
2、dreamshare.in 301 重定向到 blog.dreamshare.in
3、缓存所有wp-content/uploads下的文件 查看全部

博主的小站搭建在OpenShift Paas上,使用的免费账户,目前收费账户不面向大陆开放。免费看起很诱人,其实弊端也很多,首先你是小白鼠,软件更新都通过免费用户测试,然后再升级给收费用户,也就是说服务不稳定啊,宕机啊,是常有的事情;其次,只给免费用户提供了512M内存和1G存储空间,貌似还有流量和连接数的限制,但官方没有给出具体数值;然后如果你的网站经常遭受攻击,影响他们正常运营,他们有权停止你的服务。


如果以上你都能接受,又是搭建的比较小的网站,可以尝试下,否则还是使用国内收费服务吧,一些大牌厂商还是值得信赖的。


不过博主就这点出息,选择了国外的免费服务,首先美国是个比较注重人权的国家,就算是免费用户,不会说随随便便就把你干掉,比某些国内厂商靠谱多了,然后免去了备案的烦恼,对于向往自由的我,备案就像栓了个绳,非常不爽。


不管网站建在哪都会遭受到一些恶意攻击,对于建在国外网站,还要承受访问速度慢的苦恼,接下来,也是本文的重点,为大家介绍使用CloudFlare来加速和保护你的境外网站。大陆的站长就回避吧,使用它不但加速不了,还会拖累你的速度。考虑安全和速度,找个国内的CDN使用吧,比如360或者安全宝。



注册


网址:https://www.cloudflare.com/

不细说了,自己摸索下吧,看不懂的补补英语吧。如果打不开,尝试翻墙。网站被墙了没事,只要分配的CDN节点的IP没有被墙,就可以使用。



基础功能


如果使用CloudFlare的CDN,就必须使用他的DNS解析服务,所以要到你域名提供商那里修改NameServers,改成CloudFlare提供的记录。


注册之后,找Add site,将自己的域名输入,他会自动扫描你当前的DNS设置,或者你自己手动进行配置下。 非常简单,配置好DNS后,CloudFlare就开始加速你的网站了,并且自动提供了基础的防攻击功能。



status.png



注意看DNS记录的Status一栏,上面一个带颜色的图标指示该条记录在使用CDN功能,下面一个不带颜色的指示该条记录没有使用CDN功能。直接点击图标可以打开或者关闭,试一下吧。



防盗链功能


CloudFlare提供了图片防盗链功能,防止其他网站引用你的图片,保护你的流量不白白流失。


开启方法:

点击如下图标

scrapeshield.png



进入网页后,往下拉,找到下图中所示的项目,点击打开开关即可。

hotlink-protection.png


稍微高级点的CDN功能


CloudFlare默认按文件扩展名缓存文件,只有下图所示的扩展名的文件才会进行缓存,其他请求会交给原站进行响应。




extensions.png


我发现使用默认的缓存功能,效果不明显,缓存的请求和流量占总数的百分比很小,以下是CloudFlare的统计数据:


request.png


bandwidth.png


performance.png



怎么能改善下呢?CloudFlare有Page Rules这项功能,可以添加URL Pattern,匹配上的设置成Cache或者Bypass(不缓存)。


于是我为自己的小站添加了两条规则,一条规则是将uploads目录下静态文件全部缓存,这里的文件有pdf、zip等格式的文件,CloudFlare默认不缓存。



upload-rule.png


之前我给自己的网站开启了伪静态,第二条规则把伪静态的html页面也一起缓存了,因为博客文章改动不大,差不多相当于静态页面了。这条规则有啥影响还不得知,暂时没有遇到问题,可以想象到的一个影响是,更新了一个文章后,浏览器不能看到实时看到,但实际情况是可以更新,这块是挺智能的。



html-rule.png


这条规则注意设置项:
Custom caching :Cache Everything
Edge cache expire TTL : 4 hours
还有目前已知的可能会引起问题的设置,Rocket Loader 最好设置成no,否则他能识别出伪静态,不进行缓存。这里面很多设置项,感兴趣的可以研究下,英语不好,我就不细细研究每一项是什么意思了,目前的设置满足我的要求了,过几天看效果。




20150915 出问题了


直接缓存伪静态的博客页面,存在的问题:


1、管理员后台登陆后,查看博客,由于是缓存的静态页面,就失去了登陆信息。


2、读者评论后,返回的页面依然是缓存的静态页面,看不到自己实施的评论。


基于以上原因去掉了缓存伪静态html页面的功能,但如果你的小站流量压力比较大,权衡一下,可以继续开着该功能,上面上个缺点也不是不能接受。博主会继续研究,充分挖掘ClareFlare的功能,尽可能多的缓存页面。




怎么确定页面被缓存了


这里有个在线测试网站的工具:http://www.webpagetest.org

输入你要测试的网址,点击开始测试。找一个文章的地址,比如:http://blog.dreamshare.in/over ... .html,这样可以测试下伪静态的页面缓存没有。


测试完成点击Details查看详细测试结果,先不关心其他结果,翻到页面下方 Request Headers 点击Expand All 查看所有请求和响应。



Request 1: http://blog.dreamshare.in/over ... .html

Response Headers:
HTTP/1.1 200 OK
Date: Mon, 14 Sep 2015 16:16:54 GMT
Content-Type: text/html; charset=UTF-8
...
CF-Cache-Status: HIT
...
Server: cloudflare-nginx
CF-RAY: 225d662598281e71-SJC
Content-Encoding: gzip

Request 5: http://blog.dreamshare.in/wp-i ... 4.2.4

Response Headers:
HTTP/1.1 200 OK
Date: Mon, 14 Sep 2015 16:16:55 GMT
Content-Type: text/css
...
CF-Cache-Status: HIT
...
Accept-Ranges: bytes
Server: cloudflare-nginx
CF-RAY: 225d662908581e71-SJC


查看CF-Cache-Status,如果是HIT,说明该请求是被缓存的,直接由CDN响应的,HIT的越多,CDN作用越大,源站的压力就越小。仔细比对下你自己设置的规则有没有生效。


附CF-Cache-Status说明:

HIT: resource in cache, served from CDN cache.


MISS: resource not in cache, served from origin server.


EXPIRED: resource was in cache but has since expired, served from origin server.


STALE: resource is in cache but is expired, served from CDN cache because another visitor's request has caused the CDN to fetch the resource from the origin server. This is a very uncommon occurrence and will only impact visitors that want the page right when it expires.


IGNORED: resource is cacheable but not in cache because it hasn't met the threshold (number of requests, usually 3), served from origin server. Will become a HIT once it passes the threshold.


REVALIDATED: REVALIDATED means we had a stale representation of the object in our cache, but we revalidated it by checking using an If-Modified-Since header.


 




20160108 重新设置的CDN PageRule


启用了以下三条规则:

cdn-pagerule.png


1、缓存所有html结尾的url 也就是所有的伪静态页面都缓存了 之前使用了WP自带评论功能 缓存伪静态页面存在问题
现在使用了多说评论功能 评论不再有之前的问题了
2、dreamshare.in 301 重定向到 blog.dreamshare.in
3、缓存所有wp-content/uploads下的文件


www.000webhost.com