用Nginx搭建CDN服务器方法-开启Nginx缓存与镜像,自建图片服务器

VPS主机   2017年03月22日 22:13  

用Nginx搭建CDN服务器方法-开启Nginx缓存与镜像,自建图片服务器

最近一直在纠结于CDN加速问题。自从去年将网站全站启用Https后,虽然在启用SSL证书过程中并没有遇到什么大的问题,但是之后慢慢地发现了两个严重的问题,一个是百度收录Https内页的问题,谷歌第二天即可全部收录Https页面,而百度至少半年后才开始“意识”到网站已经转成了Https了。

百度技术的软肋,直接导致百度自己处理https网站的速度极慢,各位考虑要将自己的网站启用Https的朋友要提前意识到这个问题。百度主动将自己的主站转成了Https,但是无语的是百度的周边产品,例如百度站内搜索、百度分享、百度广告等竟然都不支持Https!这样的百度真的让人忍不住要吐槽了。

将网站全站启用Https后另一个问题就是图片CDN加速的问题,之前一直用的是七牛提供的免费CDN流量,但是网站转成了Https后就要使用Https CDN加速了。没有想到七牛把Https流量不计算在免费流量,导致每月还是额外支付一笔不菲的CDN流量费。

虽然各家CDN商用都提供了免费SSL服务,例如Qiniu七牛云免费SSL证书UPyun又拍云CDN安装部署免费SSL证书,也试用过又拍云的CDN,但是都因为Https流量费用太高的缘故而作罢。于是才有了今天的用Nginx搭建CDN服务器的经验分享。

实际操作后发现Nginx的proxy_cacheproxy_store真的很强大,利用proxy_store搭建图片服务器镜像实际上就相当于七牛和又拍的镜像CDN功能了,自动拉取图片保存在CDN服务器上。而proxy_cache作为Nginx缓存,既可以用作负载均衡,也可以反向绑定域名,真的很方便。

更多的有关于CDN和DNS自建方法,你还可以看看:

用Nginx搭建CDN服务器方法-开启Nginx缓存与镜像,自建图片服务器

一、利用Nginx的proxy_cache搭建缓存服务器一:编译ngx_cache_purge

1、Nginx的Proxy_cache是根据Key值md5哈希存储缓存,支持任意的Key,例如你可以根据"域名、URI、参数"组合成key,也支持非200状态码,如404/302等。

2、要利用Nginx的Proxy_cache,你需要在Nginx编译进ngx_cache_purge 模块,执行:nginx -V,查看有没有ngx_cache_purge 字样,没有的话需要自己手动编译。

Nginx搭建CDN手动编译

3、这里以Oneinstack编译ngx_cache_purge 模块作为操作演示,如果你用的是其它的LNMP包可以参考,基本过程是差不多的。命令如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
cd /root/oneinstack/src #进入安装包目录
nginx -V
tar xzf nginx-1.10.3.tar.gz #根据上面查看到的nginx版本选择解压包
 
wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz
tar zxvf ngx_cache_purge-2.3.tar.gz
cd /root/oneinstack/src/nginx-1.10.3
 
# 下面的./configure 后加的参数,你可以直接复制刚刚用nginx -V得到的参数,然后在最后加上--add-module=../ngx_cache_purge-2.3即可,参考:
./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_v2_module --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --with-http_flv_module --with-http_mp4_module --with-openssl=../openssl-1.0.2k --with-pcre=../pcre-8.39 --with-pcre-jit --with-ld-opt=-ljemalloc --add-module=../ngx_cache_purge-2.3
 
make
 
mv /usr/local/nginx/sbin/nginx{,$(date +%m%d)}
cp objs/nginx /usr/local/nginx/sbin #oneinstack,其它的可以不用这个操作
 
nginx -t
service nginx restart

4、安装完成后,再次nginx -V你就可以看到Nginx已经成功编译进了ngx_cache_purge 了。

Nginx搭建CDN添加模块

二、利用Nginx的proxy_cache搭建缓存服务器二:修改Nginx配置文件

1、先找到你的Nginx配置文件:nginx.conf(路径一般是在/usr/local/nginx/conf/nginx.conf),在配置文件Http中加入以下代码:(注意修改路径为你自己的路径)

