学习
实践
活动
专区
工具
TVP
写文章
专栏首页光城(guangcity)个人hexo博客的服务端部署及构建

个人hexo博客的服务端部署及构建

hexo博客的服务端部署及构建

0.导语

之前的Hexo博客放在Github上,速度太慢了,在腾讯云上买了台服务器,将博客放到上面,本节主要阐述Nginx服务端部署+Nginx优化+HTTPS部署。

个人网站部署预览:https://light-city.club/

可以点击阅读原文,或者公众号右下角博客。

1.总图

首先来看一下总图:

分为几个步骤:

  • 一般大多数人在自己的电脑上部署好hexo博客,这便是上述的hexo客户端
  • hexo部署的时候会先通过hexo g生成html文件到public文件夹下,最后hexo d部署到某个git服务器
  • 这里是将hexo d部署到我们自己的服务器上,那便是在自己的服务器上构建git仓库。
  • 远程git仓库通过hook,监听到有新的push,这个文件夹又会同步到nginx配置好的环境
  • 访客就能通过访问我们的nginx服务器,访问我们的文章。

2.服务端

本机客户端搭建网上教程很多就不阐述,在服务端主要需要git与nginx,我们下面一一介绍。

2.1 nginx

nginx可以源码安装,也可以yum直接安装(centos 用yum,ubuntu 用apt-get)。

源码安装

#下载
wget http://nginx.org/download/nginx-1.17.8.tar.gz
#解压
tar -xzf nginx-1.17.8.tar.gz
cd nginx-1.17.8

编译环境

yum update
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel

编译安装

#创建用户,用户名为git
adduser git
#设置密码
passwd git

#配置
./configure \
--user=git \
--group=git \
--prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_realip_module \
--with-threads

#编译
make

#安装
make install

紧接着就是配置文件修改:

server {
        listen       80;
        server_name  light-city.club;

        #charset koi8-r;
        #access_log  /var/log/nginx/host.access.log  main;

        location / {
            root   /usr/local/nginx/html/blog;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/local/nginx/html/blog;
        }
}

主要是修改server_name与root,server_name修改为域名,没有域名就不用修改了,root就是blog静态资源文件目录。

2.2 git

安装git与nodejs

yum install git
yum install nodejs

前面已经创建了git用户与设置密码,这里就直接使用。

sudo用户组

把git用户添加到sudo用户组中 输入以下代码sudo vi /etc/sudoers,打开sudoers文件,输入:/root进行搜索,搜索到代码行root ALL=(ALL) ALL,然后在这一行下添加以下代码git ALL=(ALL) ALL。输入完毕之后,按wq!强制保存退出vi。

ssh公钥

切换到git用户,添加SSH Key文件并且设置相应的读写与执行权限。

# 切换用户
su git
# 创建目录
mkdir ~/.ssh
# 新建文件
vim ~/.ssh/authorized_keys

然后把之前在客户端设置的SSH Key,复制到authorized_keys文件中,保存后退出。

这样做的目的是以后在客户端hexo d之后就不用输入密码了。

配置文件权限

chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

git用户登录

ssh git@ServerIP

把ServerIP替换为自己的ip就可以直接登录到服务端了。

网站目录

sudo mkdir -p /usr/local/nginx/html/blog
sudo chown -R git:git /usr/local/nginx/html/blog

初始化一个git裸库

su git
cd ~
git init --bare blog.git

配置Hook

vim ~/blog.git/hooks/post-receive

然后在该文件中输入以下内容:

#!/bin/sh
git --work-tree=/usr/local/nginx/html/blog --git-dir=/home/git/blog.git checkout -f

添加权限:

chmod +x ~/blog.git/hooks/post-receive

3.客户端

配置本地_config.yml文件夹

回到本地的机器上,进入你的hexo文件夹(就是你完成hexo init的那个) 找到_config.yml, 修改里面的deploy

deploy:
type: git
repo: git@SERVER:/home/git/blog.git //填上远程主机地址和git仓库路径
branch: master

SERVER改为自己的IP地址即可。

保存后,执行客户端执行下列命令:

hexo clean
hexo g
hexo d

网站便可以访问了:

4.配置HTTPS

  • 申请一个SSL证书,因为我的博客部署在腾讯云上,所以是去腾讯云页面上申请的 申请链接

https://console.qcloud.com/ssl

  • 点击下载,然后就解压缩,获得以下几个文件夹。

可以看到是给不同的Server来使用,服务器部署在Nginx中,所以打开Nginx文件夹,你可以看到一个秘钥文件一个crt文件。

  • 上传

将nginx目录下的所有文件上传到云服务器的/usr/local/nginx/cert目录下,cert目录是自己创建的。

  • nginx配置
