分类 建站 下的文章

背景

这两天我在重新规划我的博客网站逐步前行STEP,将改版导航以及整体内容结构,将单纯的博客网站打造成集博客、资讯、工具、社区于一体的综合站点,这必然涉及到要重新规划原有的路由,直接修改路由将导致搜索引擎收录的链接或者访客收藏的网址失效,调整原网址必须保证旧的网址和新的网址同时可用,并且逐渐迁移到新的网址上。

思考

在这一点需求上,网站迁移和网页地址变更都是一致的,可以明确的是,应该在web服务器上考虑解决方案,我使用的是nginx,需要修改配置以达到从原有链接访问跳转到新的链接的效果,也就是URL重定向:rewrite 。以下是我的解决方案:

方案

1、首先需要增加新的路由,

如,我的博文地址从 
`https://www.hezehua.net/csdn_article-105052472`
修改为
`https://www.hezehua.net/blog/csdn_article-105052472`

2、按新旧地址的拼接规则,给nginx配置文件增加rewrite配置
(1)先简单介绍下rewrite语法:

rewrite regex replacement[flag];

根据regex(正则表达式)来匹配内容跳转到replacement,结尾是flag标记

应用位置:server、location、if

flag 参数列表:
last 本条规则匹配完成后继续向下匹配新的location URI规则
break 本条规则匹配完成后终止,不在匹配任何规则
redirect 返回302临时重定向
permanent 返回301永久重定向
(2)、设置重写规则,
如,我设置的规则是:

rewrite ^/csdn_article-([\s\S]+?)(\/|$) /blog/csdn_article-$1 permanent;

我的个人博客:逐步前行STEP

以前就想着配置cdn了,但是一直配置不得法,添加完配置也没有生效,这两天认真研究了一下,终于解决了。
首先是在阿里云上的cdn配置:

加速域名:image.aaa.com,就是让网站访问图片的域名
回源域名:bbb.com,就是能真实访问到图片资源的域名,不过由于我的图片路径是IP访问的,我配置的是回源IP。
最重要的就是以上两个,之前我没区分加速与回源的意思,配置反了一直不生效~~~
然后在域名解析中配置image.aaa.com的cname记录,当ping
image.aaa.com时提示的域名是:.w.kunlungr.com时就算生效了,不出意外的话,直接通过image.aaa.com访问资源是成功的。

接下来是服务器上的配置:
我的项目架构是这样的:

两台aws服务器部署了网站,一台阿里云服务器做NFS让两台应用服务器共享图片资源,一个域名用于前端访问,通过IP直接访问后端接口。
CDN回源的IP就是阿里云服务器IP,我在这台服务器上简单搭建了NGINX服务器只用来访问静态资源:http://ip/image/xxx/xxx.jpg,而aws服务器上的后端接口都是8080端口,前端端口是80,也就是访问aaa.com的时候,图片路径为http://ip:8080/xxx/xxx.jpg

通过cdn加速域名image.aaa.com访问回源IP(阿里云服务器的IP)来获取图片http://image.aaa.com/xxx/xxx.jpg,只需要配置服务器实现简单的请求转发就可以从CDN缓存中获取图片了:

http://ip:8080/xxx/xxx.jpg转发到http://image.aaa.com/image/xxx/xxx.jpg

当然如果直接将aws服务器上的接口返回的图片路径替换成http://image.aaa.com/xxx/xxx.jpg的话,效果更好,减少了转发的环节。