Elasticsearch 备份并在另一个集群恢复 原载于本人博客:https://dev.tail0r.com/elasticsearch-restore-on-another-cluster/以下简要记录 ES备份 indices 并在另一个集群恢复的过程。1. 在 elasticsearch.yml 中新增 path.repo: ["/var/backups"],其中/var/backups 为你想要备份到的目录,需要...
基于 Docker、Consul、Registrator、Consul-template 的服务部署 最近准备自己实践一下基于 Consul 的服务发现,于是有了这篇文章。本人的环境是 Google Cloud,CentOS 7.5,生产环境。首先安装 Docker 和 docker-compose 。官网都有安装方法,这里不详细说了。然后安装 Consul 和 Registrator。因为这两个有关联,所以我直接编排在了一个 docker-compose.yml 文件里。文件如下:...
uWSGI+Flask 并发 MySQL 查询结果会串的解决办法 最近自己的 Python Web 程序出了一个非常诡异的问题:不同用户的数据库查询结果会串。A 用户会读到 B 用户的数据库查询结果,B 用户可能又读到了 C 用户的查询结果,乱成一团,Sentry 疯狂报警。一开始以为是自己程序改错了,直到后来慢慢怀疑是修改了 uWSGI 配置文件引起的问题。在发生故障之前,我的 uWSGI 并发模式是多线程,因为 Python 的 GIL 有限制,所以改成...
VMware Fusion 安装 CentOS 7 minimal + 中文界面全过程记录 minimal 安装这一步就不说了,在 vmware fusion 中新建虚拟机,选择 minimal 镜像然后一步步安装即可。网络配置安装完成后,此时并没有连接网卡,因此无法使用 yum。使用nmtui命令运行自带的网络工具。选择开机自动连接后,用 systemctl restart network 命令重启网络细节参见:https://blog.csdn.net/u014695188/arti...
记一次内存爆炸的经历 本文原载于https://base.admirable.one/t/topic/149,作者亦是本人,特此申明。最近有做一个程序,内容其实很简单:调用几百万次一个api,然后把结果保存到 MongoDB 数据库。一开始我没有想到用 coroutine 等高级方法,就简单采用了“生产者消费者”的模式:第一组线程负责分配任务,第二组线程负责从api获取结果,然后保存到一个队列,第三组线程负责从队列中拿...
SSL 配置优化的若干建议 转载自本人博客:https://dev.tail0r.com/ssl-optimization/如果你配置SSL只是为了网站的网址前有一把锁的标志,那不如直接送你把锁好了。别想了,这句话不是哪个安全专家说的,是我说的(逃)今天写一篇文章记录一下自己 SSL 的配置优化过程。以下设置均为 Nginx 的配置。Forward Secrecy(前向加密)forward...
网站速度慢的优化,从底层到高层 当我还是一个小白的时候,对于网站速度慢我的唯一方法就是搬机房。后来学习了更多知识之后才逐渐意识到,从服务器到服务,从底层到高层都是可以优化的。在这里简单记录一下目前自己的想法:1. 硬件链路:服务器位置,traceroute情况,海外机房考虑是否有 CN2 线路2. TCP:拥塞控制算法(BBR、锐速)、连接数优化3. SSL:SSL 有没有优化?(SSL优化请看:https:
Gulp+Flask 静态文件版本管理最佳实践 最近了解了前端静态文件版本的管理方案,结合目前自己正在做的 Python Web 项目 EveryClass 总结了一套最佳前端静态文件版本方案。公认的静态文件命名方案为main_c0f13f3.css,其中c0f13f3为文件 hash。有关于为什么不使用main.css?v=xxx的形式,请参考这篇知乎回答。我在此基础上进行了一个小优化,修改成了main_v1_c0f13f3.css,主要是考虑
Mac 下验证下载文件的 MD5/SHA1/SHA256 验证SHA-256openssl dgst -sha256 /path/to/file验证SHA-1openssl sha1 /path/to/file验证 MD5openssl md5 /path/to/file备注MD5已经不再安全,推荐使用 SHA-256最新的 macOS好像可以通过md5 /path/to/file的命令来验证MD5了,而sha256和sha1则没有这么直观的方式。如果
Mac 下实现 pyenv/virtualenv 与 Anaconda 的兼容 自己一直用的 pyenv 和 pyenv-virtualenv 管理不同的 python 环境。昨天朋友推荐我安装一个 Anaconda(通过官网下载安装带有图形界面Anaconda Navigator 的版本,并非通过 pyenv 安装),结果安装之后似乎与原来的 pyenv 不太兼容,在网上搜了一下,有遇到类似情况的:https://stackoverflow.com/questions/409
C++中memset函数的用法注意事项 话说刚开始使用memset的时候一直以为memset是对每一个int赋值的,心里想有了memset还要for循环对数组进行初始化干嘛。但其实memset这个函数的作用是将数字以单个字节逐个拷贝的方式放到指定的内存中去。比如memset(dp,0,sizeof(dp));int类型的变量一般占用4个字节,对每一个字节赋值0的话就变成了“00000000 00000000 000000000 00000
CentOS 镜像大全 http://mirror-status.centos.org/#jp 这个网站是官方的镜像状态网站,你可以在这里找到各地的镜像,以及他们的更新时间,非常实用。比如如果你的云主机在日本,选择一个日本的镜像、并且最近更新过了的,就会非常快。
CentOS 6.x 安装最新版本 git #!/usr/bin/env bash# Install the latest version of git on CentOS 6.x# Install Required Packagessudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-develsudo yum install gcc pe
敏感文件误上传到 Github 怎么办? 请看 Github 官方帮助:https://help.github.com/articles/removing-sensitive-data-from-a-repository/推荐使用 BFG 工具:https://rtyley.github.io/bfg-repo-cleaner/
macOS 免密码登陆 CentOS 服务器 打开终端,输入如下命令,一路回车,即可得到公钥和私钥:ssh-keygen -t rsa公钥和私钥就放在 ~/.ssh目录下。其中,id_rsa为私钥,id_rsa.pub为公钥,它们都是文本文件,可以用任何文本编辑器打开。如果在该文件夹下有名为“known_hosts”的文件,把该文件删掉。可以把它看做一个缓存文件,目标主机发生变化时,缓存可能导致验证不正确。登录到 CentOS
部署Python Web项目到CentOS服务器踩过的坑 CentOS 没有 apt-get 命令,也没有easy-install像centos这类衍生出来的发行版,他们的源有时候内容更新的比较滞后,或者说有时候一些扩展的源根本就没有。所以在使用yum来search python-pip的时候,会说没有找到该软件包。安装easy_install的方法wget -q http://peak.telecommunity.com/dist/ez_
学习python中踩过的那些坑 1. list 可以被序列化,但set不能被序列化,可以先用list(set)把 set 转换成 list 再序列化,有关序列化,参见http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/00138683221577998e407bb309542d9b6a68d9276bc3dbe000
为腾讯云服务器增添数据盘(AMH5) 近期因为业务发展的需要,频繁对生产环境服务器的系统盘进行了很多操作,这其中就有一些是操作失误需要补救的。幸好腾讯云提供了快照功能,可以很方便的备份和回滚硬盘数据,当然,缺点就是,除了你需要补救的错误,一直在更新的业务数据也回滚到之前的版本了,这当然不是我们想要的。所以无论是大型业务还是小型业务,系统盘和数据盘分离总是很有必要的。这台服务器之前安装了 AMH 面板并运行了网站,我在这里简要的记录一下我
git 学习笔记 花了一点点时间初步学习了 git。 今天用了一天的时间学习了 git 的概念和使用流程,在这里整理一些常用命令:基础git init 新建仓库 git add <file>添加到 stage(暂存区) git commit -m '<备注>'提交到 HEAD git status 查看状态 git diff <file>对比文件 git reset HEAD <file> unstag