跳到内容

最新文章

申请Let’s Encrypt证书,全站HTTPS访问

折腾了好几天Let’s Encrypt始终没有成功,接前篇启用了CloudFlare的CDN之后,如果要启用SSL加密,好像要CloudFlare的证书才行,界面全英文没耐心看下去而且已经深夜了就没搞。昨日惊闻一大波VPS的IP已出狱,赶紧一测果然可以直通访问了,这样就可以不用CDN中转了,而且裸IP部署HTTPS也简单一些,赶紧搞一波。

部署HTTPS首先需要可信的证书颁发机构给你颁发一个证书,我们个人小站用免费的Let’s Encrypt就行了,不过有效期只有3个月。按照网上的前人经验在Let’s Encrypt网站转到Certbot网站,这个Certbot装到服务器上可以自动申请和更新证书,更新可以定期自动,解决有效期只有三个月的问题。

证书申请、更新部署网上已经很多了,此处不再细说。把证书部署上去,强制HTTPS访问,博客后台显示小绿锁了,结果在博客首页却显示“您于此网站之间建立的链接并非完全安全”。

造成这个现象的原因是站内还有很多资源没有使用HTTPS,例如CSS文件和图片,这里解决比较简单装一个插件就行了,插件名“Really Simple SSL”,启用插件就完事了,如果不想用插件,就手动改一下博客文件。

这里本来以为万事大吉,结果编辑这篇文章的时候上传图片又出问题了,mmp搞了半天刷新一下页面自己好了。

– EOF –

博客迁移并增加CDN

本文技术要点概览:宝塔面板,CloudFlare CDN,NS记录,PHP版本升级,虚拟目录。

前几篇文章刚把博客从阿里云签到祖传搬瓦工,那时候是因为要备案还老审核,烦得很,只好迁到仅有的128M内存、1M带宽搬瓦工祖传OVZ VPS上。后来因为人类固有的好奇心和求知欲,又购置了几个512M内存的搬瓦工VPS,一个KVM架构一个OVZ架构,舒爽地用了几天,然而party开party其中有一个OVZ VPS不幸凉了,8美刀换过一次IP过几天又凉了,只好扔在一边。偶然得知通过CDN加速可以把已经凉了的VPS利用起来建站,又想到博客放在128小鸡上确实憋屈,可以迁过来,把128小鸡专用于上网。

先在OVZ 512小鸡上装了宝塔面板,毕竟懒人,不一个一个搞了,宝塔面板功能很全,快速部署和管理VPS很方便。当然这个时候因为凉了,是不能直接连上的,从另一个KVM的512小鸡跳转连过来的。博客在128小鸡上平稳运行先不急着迁,先在OVZ 512小鸡上用宝塔面板装一个WordPress试一下CDN好不好使。

CDN有很多,不过有些需要备案,有些收费,其中CloudFlare免费功能已经够用了,就用这家。注册登进去就让添加被CDN的域名,全英文界面没细看我也是一脸懵。我的域名在Namesilo注册,NS服务器指定为DNSPod,然后在DNSPod中添加域名解析记录,一直没想通在CloudFlare里面加了域名他怎么就生效了。后来仔细一看还要把NS记录改成CloudFlare?那我这些域名全到国外解析不会很慢哦。后来仔细看了一下NS记录,原来可以把特定三级域名的NS指定到其他运营商,于是把三级域名blog的NS记录改为CloudFlare的NS,仅把blog用CloudFlare解析用于CDN。CloudFlare会把网页内容进行缓存,缓存到自己的服务器上,然后把域名也解析到自己的服务器上,加速访问,这样用户不用直接访问我的512小鸡,即使小鸡凉了也不要紧。

这样先搞了一个测试域名成功了,然后把文件服务数据库从128小鸡上导出来,scp到512小鸡上放好导入好,建好虚拟主机再把域名解析改过来,这时候本该万事大吉,结果却错了,博客主页都挂掉了,报错内容为:

Parse error: syntax error, unexpected 'new' (T_NEW) in
C:\xampp\htdocs\titaniumcobra\wp-content\plugins\exec-php\exec-php.php on line 22

然后打开这个文件,找到这行代码:

$GLOBALS['g_execphp_manager'] =& new ExecPhp_Manager();

