使用小米路由器实现局域网总代理

由于需要学习各种最新的开源技术,很多同学需要临时上网查询最新的技术方案。前几天看了一篇帖子写的不错,能够很方便的使用小米路由器实现上网功能。经过多次测试,好像只有小米路由器3是支持的。因此大家在动手之前,请先确认自己的路由器型号为MIR3。因为该方法中涉及到刷机等工作,所以选对型号非常重要。
Read more

使用Nginx搭建负载均衡和反向代理

今天做了一个简单的实验,就是在自己的域名下挂上weibo.com服务。当然如果按照此方式,一般可以挂上各种其它网站的服务。最简单的方法就是使用Nginx建一个反向代理。然而如果流量太大,可能需要不同IP的反向代理服务器。随后在这些反向代理之前挂一个负载均衡服务器。大致结构如下:
Read more

使用Electron创建简单的原生应用

Electron的存在彻底把编写Windows,Linux和Mac系统原生应用的门槛降到了前所未有的高度。虽然会有人说Electron相比于各平台的独立开发工具会在性能上,文件大小上的问题。但是相对于开发成本,这些问题都可以忽略,毕竟Electron是跨平台的。Electron理论上就是一个Node项目,可以使用npm管理。
Read more

简介3种浏览器爬虫方案

开发爬虫一般有两种常用的方案,一种是使用HTTP直接访问网站获取页面信息,另一种是使用模拟浏览器获取页面信息。两种方案各有利弊。例如:直接使用HTTP访问速度快,不会下载无用的JS数据和CSS数据,或者图片数据,内存使用量小,服务器的要求非常低;后者通常会加载完整的页面,虽然可以设置不加载图片,但是现在大型网站的一个页面的JS和CSS资源轻轻松松就超过10个文件以上。因此在速度和资源消耗上完全无法和前者相比。然而,前者也有非常明显的短板,对于反爬取非常复杂的网站,基本上都是通过JS实现的,例如动态令牌等。并且生成动态令牌的算法也是JS混淆加密,并且创建动态令牌的过程中也涉及到对称加密或者非对称加密等。这种情况下,想要模拟创建动态令牌并使用HTTP直接访问页面耗时耗力,花了很长时间破解了加密算法以后,页面端随便改个算法,这个破解过程要重来一遍,耗时耗力。这种情况下,使用模拟浏览器创建爬虫的方式相对就高效很多。
Read more

使用OpenSSL自建CA证书

当今几乎所有的浏览器都推荐使用HTTPS协议,苹果APP和安卓APP也逐渐会淘汰掉使用未加密的HTTP网络访问。因此使用HTTPS作为网络服务协议势在必行。当我们上线WEB服务以后,我们可以根据实际需求申请不同类型的SSL证书(CA有免费版本,也有收费版本,具体可以参考本文了解SSL证书的却别)。如果在开发过程中没有SSL安全证书,但是在APP中又要使用HTTPS协议,我们可以选择使用OpenSSL自建一张SSL证书,待服务上线以后在使用第三方发布的证书。
Read more