1
2
3
4
5
6
7
8
9
proxy_connect_timeout 5;
proxy_read_timeout 60;
proxy_send_timeout 5;
proxy_buffer_size 16k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
proxy_cache_path /data/wwwroot/pic.freehao123.com levels=1:2 keys_zone=cache_one:200m inactive=30d max_size=5g;
proxy_temp_path /data/wwwroot/pic.freehao123.com/temp;

2、操作如下图:

Nginx搭建CDN添加代码

3、然后在你的虚拟主机的nginx.conf(路径一般是/usr/local/nginx/conf/vhost/pic.freehao123.com.conf),在server listen 80 和  listen 443 ssl http2 都加入下面命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
  location /{
    proxy_pass https://www.freehao123.com;
    proxy_redirect off;
    proxy_set_header Host www.freehao123.com;
    proxy_cache cache_one;
    proxy_cache_valid 200 302 304 365d;
    proxy_cache_valid 301 1d;
    proxy_cache_valid any 1m;
    add_header Images-Cache "$upstream_cache_status from $host";
    add_header Pragma public;
    add_header Cache-Control "public, must-revalidate, proxy-revalidate";
    access_log off; log_not_found off; expires max;
}

4、将配置文件保存重新上传,然后执行:

1
2
nginx -t
service nginx restart

5、先执行检查Nginx配置是否正确,确认没有问题的就是重启Nginx了。

Nginx搭建CDN重启服务器

6、如果你想缓存gravatar头像,那么代码就是:

1
2
3
4
5
6
7
8
9
10
11
12
13
 location /avatar{
    proxy_pass http://cn.gravatar.com;
    proxy_redirect off;
    proxy_set_header Host cn.gravatar.com;
    proxy_cache cache_one;
    proxy_cache_valid 200 302 304 365d;
    proxy_cache_valid 301 1d;
    proxy_cache_valid any 1m;
    add_header Images-Cache "$upstream_cache_status from $host";
    add_header Pragma public;
    add_header Cache-Control "public, must-revalidate, proxy-revalidate";
    access_log off; log_not_found off; expires max;
}

7、现在打开你的二级域名:pic.freehao123.com,你就可以看到已经正确缓存了图片了。

Nginx搭建CDN缓存头像

8、这里再给出另一个Nginx缓存代码,实现效果和上面是一样的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#先在Nginx配置中写入以下命令:
proxy_temp_file_write_size 128k;
proxy_temp_path   /data/wwwroot/pic.ucblog.net/temp;
proxy_cache_path  /data/wwwroot/pic.ucblog.net levels=1:2 keys_zone=cache_one:500m inactive=7d max_size=5g;
 
#再在虚拟主机的Nginx配置中写入以下命令:
先在server listen 80 和listen 443代码前面加入:
upstream gravatar {
    server secure.gravatar.com:443;
}
再在server listen 80 和listen 443 里面加入:
location / {
        proxy_pass_header Server;
        proxy_set_header Host cn.gravatar.com;
        proxy_set_header Accept-Encoding '';
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_pass https://gravatar;
        proxy_cache cache_one;
        proxy_cache_valid  200 304 365d;
        proxy_cache_key $host$uri$is_args$args;
        expires max;
    }

9、在VPS主机上,你可以看到proxy_cache生成的哈希文件,就表示缓存已经成功了。

Nginx搭建CDN生成缓存文件

三、利用Nginx的proxy_store搭建镜像服务器:修改Nginx配置方法

1、Nginx的proxy_store作用是直接把静态文件在本地硬盘创建并读取,类似于七牛或者又拍这样的镜像CDN功能,首次访问会自动获取源站的静态图片等文件,之后的访问就是直接从CDN服务器读取,加快了速度。

2、直接修改Nginx的虚拟主机配置文件(这里以img.freehao123.com.conf为演示),加入以下代码:

1
2
3
4
5
6
7
8
9
10
11
location / {
            expires 3d;
            proxy_set_header Accept-Encoding '';
            root /data/wwwroot/img.freehao123.com;
            proxy_store on;
            proxy_store_access user:rw group:rw all:rw;
            proxy_temp_path /data/wwwroot/img.freehao123.com/temp;
            if ( !-e $request_filename)  {
                 proxy_pass https://www.freehao123.com;
            }
  }

3、再次保存配置上传,然后重启Nginx。你可以看到img.freehao123.com请求的图片等静态文件已经成功从源站中获得到了。

Nginx搭建CDN图片请求