这一看就是Exec-PHP这个插件的问题,博客中使用了这个插件在文章里面和侧边栏显示一些统计信息。赶紧进FTP那插件目录给重命名了,相当于移除插件,但是迁移过来并没有些改什么东西为什么就不能运行了呢。查了一下,这款插件上次更新已经是8年前了,目前插件页面已关闭下载安装,很多人在底下评论更新到PHP7以后插件出现问题。原来一些以前的在PHP4或PHP5上能用的语法在PHP7上已经废弃了,在128小鸡上,因为硬件配置比较低,安装的PHP和MySQL都是低版本,迁过来以后配置高了,直接装的高版本,没想到还出现兼容性问题。其实自己修改一下就行了,将上述代码改为如下,删除”&”符号即可恢复。

$GLOBALS['g_execphp_manager'] = new ExecPhp_Manager();

然后将插件目录名字改回来,提示其他地方还有错误,与上面类似都改完就能正常访问了,但是安全起见还是寻找其他仍在维护的PHP执行插件比较好。

EOF

再次以为万事大吉,首页打开都是好的,这篇文章都看得见,结果一进详情页出现404了,把固定链接改成朴素型的就能正常访问,看来是Nginx的Rewrite重定向有问题了,在宝塔面板里面好像叫伪静态来着。好在这些都是前人采购的坑,宝塔面板自带WordPress用的Rewrite规则文件,把内容复制到对应站点的Nginx设置里面就行了。

不禁感叹,现在做个站真的容易,基本上什么都已经弄好了,直接在图形界面操作就行了。

Real – EOF –

国产派:NanoPi NEO 上手试玩

因为平时有需要在国内范围,使用混淆流量穿透某些管控设备,非飜蘠,需要在Linux设备上搭建酸酸乳服务器,客户端通过混淆穿透设备连接到有Internet访问权限的酸酸乳之后就可以“自由”上网。

其实这是我在无意间发现的,酸酸乳除了科学上网之外在国内也有一定的应用场景,后面在详细说我的应用,先介绍一下本文主角:NanoPi。

不需要树莓派一样高昂的价格(相对),jack 马家几十元就能入手一款国产派,例如NanoPi、OrangePi等,但却又有不输树莓派的性能配置和扩展能力,当然周边资料比起大名鼎鼎的树莓派还是要差上一些。

买回来是散的,自己把壳子、散热和板子装起来,就下面这样,明显的接口有百兆网口、USB母头、MicroUSB供电口、用作存储的SD卡槽,还有两排插针可以扩展其他接口,用不到不折腾了:

包装非常硬朗,说明书有基本的SD卡镜像制作步骤,中英两种说明书,图中只给中文的;

从网站下载镜像,用Win32DiskImager写入到SD卡里面,插到板子上接上MicroUSB系统就启动了,蓝灯稳定闪烁说明系统启动完毕,以后就是下面这样了,一边一根线:

大致就是这样,配置参数就不细说了,网上都有,下面说说我是怎么应用的。仅使用了板子上的Linux,没有搞那些外围设备的开发。

从路由器找到IP然后连上去:

官方镜像自带监控工具,可以看出来镜像就是从树莓派改的:

偷懒,在NanoPi上用一键脚本安装酸酸乳服务端用来转发,需要从Github下载libsodium-1.0.15.tar.gz,无法访问,脚本报错,僵,

看到执行目录里面有个0kb的libsodium-1.0.15.tar.gz文件,手动从网上下载了scp放进来再运行脚本,安装通过了。

接下来配置网络,接入的网络环境是这样的:

入户一个主路由,网件电磁炉r6300v2,洋垃圾刷梅林,192.168.192.0段,

主路由下面有一个副路由,网件r3700v4,刷OpenWRT,192.168.168.0段,

NanoPi接在副路由上。

主路由联通拨号有公网IP但是不固定,使用梅林的动态DNS功能,绑定到一个域名上,这里用的是公云的免费DDNS,这样在公网就可以从一个固定的域名访问到主路由:

然后在主路由做端口转发到副路由,用到的几个端口都转发一下吧,后期稳定了只留酸酸乳端口:

然后在副路由做端口转发到NanoPi,用到的几个端口都转发一下吧,后期稳定了只留酸酸乳端口:

OpenWRT做端口转发可能还是无法访问,需要在防火墙那里设置一下,具体请上网查。

然后telnet一下域名能通了,再试一下酸酸乳服务也是好的,这样就能用了。

