🌞写在前面
在使用Hexo之前,一直用的WordPress,终于在断断续续使用了两个年之后忍不住了,不得不说WordPress拥有丰富的插件和庞大的群众基础,但是实在是用起来不方便,每次写东西都要登录,进入后台管理,添加文章,排版很累(也使用过Markdown插件,效果不太好),当然也尝试过用其他方式写,比如用word写,简单配置一下,推送到WordPress上面,但是这样就没办法用Markdown了。然后就是安装插件让本来就很重的页面加载工作雪上加霜。。硬生生的把我写博客的积极性打击没了。还有一点就是以前的WordPress是跑在阿里云的云虚拟机上,不如服务器更方便捣鼓,哈哈,而且不能配置HTTPS,很鸡肋🐶。然后就是WordPress是PHP写的,太深的定制化需要搞PHP。索性换成Hexo,方便订制,加上Jenkins(工作的时候稍微学了一下,基本使用还是没有问题的),如虎添翼(杀鸡用牛刀),现在只需要在本地用Markdown写好文章,然后git提交到远程仓库,就会自动部署,只需要愉快的写就可以了,美滋滋。东西有点多,搞得时候没有记录,现在回头写有点麻烦,有空慢慢填坑。
🌞准备工作
- 服务器购买
- 我选择的是阿里云的服务器,因为我以前的博客就是在阿里云上面的,当时想要做备案,所以才选的国内的云服务商,如果你不需要备案选用国外的服务商,也可以。阿里云服务器有几种付费方式选择:
预付费
、按量付费
、抢占式资源
。这几种付费方式的官方说明:,相比较之下,
抢占式资源
还是比较划算的,但是抢占式资源
和按量付费
不支持备案,我的是因为以前备过案了,就不需要再备案了,如果你想要备案,那只能选包年包月的预付费
了。这个问题我也是刚发现。。就拿我需要的配置来说,我选了一台2核2G的服务器,自带的40G的系统盘,跑个博客和一些小型的程序比如jenkins,足够用了,实在不行以后再升配置,这也是云服务商的优势之处。如果选用预付费方式,,便宜的一种也需要78一个月。如果选用按量付费,
,0.29/小时,
0.29*24*30 = 208.8
,选用抢占式实例,,
0.079*24*30 = 56.88
,资源不是很紧俏,价格就不会变,在设定的可以承受的最高价之下就会自动扣钱,不会被释放。对于个人而言还是可以选择的。
- 我选择的是阿里云的服务器,因为我以前的博客就是在阿里云上面的,当时想要做备案,所以才选的国内的云服务商,如果你不需要备案选用国外的服务商,也可以。阿里云服务器有几种付费方式选择:
- 域名购买
- 使用的域名是我几年前购买的,
.top
后缀的,当时就是因为便宜,好像刚开始引入这个后缀,一年几块钱,就一直用,用我的名字全拼,其实也有一个短域名fjh.im
,实在name.com
上面买的,但是.im
域名是不能备案的也不能转入阿里云管理,就一直用作邮箱用,也可以解析跳转到现在的博客域名上面,但是只能解析一个地址,用来跳转主页。
- 使用的域名是我几年前购买的,
- 域名备案:
1. - 域名解析:
🌞配置服务器
- 安全组配置
🌞配置七牛云静态存储
🌞配置Nginx
🌞配置全站HTTPS
- 站点服务器HTTPS
- 七牛云静态存储HTTPS
🌞CDN 加速
- CDN使用的是“又拍云”的CDN加速服务,之所以再选择一个云服务商,一是可以将平时的流量分摊到两家服务商,保证都不超过免费套餐用量😁,二是尝试一下不同的服务商怎么用,捣鼓一下。
🌞Hexo安装测试
🌞Jenkins安装
🌞Jenkins配置
注意事项:
脚本执行
npm install
,提示找不到npm
命令,解决办法:在jenkins的脚本开始添加:
1
2
3#!/bin/sh -l
export NODE_HOME=/usr/nodejs
export PATH=$PATH:$NODE_HOME/bin
jenkins脚本移动文件夹提示没有权限:解决办法
- 不同服务器之间传输数据:
- 有时候需要不同服务器在执行jenkins的build之后传输文件,需要配置scp文件传输
- 准备工作
- 安装scp命令工具:
yum install openssh-clients
,相互传输文件的两台机器都要安装 - jenkins里面安装插件:
Publish over SSH
- 配置jenkins服务器和部署机器之间相互信任:
- 复制jenkins服务器用户目录下的
.ssh/id_rsa.pub
中的内容 - 将复制的内容添加到部署服务器的
.ssh/authorized_keys
文件中,一般情况下这个文件是空的,直接粘贴进去就行。 - 然后再使用jenkins构建的时候,仍然失败,提示权限不够,需要在第一次使用scp命令的时候需要自己先动手在shell终端中执行一次,然后使用scp随意复制一个文件过去,输入密码,之后再用jenkins复制文件就免输密码了。
- 复制jenkins服务器用户目录下的
- 安装scp命令工具:
🌞配置自启动项(systemctl)
nginx配置自启动
- 进入
/lib/systemd/system
目录:[root@JH-demo sbin]# cd /lib/systemd/system/
创建nginx.service文件
1
vim nginx.service
1
2
3
4
5
6
7
8
9
10
11
12
13[Unit]
Description=nginx service
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target说明:
1
2
3
4
5
6
7
8
9
10
11[Unit]:服务的说明
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3
加入开机自启动:
# systemctl enable nginx
取消开机启动:
# systemctl disable nginx
systmectl的其他命令:
1
2
3
4
5
6
7
8
9
10
11
12
13# systemctl start nginx.service 启动nginx服务
# systemctl stop nginx.service 停止服务
# systemctl restart nginx.service 重新启动服务
# systemctl list-units --type=service 查看所有已启动的服务
# systemctl status nginx.service 查看服务当前状态
# systemctl enable nginx.service 设置开机自启动
# systemctl disable nginx.service 停止开机自启动
- 进入
jenkins配置自启动
🌞其他
- 配置快照策略
- 购买OSS存储资源包
- 制作快照
- 服务器迁移
- 磁盘快照制作自定义镜像
- 跨区域镜像复制使用