昨天晚上 MySQL
机器的 CPU
有点高, 感觉有点扛不住了. 新项目只是一个尝试性的项目, 不确定是否有市场, 所有并没有搭建主从
Composer 使用记录
Composer
是 Composer
用来管理依赖(dependency
)关系的工具. Composer
通常情况下通过 composer.json
文件来配置和管理依赖的
1 | # mac 安装 |
FastDFS 安装和入门
在传统的项目中计算机通过文件系统存储数据. 而现在各种微服务、负载均衡横行的时代, 文件会被多台服务器访问, 造成数据文件不能被存储在本地文件系统中.
传统的解决方法一般会有一台专门存储文件的服务器, 业务服务器的文件存储会通过 ftp
或 ssh
的方式上传到文件服务上. 这种方式被称为 网络文件系统 即 NFS
(Network File System
), 但是 NFS
在使用中也存在: 大量的访问磁盘 IO
、存在单点故障、存储空间不足等缺点
为了解决 NFS
的缺点 分布式文件系统 即 DFS
(Distributed File System
) 应运而生. 分布式文件系统可以有效的解决数据的存储和管理难题; DFS
将固定某一地点的某个文件系统, 扩展到任意多个地点/多个文件系统, 众多节点组成一个文件系统网络. 每个节点可以分布在不同的地点, 通过网络进行节点间的通信和数据传输. 在使用分布式文件系统时, 无需关心数据是存储在哪个节点上、或者是从哪个节点从获取的, 只需要像使用本地文件系统一样管理和存储文件系统中的数据.
Reids 的三种集群模式搭建和入门
在开发中 Reids
是我们经常使用到的 NoSql
之一, 在生产环境中, 在某些特定的情况下 (例如: 给开发人员使用的只读库) 需要引入 Redis
的集群方案. Redis
支持三种集群方案: 主从复制模式、Sentinel (哨兵) 模式、Cluster 模式
Golang 实现的非对称加密
对称加密作为最快速、最简单的加密方式, 所以被广泛的使用在很多加密协议的核心中. 但是对称加密也有一个致命的弱点, 那就是对称加密算法在加密和解密是需要使用到同一个 密钥; 当 A
和 B
两个人在需要进行加密数据的传输时, 如果他们使用的是对称加密算法, 那么必须有一端将 密钥 发送给另外一端. 在不安全的网络传输中这一点就是相当危险! 密钥 一旦被窃或拦截, 那么之前所做的加密就相当于已经失效.
1976 年, 美国学者 Dime
和 Henman
为了解决信息公开传送和秘钥管理问题, 提出一种新的密钥交换协议, 允许在不安全媒体上的通信双方交换数据, 安全的达成一致的密钥, 这种密钥交换协议就被称为 “**公开密钥密码学 (Public-key cryptography)**”. 相对于 对称加密算法 这种方法也被叫做 非对称加密算法.
非对称加密算法之所以可以规避对称加密的致命缺点, 就是因为非对称加密使用的是 一对 密钥, 而不是像对称加密一样使用 一个 密钥; 非对称加密的秘钥分为两个: 一个是 公钥 (public key
); 另一个则是 私钥 (private key
). 私钥只由安全的一方保管, 不能外泄; 公钥则可以发给任何请求它的人. 非对称加密算法在加密时可以使用两个密钥中的任何一个, 但是在解密时则需要另外一个密钥才能解密. 比如: 使用公钥加密就需要私钥才能解密、使用私钥加密就需要公钥才能解密.
DES/AES 对称加密
对称加密 (Symmetric-key algorithm
) 又被称为: 对称秘钥加密、私钥加密、共享密钥加密. 是密码学中一个种加密算法, 这类加密算法在加密和解密时需要使用到同一个秘钥. 根据不同的加密算法秘钥长度也不同, 一般在 64bit ~ 256bit 之间, 具体长度取决于所需的安全级别, 但是秘钥长度越长加密和解密所需要消耗的资源越多. 常用的对称加密算法有: DES (Data Encrytion Standard)
、3DES (Triple DES)
、AES (Advanced Encryption Standard)
等;
Golang 进程热重启
There are only 10 kinds of people in the world, one is a person who understands binary, and the other is a person who does not understand binary.
代码需要升级; 配置文件需要更新. 如果在 PHP
中这些都很简单, 一个简单的 vim
或 git pull
就能解决. 可是像 Golang
这样的静态语言就无法做到像 PHP
中的那么灵活. 在线上的生产环境, 我们必须保证新老服务无缝交替. 如果贸然停掉服务, 就可能造成一些问题; 例如:
- 旧的请求未完成, 服务端进程直接退出, 会造成客户端链接中断
- 新的请求发送过来, 服务端还未完成重启, 造成
connection refused
- 旧的请求未处理完成, 服务端进程直接退出, 可能会造成用户数据不对称(即: 用户已完成一部分操作, 还要一部分未完成)
当然; 这些问题都可以通过其他方法去规避. 例如使用负载均衡(如: nginx
), 保证在升级的过程中始终有一个服务可用, 即各服务器依次灰度升级. 但是像 nginx -s reload
这种的方式, 好像更加方便
使用阿里云 API 申请 Let’s Encrypt 泛域名免费 SSL 证书
The Internet has made the world today, and today’s world has made the Internet
最近帮朋友写了个小程序, 写完啦, 要测试啦. 没有 https
证书!! 我个人比较喜欢把测试代码放到自己的服务器上, 这样方便我自己修改 (PS: 自己的服务器嘛, 想怎么来怎么来). 所以得想办法整个 https
证书. 本来想看看网上有没有免费的, 一个不小心就 Google
到阿里云就有免费的证书. 刚好服务器是阿里的, 域名也是阿里的. 所以决定整一个用用
网站部署 HTTPS
的重要性
互联网造就了很多产业, 也造就了很多黑产业. 让我们想象一下: 当我们访问淘宝、京东的时候. 右下角漂浮着 “大家好我是渣渣辉, 是兄滴就来啃我”. 这种感觉肯定特别的酸爽 (PS: 哈哈哈哈哈, 要真是这样张家辉肯定还会火点). 或者我们再来想象一下: 当我们输入银行的网址后打算转账的时候, 卡号输了、密码输了、钱没到账不说, 银行卡里一分不剩, 这是不是就很悲哀了呢
上举的两个例子其实是真实存在的. 在输入网址访问网页, 到网页返回数据给我们的过程中, 其实是分很多步骤的比如最基础的 DNS
解析 (PS: 不做详解). 如果在 DNS
解析的过程中被人劫持并注入一些东西, 就可能会出现上述的两种情况
VPS + SSR 实现科学上网
今天公司的梯子挂掉了我很伤心! 对于我这种不知道是几流的程序员不能 Google
实在是太难受了, 本来自己有一个付费的梯子奈何公司的速度快 (PS:白嫖真的太爽了). 靠人不如靠自己,所以我决定自己搭个梯子自己用,谁都不给! (PS:不能让我对象知道).
- 真诚表态: 梯子只是为了更好的学习, 不做不利于国家的事情
选择 VPS
VPS
(Virtual Private Server
虚拟专用服务器), 说白了要搭梯子得先有个能访问国外资源的服务器不是, VPS
有很多选择: AWS
、Vultr
、搬瓦工 等.我这边直接选的是 Vultr
, Vultr
是按小时收费的, 因为现在管控的比较严所以随时都有可能被强掉, 按小时计费的好处就是可以随时销毁随时创建. 当然从价格上来看 搬瓦工 是最便宜的, 大家可以根据自己的情况选择 VPS
. 在我购买截止为止 Vultr
的服务器最低是 5 刀每个月 (PS: 一年也就三四百块钱, 我个人觉得还可以).
Hexo 搭配 Github pages 搭建个人博客
作为一个 IT 行业的菜鸟,有的时候在网上浏览到一些好的技术文章,看过之后转头就忘记了,所以有一个自己的技术博客做一些记录是非常有必要的。但是个人博客虽然简单但是开发起来费时费力,而且如果要添加什么功能也非常的麻烦;SO 选一个开源的博客工具是一个非常好的办法。这里就记录一下使用 Hexo
和 Github pages
搭建个人博客的步骤、插件的集成和碰到的问题
那么为什么要使用 Github pages
来搭建个人博客呢?
- 支持绑定自己的域名
- 提交网站等同于上传自己的代码
- 提供免费的空间,而且就在自己的仓库里 (PS: 在服务器上维护自己的 Blog 真的很麻烦!!)