聊聊技术

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

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

自动更新站点的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方式提供服务的,只 …

终于搞定了Depay的付费

想在OpenAI上设置个信用卡,用来支付ChatGPT的请求,但是国内的信用卡据说不可用,而且可能会导致封号。所以用Depay申请了个虚拟信用卡,又通过欧易注册和购买了虚拟币来进行转账。历经一些波折,终于搞定了,嗯! …

Nginx虚拟主机支持多域名部署

背景我有一些网站、服务日常需要进行部署。有的是简单的门户网站,有的是后台使用的API服务。这些网站、服务分别用了不同的域名。以一个简单的门户网站为例,如果需要部署发布至公网,有很多种方式。比如说自己购买或租用服务器,或者是用成熟的云厂商提供的云主机、VPS、虚拟主机等。那么,到底我应该选择哪种?云服务器和虚拟主机的区别在不同的云厂商,提供的服务,名称上可能有 …

代码的统一上线方案(3-目前的解决方案)

背景参看: 代码的统一上线方案(1-原始篇)上一篇: 代码的统一上线方案(2-短暂的过渡篇) 上一篇也是用技术手段来解决我上线代码到虚拟主机的一个痛点,是基于svn diff + ftp单文件上传替换的方式完成的,能够在一定程度上解决问题,但是留下了一个巨大的隐患:部分文件尚未完成上线时,过程中的不稳定状态。 那么基于ftp的方案差不多就算是被否定了,单文 …

代码的统一上线方案(2-短暂的过渡篇)

上一篇说到,代码上线到仅开放了ftp权限的虚拟主机,是如何的痛苦。 经过一段时间的忍耐之后,我忍无可忍,觉得应该靠技术手段来解决这个痛点。 然而思考得确实不太周到,用了一种现在看来很是“丑陋”的方案来解决。然而不管怎么样,这也是我在尝试进行虚拟主机上线代码的第一个尝试,也反映了我针对这个问题的思考过程,所以不管怎么样,还是拿出来说说看。思路 我的代码,都是 …

代码的统一上线方案(1-原始篇)

背景说明我有一些网站在运维,部署在不同的位置,比较好的,是放在了新浪sae。这部分代码很好搞,只要通过svn进行commit,线上就能够即时地更新。如果多版本开发呢?也不算复杂,在sae后台开一个新的版本,然后在这个版本上进行各种开发和调试,调试完成后,把版本一切换就好(当然,中间可能还涉及到一些数据的备份、更新,不赘述)。还有一部分代码在vps上,这部分 …