server {
    listen       443 ssl;
    server_name  _;
    ssl_certificate /usr/local/nginx/cert/1_light-city.club_bundle.crt;
    ssl_certificate_key /usr/local/nginx/cert/2_light-city.club.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;

    location / {
        root   /usr/local/nginx/html/blog;
        index  index.html index.htm;
    }

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

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

可以直接使用我的配置,把上述的路径文件改了就行。

最后看到域名有个锁头,这下http访问便可以直接跳转到https访问了,哈哈~

5.nginx优化

在静态blog中,Nginx可以做图片压缩优化,那么配置如下,开启gzip。

下面是与server同层次,在http{}里面。

gzip  on;
gzip_min_length  1k;
gzip_buffers     4 16k;
gzip_http_version 1.1;
gzip_comp_level 9;
gzip_types       text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php application/javascript application/json;
gzip_disable "MSIE [1-6]\.";
gzip_vary on;
文章分享自微信公众号:
光城

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

作者:lightcity
原始发表时间:2020-02-12
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • 装饰Hexo博客以及部署个人站点

    我的博客最开始采用的是Hexo+hexo-theme-next搭建的,使用GitHub Pages托管并进行自动化部署,写文发布的流程非常简单方便,云端写作发布...

    甜点cc
  • Hexo + Gitee安装部署(打造你的个人博客)

    Linux 安装 Node.js Linux 安装 git Linux 安装Hexo

    鱼找水需要时间
  • Hexo搭建个人博客(三)—— Hexo博客的美化

    通过前两节的学习,我们已经搭建好自己的博客,就像盖房子一样要对内部进行装修,也就是对博客进行美化。 ---- 安装Hexo博客主题 Hexo博客可以安装不同的...

    木制robot
  • hexo+github 搭建个人博客及美化

    官方文档 是我们的第一手资料,也是最好的。 安装 Hexo 相当简单。然而在安装前,您必须检查电脑中是否已安装下列应用程序:

    Cell
  • hexo个人博客网站服务制作成镜像部署

    本文基于制作-Nginx-1-21-6-免安装包文章的基础上,在腾讯云云服务器(CentOS系统)上基于镜像文件Dockerfile制作 hexo个人博客网站服...

    lqmeta
  • Hexo博客的安装部署及多电脑同步

    Hexo安装教程很多,我这里尽可能的讲的细一些,把容易踩坑的地方以及后期多电脑同步所遇到的问题列出来,以便给自己及大家参考。本文主要讲解安装部署后源文件同步问题...

    Techeek
  • Hexo + Git 搭建免费的个人博客

    个人博客日益流行,大家都开始搭建自己的博客,记录成长中学习中的点点滴滴,最近觉得自己也需要有一个平台整理自己的所学所想,于是用了将近3天的时间 (实际上一天就能...

    零式的天空
  • Webify实战:快速、低成本部署个人Hexo静态博客

    Hexo是一款简洁且高效的博客框架,我一般称呼为Hexo博客引擎。使用Hexo,可以快速根据自己本地的博客配置和文章内容自动创建为纯静态的博客网站。对比Word...

    Mintimate
  • 使用 Vultr 搭建个人的 Hexo 博客

    可以在各大域名商上去申请域名,我是在 godaddy 上申请,这里需要注意的事,域名后期续费是越来越贵的,

    Bug开发工程师
  • hexo 搭建简约的个人博客并部署到云服务器

    我使用的是 ubuntu 系统,使用的是阿里云的服务器,域名是已经备案的 Nim 中文社区 官网的子域名。

    用户2870857
  • 使用Hexo搭建个人博客的终极资料

    Hexo 是一个基于 NodeJs 博客框架,可以快速的帮我们搭建一个博客系统,Hexo使用的是Markdown(下文简称MD)解析文章的,在几秒内即可利用靓丽...

    Java中文社群-磊哥
  • 使用Hexo搭建个人博客的终极资料

    Hexo 是一个基于 NodeJs 博客框架,可以快速的帮我们搭建一个博客系统,Hexo使用的是Markdown(下文简称MD)解析文章的,在几秒内即可利用靓丽...

    Java中文社群-磊哥
  • Linux下使用 github+hexo 搭建个人博客02-hexo部署到Github Pages

    之前的这篇文章《Linux下使用 github+hexo 搭建个人博客01-hexo搭建》,相信大家都知道怎么搭建 hexo ,怎么切换主题,并且完成了一篇博文...

    踏歌行
  • 基于Github&Hexo的个人博客搭建过程

    在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识点,期间也会分享一些好玩的项目。现在就让我们一起进入 Web 前端学习的冒险之旅吧!

    Daotin
  • 使用HEXO搭建个人博客遇到的几个问题

    卡少
  • 使用TravisCI做个人博客的自动构建

    今天又有朋友问我,这个博客是怎么搭建的。在回答后,顺便重新申视了下博客的构建部署方式,发现还是有一些改进空间的,刚好今天有点时间,就把它优化一下。

    jeremyxu
  • 【玩转Lighthouse】Docker与Hexo博客的部署实战

    之所以选用轻量应用服务器,是因为相比起云服务器CVM,轻量应用服务器更加精简便捷易用,创建轻量服务器时更有流行的开源软件打包镜像,实现一键完成应用的构建部署。对...

    用户1542270
  • 在CloudFlare workers部署你的Hexo静态博客

    Wrangler 的项目地址:github.com/cloudflare/wrangler 可按照官方教程,使用 npm 安装 Wrangler

    骤雨重山

扫码关注腾讯云开发者

领取腾讯云代金券