最新内容

跟着高铁去旅行——你知道从上海出发,2个小时高铁可以到哪些地方吗?

背景周末2天假期,或者五一、端午这样的小长假,相信大家都希望能找个附近的城市去玩一玩。假期时间短,坐飞机太麻烦,高铁反而成了更加方便的出行方式。中国高铁运营里程已经突破了4万公里,已经覆盖了全中国大大小小150多个城市,甚至许多城市有几个,甚至几十个铁路站点。于是问题来了,是否有方法,可以快速地找到某一个城市(或高铁站)出发,N小时之内可以到达的城市,或者站 …

定时任务界面化管理方案

背景定时任务管理,在我们的开发过程中是一个很常见的场景。比如说,我们想要在每天的一个时间点做数据库的备份,或者每隔1分钟监控一次数据变化,并执行相应的数据处理动作等等。在任务比较少、执行比较简单的情况下,我们可能会直接通过使用Linux的Crontab来进行管理,相信做过程序开发的对此都不陌生。Crontab是一个很强大的定时任务管理方案,通过命令行的配置, …

统一日志服务器的设计实现(2)

背景前一篇提到,设计统一日志服务器的过程中,提供了一套日志服务系统,对外暴露tcp接口,供客户端来调用。客户端结合Log4PHP进行了一些改造后,实现了高性能的日志记录功能。但是这个日志服务还留下了一些悬念。我们选择了Workerman来进行日志服务的搭建,那么日志究竟要怎样记录,记录的日志如何查询?基于数据库进行记录使用数据库是一个相对简单和常见的方案,我 …

免费的异步事件处理方案

背景在我们日常开发的过程中,消息队列是一个非常常见的组件。例如执行一些批量任务,我们可以拆分任务后,通过消息队列来进行执行,起到削峰的作用。我也有个场景:做邮件发送。邮件发送本身是一个比较简单的功能,但是邮件发送本身是一个比较耗时的操作,如果有多封邮件需要发送,不可避免地会遇到执行时间较长的情况。在一些云服务器上,通常会有系统级的超时设置。比如说百度云bch …

统一日志服务器的设计实现(1)

背景在我们开发各种服务的时候,日志是一个非常基础,但非常重要的环节。最原始的方式,莫过于去直接通过屏幕echo或var_dump一堆信息出来;稍微进步一点,就是把一些信息输出到统一的日志文件中方便查看,再加上info、warn、error等日志级别。但是,很多时候,我们可能有多个服务,或者是多台服务器部署,这时候,我们就需要把它们的日志统一汇总进行查看、管理 …

如何通过ssh连接一台无法直接访问的机器

背景之前的文章讲过,我的很多服务是部署在百度云BCH上的。但是实际上呢,为了方便日常运维方便,我也有一些vps机器,比如一台中控服务器是在国内大陆的,还有一些特殊用途的机器在香港、美国等地(别问是干嘛的,就图机器便宜)。这不是重点,重点是部分机器,动不动就连不上,ping也ping不通,ssh也连不上,也就是说,网络直接是被隔离的。我的中控服务器也访问不了, …

自动更新站点的SSL证书

背景现在网站部署,普遍都是用https的模式了。但是SSL证书的购买、更新,还是一个比较困扰普通网站主的事情。要想方便,就花钱买,动不动一年几千块钱的证书费用;不想花钱呢,就得麻烦点儿,因为免费的证书,通常有效时间不超过3个月,所以就得自己定期更新证书。如果选择“不花钱”,acme.sh是一个很不错的方案,网上也有不少简单的介绍。不过实际用起来,才会发现,它 …

前端页面元素,命名千万不要用submit或者reset!

背景之前做前端页面时,对于一些页面请求,大多数是用ajax的方式来做交互的。也有一些做了提交之后,把post的信息进行处理,放到了session里,再跳转到新页面,从session里面获取信息进行查询、渲染。最近有个小的页面需求,刚开始的时候我琢磨着是不是干脆就让提交的目标页面直接做渲染得了(虽然,后面因为其他原因,我方案又调整了)。但是在做这个页面的时候, …

虚拟主机/内网进行数据库管理的几个还不错的方案

背景前面其实有文章提到,为了方便运维(更重要的原因是便宜),我的网站、服务通常是部署在虚拟主机上的。虚拟主机一般会有配置赠送一些数据库空间,比如百度云BCH,提供了1G的免费MySQL,日常情况下也够用了,所以一般情况下,我也不需要额外再购买MySQL数据库,而是直接使用虚拟主机附赠的就成。但是,虚拟主机赠送的数据库一般也会有较多的限制,空间、内存等各个方面 …

弱提醒(邮件提醒)如何进行加强?

背景在我们日常进行开发的过程中,难免需要和信息通知、监控通知等功能打交道。如果是公司、团队运作,自然可以有较为完整的通知体系,但是对于个人开发者而言,大多数的情况下通知的手段是比较单一的,即通过邮件发送消息或通知。因为个人开发者,通常无法注册微信服务号(需要有企业资质),自然无法使用微信的通知;而考虑到成本(不管是发送信息的成本,还是开发代码的成本),多数情 …

一个奇怪的问题定位——https服务丢失post信息

背景我有个网站A,其中一些功能,考虑到其他的网站可能也会使用,所以抽取出来,做成了服务形式,部署到了域名B上。网站A是对外可供访问的,出于SEO、安全等各方面的考虑,部署成了https访问的方式,例如 "https:www.poisonbian.com"  这样的形式。服务B,说是服务,但实际上也是通过http方式提供服务的,只 …