Certbot自动给Nginx续期SSL证书
有一台机器证书过期了快1个星期才发现,属实得配置一下certbot的自动续期功能了,但是我知道这玩意在阿里云的CentOS7上有莫名其妙的问题,经常不能正常工作。但这次没办法必须要搞好。。。
要利用certbot给nginx自动续期需要安装一个插件,如果是Debian执行下面的命令应该就可以完成安装了:
apt -y install python-certbot-nginx
CentOS7执行如下命令安装:
yum -y install python2-certbot-nginx
然后踩坑开始,首先是安装的时候报这个,但安装进程还是跑完了:
error: unpacking of archive failed on file /usr/lib/python2.7/site-packages/urllib3/packages/ssl_match_hostname: cpio: rename
应该是urllib3冲突了,系统内已经有一个urllib3了,所以我先用pip卸载了:
pip uninstall urllib3
回滚之前的yum操作:
yum history list yum history undo 19
重新再安装一次:
yum -y install python2-certbot-nginx
哦嚯,这次安装没报错,但是完成之后运行报错,貌似是什么J8依赖问题:
pkg_resources.DistributionNotFound: The 'urllib3<1.23,>=1.21.1' distribution was not found and is required by requests
完整的报错如下:
没办法再回滚一次吧:
yum history list yum history undo 21
Google搜了一下,已经有前辈给出解决办法了:
pip uninstall requests pip uninstall chardet pip install --upgrade --force-reinstall 'requests==2.6.0' urllib3
再安装一次。。。
yum -y install python2-certbot-nginx
这次就正常了,执行执行下面的命令开始续期,但在yum安装的过程中又会报最开始那个错误。。。管不了那么多了,能用就行:
certbot --nginx
现在这个certbot要比之前智能很多了,可以直接获取到nginx配置的站点域名,我这边只有1个域名,所以输入1开始续期:
稍等一会证书就配置完成了,问你是否需要强制SSL,这里选1不做任何改动,因为我已经在conf里面配置了301,另外这种功能求稳的话还是不建议用,说不定给你把nginx的配置改炸了又多出一堆事:
现在certbot自动给nginx续期SSL证书就配置完成了,不需要像以前设置什么hook了,如果不放心你可以执行下面的命令模拟检查一次续期:
certbot renew --dry-run
如果回显内容类似下图就说明一切正常,你不用再担心证书过期的问题啦:
Bcache缓存配置
bcache是一个在内核3.10及以上版本就内置好的一个SSD缓存加速HDD的模块,看到3.10就想到了什么?想到了CentOS7是可以直接用的,不过我这次需要用到的环境是一个Debian9。安装的步骤不一样,但使用步骤应该是差不多的。
首先安装bcache的命令行工具:
apt -y update apt -y install bcache-tools
我这边是直接上了一块新的企业级2TBHDD硬盘做后端设备,然后一块512GB的SSD做前端缓存设备(512GB的SSD我只分了100G出来做缓存)。新盘肯定也要先分区,分区步骤就省略了。反正fdisk跑一下就行。
我把这块2T硬盘的全部容量分到一个区内,分完区之后,我这个设备名是/dev/sdc1,先格式化为ext4:
mkfs.ext4 /dev/sdc1
清除超级块信息:
wipefs -a /dev/sdc1
制作为后端设备:
make-bcache -B /dev/sdc1
如果正常回显如下:
完成之后把新设备格式化为ext4:
mkfs.ext4 /dev/bcache0
创建挂载目录并完成挂载:
mkdir -p /cache mount /dev/bcache0 /cache
SSD设备名我这边是/dev/sdb1,同样的先格式化为ext4:
mkfs.ext4 /dev/sdb1
清除超级块信息:
wipefs -a /dev/sdb1
将设备设置为缓存设备:
make-bcache -C /dev/sdb1
如果正常回显如下:
然后你在这个回显可以看到有一个Set UUID,这个是bcache将前端缓存设备和后端设备进行连接的唯一凭证,如果你忘记了这个UUID没关系,执行下面的命令可以查看:
bcache-super-show /dev/sd(X,Y)
现在我们需要把缓存设备和后端设备进行连接:
echo "db8e5df7-b0c8-4538-9942-84a0a400702e" > /sys/block/bcache0/bcache/attach
修改缓存模式为回写,回写性能最好,但如果硬盘意外掉电可能会丢数据:
echo "writeback" > /sys/block/bcache0/bcache/cache_mode
bcache默认不缓存顺序IO只缓存随机IO,我这边修改为全部缓存:
echo "0" > /sys/block/bcache0/bcache/sequential_cutoff
查看缓存信息:
tail /sys/block/bcache0/bcache/stats_total/*
跑了一段时间的结果:
实际怎么说呢,效果有肯定是有,但对于我这个环境来说的话,我个人感觉不怎么理想。就是不知道bcache能不能把raid设备当作前端缓存设备,比如我用两块SSD组一个raid0阵列,然后把这个阵列当作bcache的前端设备,这样的话感觉还可以。
用ssd做缓存刷pt效果大吗
效果不理想,起码这个bcache的效果不理想,我自己测试过的。
大佬可以试试这个用ssd做缓存https://app.yinxiang.com/fx/f97e6b29-2748-4afe-afba-d525e32144cd