平时是这样用的,在某组织内,有某设备设置的网络限制,仅允许白名单域名通过访问,在酸酸乳客户端将流量混淆成白名单内的域名,就可以穿透限制连接到酸酸乳服务端上,再由服务端转发就可以自由上网(仅国内)。

酸酸乳服务器要搭在能访问公网的Linux上,本来想用废旧的安卓手机装一个Linux,但是试了好多在Android上部署Linux的应用,都是虚拟机形式的,或者被chroot了,无法处理来自网络的链接请求,也可能是我不会设置,欢迎在评论中讨论。又想到在Windows的Hyper-V中建一个Linux虚拟机,这是可行的,但是要一直开着电脑。也想过在国内买一个云服务器,不过价格都很贵,虽然自己有在国外的VPS,由于是低端机型而且跨国,那个的访问速度就很慢了。然后就想到了在树莓派中安装Linux,不过树莓派的高价格来的各种可扩展性和其他各方面的特性都是我不需要的,买个树莓派来有点浪费了,再找树莓派最低端型号的时候发现了国产派,稍微比较之后选择了友善之臂的NanoPi NEO。

大致就是这样,EOF。

博客配置移动版界面

不记得什么时候给博客配了移动版界面,这里还是记一下吧,现在用的主题没有适配移动版,在手机上看显示的是PC版界面,很不友好,可读性差,在网上找了一圈使用WPtouch插件解决。

现在懒了,能用插件就用插件了,一方面是操作简单节省时间,一方面是在各种升级之后还能保留,如果自己改代码,不晓得什么时候就被覆盖没了。

插件可以免费使用,部分功能需要升级到付费PRO版,例如更改主题等,不过默认主题就挺好用的,修改一下颜色和图片就能用了。

效果如图。

顺便又修了,添加特色图片后,分类文章页面和搜索结果页面文章列表左侧大片空白只显示一个图片的问题,改了PHP把判断有没有特殊图片那段注释了(其实不是问题,只是我觉得不好看)。

博客从阿里云迁移到搬瓦工

不久之前博客的域名在美橙互联上,提示要上传身份证等个人信息不然不给解析,把域名迁移到了namesilo。

现在阿里云又打电话说我空间备案主体信息不符,之前备案的电话打不通了,要求备案变更主体信息。因为换号了之前的手机号不用了,而且不是重新备案,我想就把电话改一下就好了,上去备案系统结果网页还改版了,找了半天找不到。改了电话,上传了一堆身份证之类的,过了两天阿里云又打电话,说域名所有人跟备案主体不符不能通过备案。因为namesilo有域名隐私才用的namesilo,你现在跟我讲要把这个关了,不然不给备案,不备案就不能访问空间,我有一句你麻痹我想跟你讲一讲

而且阿里云这个每年六七十块虽然不贵,但就只是一个虚拟主机,1M带宽,流量也只有10G,看日志至少有一大半都被阿里云自己的IP(Hangzhou Alibaba Advertising Co.,Ltd.)不知道消耗到哪里去了,上个月直接耗完给我禁止访问了。

虽然我这博客上没什么隐私数据,而且有网友愿意给我提供香港空间存放博客,想了想既然自己有个国外的虚拟主机,还是自己管理方便一些,不过就是内存太小了128M的,带宽也只有1M,同时还用做你懂的查外国资料的用途。先试一下,如果搞不成再拜托网友吧。

开始想自己装Nginx、Mysql、PHP,然后再自己优化一下,上网查资料的时候觉得太麻烦了,刚好又看到一个lowendbox出品的lowendscript脚本,自动在低配机器上安装配置Wordpress、Nginx、Mysql和PHP,不过试了几次没有搞成,一直报错,他这个脚本基于debian5和ubuntu10.04的,源里好多软件都不能安装了,而且会替换默认ssh软件,当时烦球得很就没再继续研究了。

后来又找到了LNMP一键安装包,试了一下很顺利装上了,不过貌似优化不是很好,占内存有点高,我把博客放上来之后立马内存使用爆表了,还经常页面不能访问,502 Bad Gateway。

网上随便查了一下,Nginx配置文件里面worker_processes从auto改成2,PHP-FPM配置文件里面max_children从5改成2,然后又重启这两个服务,内存降下来了,随便开了几个网页,没在报502,就先这样吧,我也不是专业维护网站的,其他参数出了问题再调。

中间还修了一个上传媒体错误的问题,是web目录的权限不对,只读的,给上可写就行了。