4、在VPS主机上的存目录中也可以看到proxy_store已经完整地将图片等静态文件的目录都保存下来了,相当于一个网站的镜像存储CDN了。

Nginx搭建CDN镜像存储

5、这里还有一个使用,效果和上面是一样的,记得替换好路径,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
upstream http_tornado {
    server www.freehao123.com:443;
}
 
server {
    # 省略其他配置
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|html|htm|css)$ {
        root /opt/data/product/blog/cache;
        proxy_store on;
        proxy_store_access user:rw group:rw all:rw;
        proxy_temp_path /opt/data/product/blog/cache;
        if ( !-e $request_filename) {
            proxy_pass  http://http_tornado;
        }
    }
}

四、Nginx的proxy_store和proxy_cache有什么区别?

1、镜像与缓存的区别。从上面的介绍我们也可以看出来,proxy_store相当于镜像一个网站了,第二次访问图片等静态文件是直接读取CDN服务器上的,大大减轻了源站的负担。proxy_cache相当于缓存,即把请求生成Key,第二次访问就可以加快速度了。

Nginx搭建CDN加快速度

2、proxy_store适合静态,proxy_cache适合动态。proxy_store是将图片完整保存在CDN服务器上,所以它更适合于图片CDN加速,而proxy_cache是缓存生成Key,更加适合动态网站加速,可用于负载均衡,减轻服务器负担。

Nginx搭建CDN减轻负担

五、搭建镜像CDN服务器后要做的事情?

