资讯专栏INFORMATION COLUMN

优化hexo访问速度-将hexo部署到云主机VPS

yhaolpz / 3325人阅读

摘要:写在开始一开始将自己部署到,结果发现打开页面速度有点慢,然后又将其同时部署到实现双线路访问,国内解析记录到,国外解析到,这样确实网站的速度能提高不少,但是国内访问因为是经过,所以打开网站会有广告,这点不能容忍,于是想到自己的服务器也还空闲着

写在开始

一开始将自己hexo部署到github,结果发现打开页面速度有点慢,然后又将其同时部署到coding,实现双线路访问,国内解析记录到coding,国外解析到github,这样确实网站的速度能提高不少,但是国内访问因为是经过coding,所以打开网站会有广告,这点不能容忍,于是想到自己的服务器也还空闲着,于是想到可以部署到自己的服务器上,折腾开始
演示站点

部署总览

个人使用的环境

本地环境: Windows10(64位)

云主机:阿里云ECS(CentOS 7.2 64位)

整个部署过程

本地环境搭建(gitNodeJshexo..)

云主机环境搭建(gitNginx

设置解析(dnspod

使用git自动化部署博客

本地环境搭建

安装git

安装hexo(这些步骤省略)

生成ssh公钥(之前生成过的也就不用再执行了,比如部署在github上填写过rsa密钥就不需要再进行这一步了)

在命令行终端执行如下命令
ssh-keygen -t rsa -C "邮件地址"

生成的文件默认在~/.ssh目录中,看到有id_rsaid_rsa.pub这些文件即可

云主机环境搭建

安装git及nodejs

yum install git
#安装NodeJS
curl --silent --location https://rpm.nodesource.com/setup_5.x | bash -

创建git账户

adduser git
chmod 740 /etc/sudoers
vim /etc/sudoers

添加内容
找到

## Allow root to run any commands anywhere
root    ALL=(ALL)     ALL

添加以下内容

git ALL=(ALL) ALL

保存退出并改回权限

chmod 400 /etc/sudoers

设置git账户密码

sudo passwd git

切换至git用户,创建 ~/.ssh 文件夹和 ~/.ssh/authorized_keys 文件,并赋予相应的权限

su git
mkdir ~/.ssh
vim ~/.ssh/authorized_keys
#然后将本地电脑中执行 cat ~/.ssh/id_rsa.pub | pbcopy ,将公钥复制粘贴到
authorized_keys
chmod 600 ~/.ssh/authorzied_keys
chmod 700 ~/.ssh

在本地终端中测试是否能免密登录git
ssh -v git@SERVER

其中SERVER为填写自己的云主机IP

创建目录

# repo 作为为git仓库目录
mkdir -R /var/repo
# hexo 作为网站根目录
mkdir -R /var/www/hexo

配置nginx(当然Apache也是可以的,nginx的安装步骤省略)

首先输入ngixn -t找到配置文件,我的是在/etc/nginx/nginx.conf,配置SERVER

server {
     listen       80;
     # server_name 填写自己的域名
     server_name  www.fayne.cn;
     # 这里root填写自己的网站根目录
     root         /var/www/hexo;
     index index.html index.php index.htm;
     #/usr/local/tomcat/webapps/Forum

     # Load configuration files for the default server block.
     include /etc/nginx/default.d/*.conf;
      location / {
     }
     location ~ .php$ {
     }

     error_page 404 /404.html;
         location = /40x.html {
     }

     error_page 500 502 503 504 /50x.html;
         location = /50x.html {
     }
}

设置解析

dnspod设置解析记录,设置解析A记录www解析到服务器IP地址, 解析线路默认

设置CNAME解析使www解析到xxx.github.io,解析线路国外,这里的xxxhexo部署在github的仓库名称,这样保证了在国外访问速度也是极佳的

使用git自动化部署博客

自动化部署主要用到了git-hooks同步

服务器建立裸库,这里要用git用户登录,确保git用户拥有仓库所有权

su git
cd /var/repo/
git init --bare blog.git

使用 git-hooks 同步网站根目录
在这里我们使用的是 post-update这个钩子(也有可能是post-receive,具体进入文件就知道了),当git有收发的时候就会调用这个钩子。 在 /var/repo/blog.git 裸库的 hooks文件夹中

vim /var/repo/blog.git/hooks/post-update
# 编辑文件,写入以下内容
#!/bin/sh
git --work-tree=/var/www/hexo --git-dir=/var/repo/blog.git checkout -f

保存后,要赋予这个文件可执行权限

chmod +x post-update

配置_config.yml,完成自动化部署
打开_config.yml, 找到deploy

deploy:
  type: git
  repo:
    github: git@github.com:Finhoo/Finhoo.github.io.git
    www: git@www.fayne.cn:/var/repo/blog.git
  branch: master

保存后,即可测试部署

hexo clean && hexo g -d

至此,我们已经成功部完成,并且访问自己的服务器端比访问github快多了,国外速度也是很好

常见问题

我在部署过程中,执行 hexo d发现部署老是出错,什么权限不允许之类的,这里我们需要检查我们在上述的git操作部署是否使用了git用户操作,若是没有,需要给相应的目录更改用户组
使用chown -R git:git /var/repo/这条命令递归的将repo目录及其子目录用户组设置为git,同时chown -R git:git /var/www/hexo,这样即可解决此类问题

参考资料

阿里云VPS搭建自己的的Hexo博客

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/39630.html

相关文章

  • 如何在服务器上搭建hexo博客

    原文链接 随着Vateral主题的开发接近了尾声,在对主题速度优化的时候发现之前用的githubpage问题多多:首先就是因为在国内的原因,访问速度本身就很慢,曾经有次加载一张16kb的图标时间耗费了26s!!?其次,在对资源做CDN托管加速时,域名是需要备案的,显然githubpage也是做不了的;所以果断舍弃了这个把hexo搭建到了我的阿里云服务器上 总体来说还是比把hexo搭建到github...

    MycLambert 评论0 收藏0
  • Hexo快速搭建静态博客并实现远程VPS自动部署

    摘要:提示,如果需要通过实现服务器自动化部署,推荐使用会更方便一些然后在目录初始化本地仓库并提交到这时候上已经有我提交的代码了。再新建一个文件处理部署相关脚本,内容如下将新增的与两个文件到服务器。 这篇文章将如何搭建hexo,以及如何通过git webhooks实现远程vps的自动部署 这篇文章适合的条件: 简单的用于个人博客、公司博客展示,hexo的定位是静态博客,要实现动态服务器的功能...

    keke 评论0 收藏0
  • 博客从WordPress迁移到Hexo

    摘要:既然对感觉不错,那为什么要把博客从迁移到上呢。可以参考此文档进去可以选择中文安装所有必备的应用程序安装完成后,即可使用安装。插件安装完成后,执行下列命令来迁移所有文章。部署代码到清除缓存文件和已生成的静态文件。 偶然的机会看到了Hexo,就深深被吸引了,加载速度快,支持Makedown,还支持部署到Github上。作为一位PHP程序员,之前的博客用的是PHP开发的WordPress,其...

    caspar 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<