后端
文章平均质量分 90
服务器开发
Andy____Li
烹饪工具箱
展开
-
Nginx 配置文件nginx.conf拆分
本文环境:ubuntu 18.04 阿里云当nginx 反向代理的内容越来越多的时候,如果仅仅使用nginx.conf来配置会导致比较难管理。所以希望按照子域名规则来划分application。然后将application的规则配置到/etc/nginx/conf.d/下面去。目前希望针对不同子域名进行拆分。比如有以下两个子域名的反向代理需要拆分。rtc.sample.top -> port 4056account.sample.top -> port 40571 环境准备本节主原创 2021-01-28 13:31:25 · 2776 阅读 · 1 评论 -
AWS Cloud Watch及Lambda 执行定时任务
1 背景目前有一个报表功能,希望能定时扫描统计Dynamodb 数据库并在月初生成上月统计分析数据并填入统计结果表中。所以看能不能写一个定时任务来处理。但分析了一下场景,实际上和web应用服务器并没有关系且不希望统计功能占用到应用服务器资源影响运行。利用cloudwatch 来实现定时任务的触发。利用Lambda函数实现读取数据库,统计整理数据,并回写数据的功能。这里好处是就完成应用web服务器直接查询统计结果数据即可,不用参与较高复杂度的统计分析回写操作。而利用cloudwatch和原创 2020-12-10 16:18:45 · 3965 阅读 · 0 评论 -
nodejs使用crypto进行对称加密
1 简介Nodejs 加解密模块主要由Crypto模块提供,Crypto模块由 C/C++ 实现算法后,暴露为 javascript 接口的模块,包含对 OpenSSL 的哈希、HMAC、加密、解密、签名、以及验证功能的一整套封装。关于对称加密:采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密对称加密主要由Cipher 提供:Cipher该类的实例用于加密数据。关于支持的算法:最近的OpenSSL发布,openssl list-cipher-algorit原创 2020-11-19 11:37:35 · 3486 阅读 · 0 评论 -
Minio 搭建对象存储服务
文章目录1 mino简介2 环境3 部署3.1 获取程序3.2 存储类别3.3 挂载硬盘3.4 单机部署3.4.1 部署及测试3.4.2 作为Linux Service启动3.5 分布式集群扩容方案3.5.1 部署及测试3.5.2 作为Linux Service启动3.6 多机部署,扩容支持4 客户端及演示5 Prometheus+Grafana 搭建监控系统监控minio集群5.1 搭建Prometheus 收集minio集群数据5.2 使用Grafana 优化监控界面6 参考1 mino简介Mi原创 2020-08-04 15:19:58 · 7820 阅读 · 0 评论 -
nodejs 处理文件上传(express)
在实际开发功能中,经常会有涉及到文件上传的需求。这里简单记录一下文件上传处理的sample。具体场景还需要进一步开发。文章目录1 使用binary方式上传2 Chunked方式上传3 x-www-urlencoded 对值进行base64编码上传文件4 表单上传5 断点续传(分块并发上传)/大文件处理6 示例代码服务端:使用express框架处理文件上传Client:使用POSTMAN进行文件...原创 2020-02-28 17:50:30 · 3210 阅读 · 0 评论 -
Redis缓存与数据库一致性方案
今天和室友讨论关于redis缓存与数据库同步的问题,发现对这个问题没有清晰明了的认识,在网上找到Dustin_CDS的文章发现对各种情况都进行了讨论,转载以供以后学习查阅。本文转载自: https://blog.csdn.net/Dustin_CDS/article/details/79595297文章目录1 数据库和redis分别处理不同的数据类型2 Cache-Aside模式2.1 读场景...转载 2019-08-01 13:38:35 · 346 阅读 · 0 评论 -
DynamoDB 关系建模(多对多)
前一阵在Stack Overflow 上看到一篇关于DynamoDB 建模的回答,回答很好。所以这里整理一篇文章回顾该回答,指导以后的设计。文章目录1 Dynamodb 基础概念2 一对一3 一对多3 多对多3.1 辅助表3.2 外键集3.3 图形模式4 参考链接1 Dynamodb 基础概念每个DynamoDB表都有一个唯一的主键。主键必须由分区键组成,并且可以选择性地具有排序键。...原创 2019-04-29 09:54:55 · 1720 阅读 · 2 评论 -
后端缓存原理及常见问题
作为 server端经常会用到缓存技术来提供降低数据库压力和提高服务性能,因为一些数据我们没有必要每次查询的时候都去查询到数据库。今天读到一篇文章加深了自己对缓存的认识,整理一篇文档以作记录。文章目录1 缓存的基本实现2 缓存穿透2.1 原理2.2 解决方案3 缓存击穿4 缓存雪崩5 热点数据集中失效问题6 参考资料常见的缓存有redis等内存性缓存服务器。对于自己维护数据库而言,所有的请求都...原创 2019-04-25 20:19:42 · 3508 阅读 · 0 评论 -
压力测试概念及方法(TPS/并发量)
最近在对代码进行压力测试,这里整理一下压测中的指标和方法。文章目录1 压力测试中的指标1.1 TPS1.2 QPS1.3 平均处理时间(RT)1.4 并发用户数(并发量)1.5 换算关系1.5 TPS和QPS的区别2 压力测试方法3 相关文档1 压力测试中的指标1.1 TPSTPS 即Transactions Per Second的缩写,每秒处理的事务数目。一个事务是指一个客户机向服...原创 2019-03-22 19:52:35 · 73139 阅读 · 1 评论 -
服务器并发量估算
最近需要对再次对服务器进行压力测试,这里整一下最近学习到的估算方案和估算方式。1 并发值估算1.1 经典公式一般来说,利用以下经验公式进行估算系统的平均并发用户数和峰值数据 1)平均并发用户数为 C = nL/T 2)并发用户数峰值 C‘ = C + 3*根号C C是平均并发用户数,n是login session的数量,L是login session的平均长度,T是值考察的时间...原创 2019-03-18 20:21:18 · 9410 阅读 · 0 评论 -
正/反向(proxy)代理
最近整理日志时,看到关于代理方面的记录。感觉可能以后又时很长时间接触不到这些东西,有必要整理文档记录下一波。程序猿基础操作之代理。文章目录1 基本概念2 正向代理3 反向代理4 正向/反向代理的区别5 参考链接1 基本概念代理(英语:Proxy)也称网络代理,是一种特殊的网络服务,允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。一些网关、路由器...原创 2019-03-08 20:20:11 · 743 阅读 · 0 评论 -
HTTPS 协议简析
最近在微信公众号上关注了几个资深牛人的文章,今天看到了一片程序员小灰讲https的文章。虽说平时已经用的很多了,而且去年也因为要解决一些问题而学习了https的部分细节,但读了文章之后,仍然发现理解上有所差异,所以特此整理一文章记录自己所掌握的内容。1 HTTPSHTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以...原创 2019-02-28 20:10:21 · 321 阅读 · 0 评论 -
AWS SES发QQ邮箱拒收解决方案
文章目录1 背景1.1 现象1.2 环境1.3 测试2 分析与解决2.1 原因分析2.2 解决2.2.1 Mail From2.2.2 使用 DKIM 对电子邮件进行身份验证2.3 小结1 背景1.1 现象先说现象,现象是用使用AWS SES发送邮件,QQ邮件收件箱和垃圾箱都没有mail。Mail 必须要在自助查询-收件查询才能找到,发现下面有一栏被系统拦截的选项。本文并不是因为ip...原创 2019-02-22 10:48:12 · 8142 阅读 · 0 评论 -
获取http请求者ip(nodejs-express)
今天想找一个安全生成sessionid的方案,随后想到应该检测请求方ip,这时才发现这里是一片知识的盲区。随即整理学习。文章目录1 原理1.1 Remote Address1.2 存在代理 X-Forwarded-For1.2.1 实现逻辑1.2.2 X-Forwarded-For1.3 确保请求者ip是真实的而不是伪造的1.3.1 对于安全性要求较高的行为1.3.2 对于安全要求较低的行为2 ...原创 2018-11-07 20:29:33 · 12125 阅读 · 2 评论 -
原生app登录 后台方案(token方案)
原来经常用oauth2 的password方案来做登录,自己给自己app做授权没毛病呀,但后面一下有点不对,这里应该是有问题的。于是学习了原生app登录的方案。并学习一系列登录有关知识。特此记录,这是第一篇。PS:注意,标题中的token即不是oauth2 中的toekn。也不是JSON WEB Token(JWT)中的token文章目录1 web端-session cookies方案1.1 ...原创 2018-11-06 13:44:22 · 12132 阅读 · 2 评论 -
Nginx 反向代理并作为服务运行
今天被公司一台自带nginx Linux服务器套路了。部署了一个server在服务器上用的80端口用来测试,没注意到是否有nginx service。结果公司IT把服务器重启了,把80端口给我占了,导致我server恢复不起来。(⊙o⊙)…,是时候记录一波部署路线,防止以后翻车了。测试环境: ubuntu(linux)1 nginx安装1.1 下载源码下载nginx源码http://ng...原创 2018-10-23 14:13:44 · 564 阅读 · 0 评论 -
Node express post 大小设置
前一阵需要设备上传提供人脸图像,采用http post方式作为application/json 中一个key方式上传base64编码后的图片。发现图片稍微大点就直接报下列错误:Error info: {“error”:“ParamNotSupport”}经过查询网上资料后:发现是body-parser 默认限制了body长度在express app.js中加上:var bodyPar...原创 2018-09-29 16:22:38 · 3994 阅读 · 0 评论 -
GCM 推送服务端(nodejs)
昨天接入苹果APNs推送,今天需要支持GCM端推送,推送服务器都需要在墙外,否者无法连接到GCM服务器,而接受推送服务器的手机app需要有谷歌服务框架,最好待推送手机也在墙外。同样万能的npm也提供了gcm推送模块。推送代码:var gcm = require('node-gcm'); var sender = new gcm.Sender('XXXXXXXXXXXXXXXXXXXXXX...原创 2018-09-29 15:50:36 · 1000 阅读 · 0 评论 -
JWT(JSON WEB Token)
今天尝试把用户权限注册部分托管到AWS服务上,而发现相关的服务是AWS cognito。 同样是基于oauth2的授权模式,但里面返回不是我们原来使用的那种token,而是另一种JWT(JSON WEB Token)。这里只介绍JWT,具体实现后面在用一篇文章进行介绍。1 什么是JSON Web Token2 JSON Web Token 用途3 JSON Web Token结构3...原创 2018-07-23 11:46:00 · 934 阅读 · 0 评论