Skip to content

分类:程序猿的东西

函数计算实现水印平铺

需求 接上文又拍云迁移阿里云OSS的实践所说,阿里云OSS这套图片处理不没有平铺水印功能,只好自己动手丰衣足食了。 方案 基于函数计算有两种实现方案,第一种是主动计算的方式,利用OSS触发器可以实现每上传一张新图马上生成他的含水印版并持久化存储在OSS。第二种是被动计算,利用HT…

又拍云迁移阿里云OSS的实践

背景 由于历史原因一直使用又拍云做图片存储和CDN,但是长久存在两个问题: 一是又拍云的服务不够稳定,不时会有服务宕机等令人肉疼的问题。这个问题虽然可以理解,但是不可容忍。于是一直有个念头要有一套备份服务,一旦其中一个故障,马上切换到另一个。 二是由于我们使用的是阿里云服务器,图…

阿里云函数计算入坑指南之HTTP触发器

函数计算简介 函数计算是最新一代serverless架构产品,结合了函数式编程思想和容器技术。一方面为应用开发和发布提供了许多便捷,另一个方面,因为是serverless,且由底层技术实现了弹性扩容,尤其降低了运维成本,提升了服务稳定性。目前许多云服务商都开始着力部署,以我常用的…

elasticsearch多级聚合

前言 由于更熟悉SQL,而ES的聚合语句想必也更复杂,所以通常的聚合查询都在数据库完成。近日,因为一些查询在数据库的字段不全,因此尝试用ES计算聚合。发现ES的聚合查询复杂有复杂的理由,可以实现更丰富的聚合功能。 示例 下面先看一条示例,不用细看,下面有分解动作教学。 这个语句在…

利用CDN代理规避网络线路问题

事发原因是部分广东移动用户无法访问API,因为我们的API部署在单节点的七层网络负载均衡后面,所以一旦用户到负载均衡的线路中断就直接挂掉了。相当于一个单点故障。 移动客服大概从来都没有遇到这种问题,打电话过去竟然一时不知该转接哪个部门。实在是一塌糊涂。 但是咱们也不能干等着,一个…

从根本修复:upstream sent too big header while reading response header from upstream

报错背景 某个用户的个人主页发生了报错,其他用户都没有问题。因为是同一份代码,所以问题应该在数据上。 初步尝试 搜索了一轮都是说修改nginx的buffer配置,这不难理解,就是让nginx允许接收足够big的header。这是一个急则治标的方法,但是我尝试了之后并不能解决。所以…

CDN概述和全站加速

CDN概述 首先了解CDN是什么,全称是Content Delivery Network 中文翻译“内容分发网络”。简单解释就是把资源也就是内容分布式存储,然后利用DNS技术的支持,使得用户可以在最近的网络节点访问数据。这样不仅节省了网络消耗,也避免了单点拥塞和单点故障。也因为C…

scrapy爬虫教程摘要(一)——基本流程

简介 scrapy是一个基于python的爬虫框架,提供了一套比较完整的爬虫解决方案,包括模拟cookie,referer,ajax等,并且支持代理,失败重试等爬虫攻防操作。可以让你专注于数据本身而不需要处理太多底层的东西。 今天整理一部分操作要点在这里以供速查和快速入门。 项目…

jumpserver堡垒机搭建和授权

堡垒机简述 堡垒机是一个服务器授权和管理的不错的方案,虽然有种种缺点,但是对小团队来说依然是不错的方案。 引入堡垒机的优点之一是方便管理和授权,用堡垒机的身份验证即可管理其他机器而不需要我去每台机上做授权,登录每台机的授权和限制也是统一管理的。另外一个是经过堡垒机发送的命令都会被…

Linux扩展权限控制ACL

Linux基本都权限控制一定不陌生,每个文件/文件夹基于 user group other 三种用户身份分别具有读、写、执行的权限,我们可以用chmod命令来修改。但是这种设置方式比较比较简单暴力。比如我某个密码文件我需要能被执行程序读取但不希望被同一主机的其他用户读取。如果单通…

chmod的第四位数

前几天看到一个命令是chmod 2770 /srv/projecta,十分不解。我们知道chmod三位数分别表示用户,群组,其他用户的读写执行权限。如今出来第四位就不能理解了。 上例多出来的第四位是“2”,它也是一个八进制数,也代表了一种权限。但不同的是他不表示“读、写、执行”,…

Linux用户与组的基本管理

用户和组的基本概念 默认情况下一个用户会拥有一个同名的私有组,比如我们用ls -l 时候会经常看到某个文件所属的用户和组是相同的就是这个原因。一个用户可以加入多个组,但是同一时间只有一个是有效组,有效组的概念可以在创建文件的时候体现出,当前用户创建一个文件的所属组就是当前的有效组…

利用nginx反向代理拷贝网站

需求 源自一个比较奇特的需求,需要把原来的网站换个域名展示,比如用B域名显示A域名下的内容。但是B域名不能与A域名部署在同一服务器,也就是说不能在A的nginx配置中设置多域名。虽然我拥有A网站的全部代码,但是我并不想在另一台机器上部署一整套的复杂的环境。 尝试 于是乎,想到了最…

深度优先搜索DFS的非递归算法——PHP实现

概念 深度优先搜索算法(英语:Depth-First-Search,DFS)是一种用于遍历或搜索树或图的算法。沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所在边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为…

负载均衡、hosts和服务端渲染发生的不良反应

为了更简单的部署https,我们将https开通在了负载均衡上,负载均衡统一转发到80端口。 为了节省一丢丢网络消耗,把本机支持的域名用hosts指向127.0.0.1。 为了更好的SEO我们的网页用了服务端渲染。 于是接口请求https就没有经过负载均衡直接访问了本机443端口…

纪念侦破服务器负载悬案

近来服务器一直会有一些突发的负载高峰,而且还很有规律性,每十分钟一个高峰,同时可以看到TCP连接数和网络也会迎来高峰。 首先怀疑是外部流量所致,开始有几次逮到百度爬虫正在爬取,以为是百度周期性爬取。 后来发现百度没在爬的时候依然有此现象,怀疑是服务器上的定时任务积攒所致,因为有许…

MySQL查询导出到csv

问题 这其实是个常用技能,大部分GUI工具都提供了一些相关的操作,但是由于我用的都是基于WEB的管理工具,对结果条目超长,查询时间超长就很难适应。所以常常需要去终端导。 终端里面众所周知的导出工具是mysqldump,不过这个工具适合整表导出和备份之用,如果需要指定查询和输出格式…