DirectAdmin中文语言包 免费发布

从2007年开始,我们原创翻译了第一个版本的中文语言包
此后一直在坚持翻译每个版本的语言包

但是因为之前一直仅提供给通过我们购买DA授权的客户使用
所以受众面可能不大,现在我们免费开放使用,并且一直与官方同步

注意:
我们会尽可能的推送新版本至Github,但是可能会比商业客户延期3-5天后

安装说明
Shell运行 Continue reading “DirectAdmin中文语言包 免费发布”

[CDN软件系统更新] 免费SSL数字正数的处理方式

优化了 Let’s Encrypt 免费数字证书的业务处理逻辑

简化了证书获取流程
暂时还不是并行处理,下一步在改

现在的业务逻辑
用户 => 添加 www.test.com
选择免费数字证书

首先我们会验证这个域名是不是已经解析成功
CNAME 判断无问题
但是这个有个BUG,
如果域名是 test.com 这种域名因为DNS标准问题,是无法获取CNAME记录的
(原生DNS协议类型中, test.COM 这种域名是不支持CNAME方式解析的,因为和MX记录有冲突 )

所以想到一个折中的方式, 尝试解析这个域名, 获得IP, 在对比我们CDN节点IP/IP段
如果解析到我们的IP了,允许加入队列

如果用户希望 test.com 也可以访问
操作流程是
1. 先在域名管理里 绑定 test.com
2. 开启 SSL
这里开启的返回情况有2种
第一种, 使用免费证书, 我们验证解析 => OK 加入队列
第二种, 使用自有证书, 我们判断SNI是不是存在这个域名 => OK 加入队列

开启和关闭验证的截图

域名未解析 开启失败的截图

我们将这个请求加入队列进行处理
后台队列

CDN软件 CDN系统 开发进度2

这是一个功能都可以正常使用的产品原形,暂时还无法商用
只是跟大家分享下开发进度

相关介绍见之前的

这次更新实现了
1. 免费LE数字证书支持
这块和域名绑定有冲突, 所以做了个改动, CDN资源附加绑定域名的时候,要求先解析好
这样才能开启免费证书, 不然证书验证会错
解决验证的方式也很暴力, 直接将验证目录反向代理到主控端, 这样就能找到验证文件了
支持HSTS和HTTP2是否开启

2. 安全这个想了个逻辑
预定义2个cname域名, 一个正常服务器群组, 一个高防群组
正常网站解析到 第一个
如果用户选择了 “我正在被攻击”, 就将网站解析更改到第2个高仿
这个可以在ELK的机器学习里进行联动处理, 把日志作为数据源喂给ELK,然后进行学习
比如特定网站同期访问激增,UA或者IP都是带有SPAM标记就切换解析
具体逻辑还需要考虑
WAF 爬虫 跨域鉴权 都设置了选项了

3. 限制
增加了单站点的全局限制, 比如现在速度,突发请求,频率, 月流量限制等等

4 缓存
缓存增加了内容缓存文件失效时间
浏览器缓存失效时间
缓存模式, 动态还是静态 带不带参数这些

还有些杂七杂八的 比如BR压缩, 开发者模式 那些也计划增加

图片就是这些了





关于Helone小伙伴说的问题
1. 为什么使用nginx 而不使用 openresty的问题
这个是可选的,本质上NGINX+LUA模块已经实现lua的正常支持,并无什么区别

2. 这个设计目标本身不是给中小站长用的,是单客户内部使用的

3. 什么方案并不重要, 现阶段主要是实现产品原形
商业用途后端也许会使用其他语言, PHP只是开发快而已

4. 规则如下面的图, 会预定义一些规则
规则这个会非常麻烦
主要涉及 if match action,
比如这里的if 还涉及优先级等等
所以暂时的没那么复杂的计划

5. CF本身就有参考,但是我们和CF不是一个东西
我们的这个没有那么复杂, 毕竟没BGP DNS IP
这个绝对满足不了期待的, 并且就算给开发个CF Clone, 也没人有资金投入硬件和带宽来运营
本身是伪命题

6. MYSQL这个不接受反驳
你对这个日志数据量可能产生误差了, 这个是以大数据标准来做考虑的

首先MYSQL和ELK不是一个级别的东西,本身用途不一样
MYSQL本身不适合存储日志类型的记录
日志类型表现在数据量大并且写入数据量要求高
MYSQL的写入性能有目共睹的, 而且部分操作会锁表,可能产生各种问题

我举个例子,这个是我们其中几台业务服务器, 平均每台处理了5000万请求





