如何将博客部署到云服务器和个人域名上

由于github部署的博客连接较慢,因此在购买腾讯云服务器之后将博客内容部署到腾讯云上,特此记录一下过程。

yum install nodejs
yum install git

创建git用户和仓库

adduser git
chmod 740 /etc/sudoers
vim /etc/sudoers
=== root    ALL=(ALL)     ALL
+++ git     ALL=(ALL)     ALL
chmod 400 /etc/sudoers

sudo passwd git
su git
mkdir ~/.ssh
vim ~/.ssh/authorized_keys
#然后将电脑中执行 C:\Users\28236\.ssh\id_rsa.pub ,将公钥复制粘贴到authorized_keys
linux: cat ~/.ssh/id_rsa.pub
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
ssh -v git@SERVER

# su git  切换用户进行后续操作
cd /home/git/
mkdir -p projects/blog # 把项目目录建立起来
mkdir repos && cd repos
git init --bare blog.git # 创建仓库
cd blog.git/hooks
vim post-receive # 创建一个钩子
+++ #!/bin/sh
+++ git --work-tree=/home/git/projects/blog --git-dir=/home/git/repos/blog.git checkout -f
chmod +x post-receive # 添加可执行权限
exit # 返回到root用户
chown -R git:git /home/git/repos/blog.git # 给git用户添加权限

使用nginx反向代理

安装nginx及使用:

yum install nginx
nginx -s reload  #重载配置文件
nginx -s stop
sudo service nginx restart
systemctl enable nginx.service  #设置开机自启动

配置nginx,修改/etc/nginx/nginx.conf:

user root;         //用户
...
server {
        listen       80;
        # listen       [::]:80 default_server;
        server_name  www.jianliang-shen.cn jianliang-shen.cn;   //个人域名
        root         /home/git/projects/blog;                  //仓库位置

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
        }

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

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

保存后重新部署。在公网中尝试连接,一般来说是失败。

开放云服务器端口

因为腾讯云服务器并没有开放端口无法外部ping通,因此需要在“安全规则中”开放端口,如下所示:

设置Hexo仓库

deploy:
    type: git
    repo: git@server_ip:/home/git/repos/blog.git    
    branch: master

提交更新:

hexo d -g

配置域名解析

例如aliyun的域名解析设置如下:

域名备案

各类云服务器在绑定域名时都需要备案,否则无法使用,例如我用的阿里云域名和腾讯云服务器,就需要在腾讯云中登记公网ip绑定的域名。