1、第一,因为搭建镜像CDN服务器是完整地复制了源站的文件和URL,所以为了避免被搜索引擎误认为抄袭重复站,我们可以给CDN站加上Robots.txt,阻止搜索引擎收录。命令如下(允许收录图片,其它不允许爬取):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
User-agent: Baiduspider
Allow: /wp-content/uploads/*.jpg$
Allow: /wp-content/uploads/*.png$
Allow: /wp-content/uploads/*.gif$
Disallow: /
 
User-agent: 360Spider
Allow: /wp-content/uploads/*.jpg$
Allow: /wp-content/uploads/*.png$
Allow: /wp-content/uploads/*.gif$
Disallow: /
 
User-agent: Baiduspider-image
Allow: /wp-content/uploads/*.jpg$
Allow: /wp-content/uploads/*.png$
Allow: /wp-content/uploads/*.gif$
Disallow: /
 
User-agent: 360Spider-Image
Allow: /wp-content/uploads/*.jpg$
Allow: /wp-content/uploads/*.png$
Allow: /wp-content/uploads/*.gif$
Disallow: /
 
User-agent: Sosospider
Allow: /wp-content/uploads/*.jpg$
Allow: /wp-content/uploads/*.png$
Allow: /wp-content/uploads/*.gif$
Disallow: /
 
User-agent: sogou spider
Allow: /wp-content/uploads/*.jpg$
Allow: /wp-content/uploads/*.png$
Allow: /wp-content/uploads/*.gif$
Disallow: /
 
User-agent: YodaoBot
Allow: /wp-content/uploads/*.jpg$
Allow: /wp-content/uploads/*.png$
Allow: /wp-content/uploads/*.gif$
Disallow: /
 
User-agent: Googlebot
Allow: /wp-content/uploads/*.jpg$
Allow: /wp-content/uploads/*.png$
Allow: /wp-content/uploads/*.gif$
Disallow: /
 
User-agent: Bingbot
Allow: /wp-content/uploads/*.jpg$
Allow: /wp-content/uploads/*.png$
Allow: /wp-content/uploads/*.gif$
Disallow: /
 
User-agent: Slurp
Allow: /wp-content/uploads/*.jpg$
Allow: /wp-content/uploads/*.png$
Allow: /wp-content/uploads/*.gif$
Disallow: /
 
User-agent: MSNBot
Allow: /wp-content/uploads/*.jpg$
Allow: /wp-content/uploads/*.png$
Allow: /wp-content/uploads/*.gif$
Disallow: /
 
User-agent: googlebot-image
Allow: /wp-content/uploads/*.jpg$
Allow: /wp-content/uploads/*.png$
Allow: /wp-content/uploads/*.gif$
Disallow: /
 
User-agent: googlebot-mobile
Allow: /wp-content/uploads/*.jpg$
Allow: /wp-content/uploads/*.png$
Allow: /wp-content/uploads/*.gif$
Disallow: /
 
User-agent: yahoo-blogs/v3.9
Allow: /wp-content/uploads/*.jpg$
Allow: /wp-content/uploads/*.png$
Allow: /wp-content/uploads/*.gif$
Disallow: /
 
User-agent: psbot
Allow: /wp-content/uploads/*.jpg$
Allow: /wp-content/uploads/*.png$
Allow: /wp-content/uploads/*.gif$
Disallow: /
 
User-agent: *
Disallow: /

2、第二,做好Nginx防盗链。如果你的CDN服务器流量不怎么够的话,建议还是做好防盗链措施,同时还可以帮你减轻服务器负担。在你的虚拟主机配置文件中加入以下代码:

1
2
3
4
5
6
7
8
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
          {
                  valid_referers none blocked freehao123.com *.freehao123.com *.google.cn *.google.com *.google.com.hk image.baidu.com *.baidu.com;
                  if ($invalid_referer) {
                  rewrite ^/ https://www.freehao123.com;
                  #return 403;
                  }
          }

3、第三,设置好Nginx默认图片。这个主要是针对缓存Gravatar头像的,当源站服务器不存在某一个图片或者文件时,我们可以给Nginx设置一个默认的图片或者链接,这样缓存看起来就完美了。

1
2
3
4
5
6
7
8
9
10
11
12
 location /avatar {
 
 try_files $uri /avatar/set-avatar.png;
 
}
 
#或者使用:
 location /{
 
 try_files $uri /set-avatar.png;
 
}

4、效果见下图:

用Nginx搭建CDN默认图片

文章出自:免费资源部落 部分内容参考张戈博客\cheyo.net\ttt.tt版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。

域名注册
购买VPS主机

您或许对下面这些文章有兴趣:                    本月吐槽辛苦排行榜

在这个部落村庄里,已经有93 位神马家族成员冒出泡来在农场开始干活了
  • MG 7

    沙发。。。感觉自己搭建速度可能比较吃力 也是一笔开支呀

    qi 回复:

    @MG, 我用七牛的CDN每月花的费用差不多相当于一个国外VPS的一个月的钱了。

    MG 回复:

    @qi, 好吧,我七牛一直都是欠费的,但服务是正常的就没管。

    流量比不过你。。 :mrgreen:

    qi 回复:

    @MG, 不会吧,欠费还不停了你的?其实,我发现好多盗链的,流量一下子就用完了。 :arrow:

    qi 回复:

    @MG, 博主你的网站提交评论时有错误:ncaught ReferenceError: LEE is not defined

    小z博客 回复:

    @qi, 博主,你开了防盗链没有,建议你在七牛把防盗链开启吧,估计很多网站盗用你的图片。

    qi 回复:

    @小z博客, 开了,开了之后一个月也得150GB。

    RR233CY 回复:

    @qi, 但是自建的缓存服务器就变成了单节点,还要考虑线路抽风的问题和DDOS,无形的成本就高了很多,还是放在七牛

    qi 回复:

    @RR233CY, 嗯,攻击了就麻烦了。

    这是农场的第 1 块农田,部落批准 [MG] 在[2017-3-22 22:30]开垦完成.
  • https目前国内搜索引擎都支持不大

    qi 回复:

    @速度网络, 百度虽然宣称对Https收录,但是从我的使用过程来看,对于Https相对于Http来说更难收录,我发现我从转Https后发的文章基本上不怎么收录。

    这是农场的第 2 块农田,部落批准 [速度网络] 在[2017-3-22 23:06]开垦完成.
  • 像你这种站应该可以去申请VIP吧 建议你去站长平台申请个VIP,反馈给官方看下

    qi 回复:

    @速度网络, 站长平台的VIP比较难搞吧,况且感觉百度站长工具开发出来的东西貌似都喜欢藏着掖着,一个站内链接搞了好几年了现在还没有开放使用。

    这是农场的第 3 块农田,部落批准 [速度网络] 在[2017-3-22 23:16]开垦完成.
  • MG 7

    [img]http://i2.buimg.com/567571/340da13e6a6dd502.png[/img]

    用的Linode日本东京的主机可能晚上抽了

    qi 回复:

    @MG, Linode的线路是基本上不行了,用户太多了。可能是你的七牛还没有欠太多的钱。哈哈。。。。

    MG 回复:

    @qi, 哈哈,可能就是这原因。。。之前欠了200多视频内容就不能访问了。。。

    谁让linode 充5送20呢。。价格还是不错的。

    qi 回复:

    @MG, Linode安装了BBr后是不是可以了?Vultr安装了BBR后,下载也可以达到100kb以上。

    MG 回复:

    @qi, 你是测试了什么吗?
    额 linode 日本的开了bbr之后还是很给力的,我这里可以把带宽跑满

    qi 回复:

    @MG, 无法提交评论。

    MG 回复:

    @qi, 。。。。

    你在哪个页面提价评论啊?

    我刚刚测试了可以提交啊

    qi 回复:

    @MG, https://www.mgdw.org/1245/,好像评论框也不见了。

    MG 回复:

    @qi, 哦,这个是无法评论的了,我设置了,文章过了一定时间就自动关闭评论了。

    qi 回复:

    @MG, 原来是这样呀。

    这是农场的第 4 块农田,部落批准 [MG] 在[2017-3-22 23:21]开垦完成.
  • 早就想过了,可惜我技术不行,没成功过,这次找着整整看,正好最近有点时间可以整网站了

    qi 回复:

    @affiliate英文网赚, 参考本文的方法就可以了,我现在就是用的这个方法。Nginx搭建CDN是最简单的了。

    这是农场的第 5 块农田,部落批准 [affiliate英文网赚] 在[2017-3-22 23:39]开垦完成.
  • “没有想到七牛不把Https流量不计算在免费流量”是病句 :mrgreen:

    这是农场的第 6 块农田,部落批准 [梧小铭] 在[2017-3-22 23:51]开垦完成.
  • 已经放弃百度搜索收录了,目前做网站纯粹自己玩,靠着赚钱就不指望了。。。

    qi 回复:

    @伊犁的秋天, 写文章赚钱太难了,感觉还是搞搞业务吧。

    这是农场的第 7 块农田,部落批准 [伊犁的秋天] 在[2017-3-23 09:25]开垦完成.
  • 1.博主现在自建CDN把图片放到韩国KT机房的吗?
    2.又拍云联盟有一定额度,不知道博主够用不?
    3.为什么编辑器的插图功能无法直接显示图片?
    [img]https://i.bk.tn/uploads/1703/230120399378.png[/img]

    qi 回复:

    @小z博客, 是的,已经转移了,没有放在七牛了。又拍云联盟的免费额度好像是一个月才15GB,目前我一个月得用200GB。插入图片不显示是因为换成了PHP 7后,发现原来用的PHP函数不再支持了,所以也就这样了,不知道博主有没有替代的解决办法。

    小z博客 回复:

    @qi, 自建的成本不会低于第三方的吧?而且节点数量单一

    qi 回复:

    @小z博客, 成本也是蛮高的,可以Diy也是蛮有意思的,如果网站多的话,成本也可以降下来的。

    这是农场的第 8 块农田,部落批准 [小z博客] 在[2017-3-23 13:21]开垦完成.
  • larry 12

    这台vps速度挺不错的
    蛮多网站都将海外镜像配置在韩国vps…

    qi 回复:

    @larry, 是呀,GCE的台湾机房貌似速度不是很快,倒是韩国的这个机房速度还是挺快的。

    小z博客 回复:

    @qi, 博主用的GCE?

    qi 回复:

    @小z博客, 用的是kdatacenter

    小z博客 回复:

    @qi, 关注过这家,打折下来都太贵了,还是只能看看。

    qi 回复:

    @小z博客, StarryDNS(星光互联)也卖KT的,有用过没?不知道速度如何,貌似要便宜一些。

    小z博客 回复:

    @qi, 不敢用他们家的了,之前账户下没有活动业务,然后帮他们推广AFF,把我账号给删了:https://www.xiaoz.me/archives/7922

    qi 回复:

    @小z博客, 哦,那算了。貌似在网上看了也有类似的经历,评价不是很高。

    larry 回复:

    @qi, kdatacenter您采用的方案是哪个价位呢?
    感觉他们最便宜的方案算下来跟百度云加速专业版差不多…

    qi 回复:

    @larry, 1Gb,最便宜的。19美元一月。

    larry 回复:

    @qi, 这样站点还挺快的
    希望vps能稳定运行,这样就不太需要买CDN了

    larry 回复:

    @qi, GCE可能近期流量比较大些,韩国主机因为还是挺贵的,被滥用的情形比较少…

    larry 回复:

    @qi, 好像也不太对,
    韩国那台vps网络成本算起来也比GCE的网络便宜…

    qi 回复:

    @larry, GCE的流量还是蛮贵的,流向大陆的流量貌似还是单独计费。

    这是农场的第 9 块农田,部落批准 [larry] 在[2017-3-23 14:42]开垦完成.
  • Kung 23

    可以可以。很不错,等着试试

    这是农场的第 10 块农田,部落批准 [Kung] 在[2017-3-23 19:27]开垦完成.
  • 神父 20

    哎呀呀,这个图片镜像想了好久,可惜一直没有找到教程。

    qi 回复:

    @神父, 赶紧用用吧,看你的图片是放在又拍,不会被检测出来删除吗?哈哈。。。

    神父 回复:

    @qi, 我的图片很老实的,以前的大尺#度都删了

    小z博客 回复:

    @神父, 配图好评

    神父 回复:

    @qi, 不要oneinstack,只装nginx可以不

    qi 回复:

    @神父, 可以的,没有问题。

    这是农场的第 11 块农田,部落批准 [神父] 在[2017-3-23 21:41]开垦完成.
  • 写的非常好

    这是农场的第 12 块农田,部落批准 [技术随手记] 在[2017-3-23 23:23]开垦完成.
  • qi抛弃七牛了啊!这个图片cdn的,在网站服务器有图片备份吗?

    小z博客 回复:

    @黄良钵博客, 既然是镜像,肯定源站有备份的。此外CDN服务器可能也是要写脚本定期备份的。

    黄良钵博客 回复:

    @小z博客, @qi,这个回复一个评论,发了两条邮件,一条是个以前一样的,一条是问吧的。。。

    qi 回复:

    @黄良钵博客, 安装了两个邮件回复插件,有冲突了。

    黄良钵博客 回复:

    @qi, 那个问吧又发了好几条邮件来了

    qi 回复:

    @黄良钵博客, 好像后台回复就发两条,我看看前台回复看看。

    qi 回复:

    @黄良钵博客, 有的。文件都放在源站。

    这是农场的第 13 块农田,部落批准 [黄良钵博客] 在[2017-3-24 16:10]开垦完成.
  • 用的阿里云

    qi 回复:

    @bah8, 阿里云续费很蛋疼。

    这是农场的第 14 块农田,部落批准 [bah8] 在[2017-3-24 20:04]开垦完成.
  • Aimer 4

    我的图床没有用cdn,速度简直感人

    qi 回复:

    @Aimer, 如果选择的CDN服务器不是快的话,使用后反而速度会更慢的。

    这是农场的第 15 块农田,部落批准 [Aimer] 在[2017-3-25 18:57]开垦完成.
  • 不知道博主的强制https是怎么做的?meta跳转?

    qi 回复:

    @不认识, 用Nginx的301重定向的。

    小z博客 回复:

    @不认识, 阁下可以参考《HTTP 301重定向到HTTPS》试试https://www.xiaoz.me/archives/7057

    不认识 回复:

    @小z博客, 感谢,曾尝试过rewrite方式,但将您重定向的次数过多,一直未能解决,所以就用页面来做跳转了。

    qi 回复:

    @不认识, 删除原来的跳转代码,只写一个跳转代码就好了。可以先学习一下Nginx规则 ,或者直接参考上面博主的代码示例。

    不认识 回复:

    @qi, 感谢,已删其它,只保留了到https://www.danteng.org的跳转,然而,无效,后来就用html的跳转了。
    懒的折腾了

    这是农场的第 16 块农田,部落批准 [不认识] 在[2017-3-27 15:30]开垦完成.
  • 其实博主如果改用阿里云或腾讯云CDN的流量包方案+按流量计费方案应该会比七牛划算…
    刚刚测试腾讯云国内节点到台湾这边访问的性能其实挺好的,中间源缓存的速度也很快。

    qi 回复:

    @李毅哲, 刚刚仔细研究了一下腾讯云的价格,0.36,和七牛的0.36差不多,不过七牛的海外是0.58,在价格方面确实腾讯云有一定的优势。不过,有一个问题就是图片与附件迁移的问题,没有插件,也没有镜像,感觉用起来有些麻烦。

    李毅哲 回复:

    @qi, 腾讯云每GB 0.34的确跟七牛云0.36差不多,
    购买流量包的方案相对可以再便宜一些,
    但如果是阿里云的CDN,
    国内每GB只要0.272,海外每GB 0.46,
    其实也比七牛云的海外每GB 0.58便宜许多,
    购买阿里云CDN流量包方案更便宜,
    500GB国内流量包才135,有效期貌似是一年…

    qi 回复:

    @李毅哲, 阿里云的CDN没有镜像这个功能吧?

    李毅哲 回复:

    @qi, https://help.aliyun.com/document_detail/27131.html
    应该是可以的…

    李毅哲 回复:

    @qi, 刚刚看到百度云CDN也降价了
    https://cloud.baidu.com/doc/CDN/Pricing.html
    每GB仅0.27元,不需要像阿里云购买流量包获得额外优惠,而且貌似也不收https请求费,给站长参考

    qi 回复:

    确实好便宜啊!这个比七牛的便宜了不少。改天去试试。

    李毅哲 回复:

    @qi, 这价位比海外很多CDN厂商还要便宜了…
    BAT的服务稳定性也都比较有保障…

    qi 回复:

    是的,下次试试迁移看看。

    李毅哲 回复:

    @qi, 今天测试腾讯云的HTTP/2效果也挺不错的,https载入性能提升不少

    qi 回复:

    @李毅哲, 七牛一直是Http1.0

    李毅哲 回复:

    @qi, 可能是七牛结合太多CDN厂商不容易改配置吧…

    这是农场的第 17 块农田,部落批准 [李毅哲] 在[2017-4-18 19:30]开垦完成.
  • 在配置Nginx的时候 ,添加虚拟主机的conf是在镜像服务器里面添加的还是在网站所在的服务器添加的呢,如果是在镜像服务器添加,是否需要先添加网站。还有dns解析并没有指向镜像服务器,为什么这么一设置别人访问网站就会去镜像服务器获取我的网站文件而不是去源网站获取呢。逻辑有点乱了,没搞清楚原理 :cry:

    qi 回复:

    @infooer, 1、是在镜像服务器conf那里添加。2、不需要先添加网站。3、设置好了conf后就去DNS解析那里修改DNS记录。4、别人访问网站就会去镜像服务器获取我的网站文件而不是去源网站获取,是因为我们用的是二级域名,用户访问二级域名,Nginx镜像会收到请求去源站,中间进行了转发。

    这是农场的第 18 块农田,部落批准 [infooer] 在[2017-5-20 01:41]开垦完成.
  • qi说的很明白啦,不过我还是看了一晚上才理解。如果我有多个网站在同一个IP下面,是不是只要在vhost下面的.conf 文件里 server_name 后面添加域名,然后在x_pass后面写源服务器的ip就行了。我用主域名做的话就相当于所有流量都做了个转发吧?

    qi 回复:

    @infooer, 是的,深入一点就可以作负载均衡了。

    infooer 回复:

    @qi, 好勤奋,也这么晚睡啊 :!:

    这是农场的第 19 块农田,部落批准 [infooer] 在[2017-5-21 01:05]开垦完成.
  • infooer

    qi,我做了nginx cache之后,发现网站用户无法正常登陆了,显示出错了 200,而且在网站首页的时候显示用户已经登陆,,点击到用户中心y又还是没有登陆的状态,晕了

    qi 回复:

    @infooer, 查看一下是不是JS有报错,镜像后最容易因为路径的问题而导致出错了。

    这是农场的第 20 块农田,部落批准 [infooer] 在[2017-5-22 20:25]开垦完成.
  • infooer

    cache dir 下面的文件可以直接删掉当做清理缓存不

    qi 回复:

    @infooer, 可以的。

    这是农场的第 21 块农田,部落批准 [infooer] 在[2017-5-22 20:27]开垦完成.
  • weide

    要更新修改图片,重新上传。如果还是缓存以前的图片,没有及时更新到最新的。这个问题你是如何处理的?请指教

    这是农场的第 22 块农田,部落批准 [weide] 在[2017-6-28 16:37]开垦完成.
看贴要回贴有N种理由!看帖不回贴的后果你懂得的!


评论内容 (*必填):
(Ctrl + Enter提交)   

部落快速搜索栏

各类专题梳理

网站导航栏

X
返回顶部