这里是5台机器, 5×5000万 = 2.5亿条日志记录
你试试往mysql插2.5亿记录, 试试查询效率
更不要说我们定制的日志格式还包括GEO Ponit 这种行业信息, 比如访客国家,城市,ISP这些

你可能对ELK有些误会, ELK的表现优异在集群上,本身不是为单机设计的东西
如果你做好索引和定义数据类型,100亿条日志,几秒就定位查询出来

这个是本身计划的是行业应用,可选开或者关闭
就拿我们自己来说,对数据的分析需求还是比较大的
通过分析访问日志,我们知道产品使用时间段,设备类型,高峰期时间段
所以目前阶段, 这种还是ELK的方式比较靠谱

大型CDN系统 开发进度更新01

没那么高大上… 就是个反向代理的东西
参考Cloudflare的模式, 没DNS, DNS对接的AWS Route53 [延时测量模式]
没对接其他,CloudXNS/DNSPOD有计划,在TODO里了
原则上512M内存的VPS就能作为节点部署,能装NGINX就能作为节点使用

CDN系统介绍
///////////////////////////////////////////////////////////
目前市面上的CDN管理系统主要有这些问题
1. 硬件资源需求过高
2. 软件太臃肿
3. 设计不合理 [比如某CDN软件,将节点访问日志直接写MYSQL了…MYSQL支撑上亿的记录哈哈….]
4. 商业的大多收费高昂
5. 不符合单用户使用习惯
6. 安全问题,多用户的经常性出现安全问题,比如fikker,漏洞问题非常严重

我们这套CDN系统,完全是针对客户自用开发的
CDN主控制台 前台基于PHP/MYSQL,搭配部分Bash脚本实现
主要优势
1. 部署快速,10分钟就可以搭建主控,节点部署计划封装为RPM安装包 (1分钟即可部署…..)
2. 节点采用高性能NGINX作为WEB服务,可以搭配各种模块实现CC防护
3. 高度可定制
4. 可选统计是否开启

统计这块, 我们应该算创新了
第一种情况
小用户, 几个VPS堆积起来,没统计需求,如果打算节省成本,可以不部署日志服务器
基于VTS,可以简单的观察每个节点的流量吞吐,缓存命中率和缓存硬盘使用率,实时请求情况,等等信息

第二种情况
大用户, 大佬级,机器比较多
需要流量分析和做一些机器学习的事
我们的日志服务器选择elastic
每个CDN边缘节点, 每N条 OR N分钟将日志上报至elastic
支持查看实时请求,日志,访客在线,访问路径,缓存命中率等等等等信息

支持在elastic建模,使用机器学习来做一些事,
比如记录非法请求的IP,封禁
根据记录请求的时长或者其他特征,来判断是不是机器爬虫

演示截图
首页


节点管理

节点监控

网站管理

数字证书管理

域名统计

日期统计

这个暂时做个能用的原形,挖坑填坑
慢慢完善
有兴趣的可以加入开发

CDN软件, 日志系统架构和设计

采用ELK架构, 因为ELK的效率,以及原生支持跨DC跨区域和集群,索引分片等

ElasticSearch的查询性能非常好,支持集群

付费订阅版还有机器学习的模块功能

可以实现非常多的功能,

我们将 “访问日志” 和 “流量日志” 设计为分开存储

流量日志作为计费凭证,对于准确性要求高

而访问日志可能会出现无法过滤的非正常请求,导致日志服务器崩溃或者异常

这种情况计费日志不会被影响到

计费日志仅记录 “时间” “域名” “流量” “缓存命中”

提供API给CDN主控系统进行计费流量的数据采集

 

摘要信息

 

 

Linux KVM 物理服务器 卖VPS 虚拟化 超售 配置

KVM和OpenVZ虚拟化一样 都提供了允许超过物理内存大小的VPS配置,
很多内存分配给VPS,但是并未被完整使用,我们可以将这部分内存分配其他用户

举个例子
如果我们的物理服务器有128G内存, 不开启超售配置, 我们可以开通
128G – 4G(物理系统必要的内存) = 124G空闲内存 = 124 个 1G内存VPS

如果我们超售50%
128G – 4G(物理系统必要的内存) = 124G空闲内存 = 248 个 1G内存VPS

这也是为什么市面上基于KVM虚拟化的VPS价格越来越低的原因

目前基于KVM的超售配置,都是使用的KSM
KSM 全称是 (kernel same-page merging).
原理是将相同内容的内存页面合并, 比如我们运行了10个windows
这10个Windows内核占用的部分内存 数据是完全一样的,原来10份数据合并为一份
这样就减少了内容使用
Continue reading “Linux KVM 物理服务器 卖VPS 虚拟化 超售 配置”

Posts navigation

1234313233
Scroll to top