百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Hexo+VPS+Freenom+Cloudflare部署

nanshan 2024-11-23 20:09 10 浏览 0 评论

折腾 Hexo 博客也是有一段时间了,之前试过将博客托管到 GiteePages 和 CodingPages 自己感觉上来说都不是很完美。
所以索性决定自己打一个完全自己可控个人博客。
经过一番斟酌之后,决定使用 Hexo + VPS + Freenon + Cloudflare 来搭建。
在此也分享一下折腾的过程,希望对你有帮助。

在看这篇文章之前可以先看下之前的文章(手把手教你用Hexo+GiteePages搭个免费的个人博客

写在前面

Hexo 的具体使用这里就不展开再说,比较简单,官方的文档也是比较全,可以直接参考官方文档使用。

这里具体只是记录一下 VPS、Freenom、Cloudflare 的折腾过程。

大概分为一下几点:

  1. 花点小钱买个 VPS
  2. VPS 环境搭建
  3. 使用 Freenom 白嫖一个域名
  4. 使用 Cloudflare 解析域名到 VPS
  5. 开启强制 Https 访问
  6. 实现 Hexo 在 VPS 上的自动部署

花点小钱买个 VPS

VPS 即 Virtual Private Server 虚拟专用服务器技术,将一台服务器分割成多个虚拟专享服务器的优质服务。

至于为什么选择 VPS,看了下国内的各个云服务商,服务器费用都比较贵,而本人经济也有限,国内的服务器也是好多需要域名备案,比较麻烦,所以这里只好选择买个国外的 VPS 来用。

VPS 我选择的是 Vultr(https://www.vultr.com/?ref=8500786-6G

首先是价格不贵,使用的又是 SSD,并且有很多节点可选。支付方式也是支持支付宝和微信,最最主要的是之前注册新用户直接送100刀。

这里推荐下 Vultr 的一个优惠网站,上面不定期会有优惠信息分享,和一些教程分享。(https://www.vultryhw.cn/

注册一个 vultr 账号

点我注册一个 Vultr 账号

跳转到页面,在页面的这里输入邮箱和密码,点击 Create account 按钮创建一个账号(ps: 邮箱好像不支持 QQ 邮箱)。

创建成功之后,点击左边的 Products ,部署你的 VPS 服务。

如上图所示。

  • Choose Server 这个是选择服务类型,这里选择 Cloud Compute
  • Server Location 这个是 VPS 的节点,这里可以根据自己的喜好选择(我选择的是日本东京的)。
  • Server Type 这个是 VPS 的系统镜像类型,也是按照自己的喜好选择(我选的是 CentOS 8 X64)。
  • Server Size 这个是 VPS 的规格,按照每月多少钱计算,按照自己的喜好和经济选择(我当然选择的是最便宜的 $5 一个月的)。
  • Additional Features 是一些附加的属性,不作说明,根据喜好选择。
  • Startup Script 这个是添加 VPS 启动时执行的脚本文件,可按照个人需要添加。
  • SSH Keys 这个是添加 SSH 登录的密钥信息。
  • Server Hostname & Label 这个是设置 VPS 系统的 Hostname 的,可填可不填。

选择好所有的选项之后,点击 Deploy Now 按钮,然后就开始部署 VPS 服务了,此时只需要耐心等待服务部署完成。

部署完成之后,在 Products 可以看到你已经部署成功的 VPS 服务列表。

在列表进入 VPS 详情可以看到部署好的 VPS 的 IP 还有账号和登录密码(创建好了之后都是 root 账号),使用 IP 和 密码就可以远程登录到 VPS 进行操作了。

因为某些原因,部署之后的 VPS 分配的 IP 可能是访问不了的,这个时候可以重复上面的步骤重新部署 VPS 直到有可以访问的为止,因为 Vultr 是按量付费的,所以不用的 VPS 直接销毁了就不会收费,只有有在运行的 VPS 才会计算费用。

VPS 环境搭建

VPS 已经搭建好了,下一步就是需要搞一个能够运行 Hexo 生成的静态文件的环境,我选择使用 Nginx。

我的 VPS 系统镜像使用的是 CentOS,这里就使用 CentOS 和 Nginx 来举例。

执行命令时使用的都是 root 账户登录执行的,如果你不是使用的 root 账户登录,遇到有些安装时的权限问题,请在命令前加 sudo 来以 root 权限执行命令。

安装 Nginx

CentOS 装 Nginx 还是比较简单,一条命令就可以解决。

yum install nginx

安装完成之后,Nginx 配置文件目录为 /etc/nginx/ , 默认的配置文件是这个目录下的 nginx.conf 文件。之后我们配置都可以直接在这个文件修改,或者是 load 其他自己定义的配置文件,为了方便,我是直接修改的这个文件。

[可选操作] 安装完成之后,可以选择设置 Nginx 随系统启动。

systemctl enable nginx

使用 systemctl 来管理 Nginx 服务之后,以后我们启动,停止,查看状态都可以是用 systemctl 命令来执行。

启动 Nginx:

systemctl start nginx

重启 Nginx:

systemctl restart nginx

停止 Nginx:

systemctl stop nginx

查看 Nginx 运行状态:

systemctl status nginx

配置 Nginx

Nginx 安装完成之后,现在需要做一些简单的配置,打开 /etc/nginx 目录下的 nginx.conf 文件,找到 server 节点,默认的配置如下,我们需要进行一些更改。

server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        root         你放在 VPS 中的 Hexo 静态文件的目录;

        # 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 {
        }
    }

修改 root 属性为我们放在 VPS 上的 Hexo 生成的静态文件的路径,比如说,我的 Hexo 生成的静态文件,存放在 VPS 上的 /usr/share/nginx/web 目录下,那么我们就修改 root 的值为 /usr/share/nginx/web

然后使用 systemctl restart nginx 命令重启一下 Nginx ,在浏览器输入 VPS 的 IP 访问一下可以访问到不。如果访问不了的话,一般都是 VPS 的 80 端口没有开放,可以执行命令开放 80 端口。

// 永久开放 80 端口
firewall-cmd --zone=public --add-port=80/tcp --permanent

// 刷新防火墙规则
firewall-cmd --reload

然后再访问应该就可以访问到了。

使用 Freenom 白嫖一个域名

一个个人博客肯定不能只能使用 IP 来访问,这样让人很难记住,下面就讲一讲如何白嫖一个一年的免费域名。

注册 Freenom 账号

进入到 Freenom 官网,找到 开发人员

点击 开发人员 进入到页面之后,找到页面底部的 今天就获得一个随机的域账户 按钮。

点击按钮即可进入到注册页面。

输入邮箱地址,点击 Verify My Email Address,之后跟着提示填写信息注册就行。需要说下的是,填写地址信息的时候,选择美国的,这样才能申请到免费域名。

申请一个免费域名

注册完成之后,回到首页。

输入你想要的域名,会列出可用的免费域名。

点击 现在获取 即可。

获取到的域名,可以在 services 菜单的 My Domains 中看到。

将域名解析到 VPS 服务器

域名申请好了之后,我们可以通过 Freenom 提供的 DNS 解析服务,将域名解析到 VPS 服务器。

进入域名列表,点击 Manage Domain 按钮,进入页面配置 DNS 解析。

选择 Manage Freenom DNS tab,配置 DNS 解析记录。

最简单的,我们配置一个不带 www 访问的域名,可以如下图配置

配置完了之后,需要到 VPS 的 Nginx 更新下配置,将之前修改的配置文件中的 server_name 改成你的域名。

server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  你的域名(多个域名以空格分开);
        root         /usr/share/nginx/html;

        # 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 {
        }
    }

重启 Nginx,不出意外已经可以使用域名来访问你的博客了。

使用 Cloudflare 解析域名到 VPS

由于 Freenom 自带的 DNS 是国外的,解析速度比较慢,而 Cloudflare 是一个免费提供 DNS 解析和全球 CDN 的服务商,所以将 DNS 解析放到 Cloudflare 上面来做可以提升一点站点的访问速度。

首先到 Cloudflare 官网 注册一个账号。

然后在首页,点击 添加站点 按钮,添加你在 Freenom 上面白嫖的域名。

然后会跳转到方案选择的页面,这里选择免费的方案。

之后,就是添加域名解析记录了,就像在 Freenom 中添加记录一样,将解析记录填上就行了。

填完之后,会提示你去修改 DNS 服务地址

这里给出了两个服务地址,我们需要到 Freenom 中修改,登录到 Freenom ,找到 Management Tools 下的 Nameservers

然后勾选 Use custom nameservers (enter below) ,将 Cloudflare 的那两个服务名填入到 Nameserver 1Nameserver 2,点击 Change Namesers 按钮就完成切换了。

等上一小会儿,你的 DNS 解析服务就切换到 Cloudflare 了。

开启强制 Https 访问

为什么要开启 Https 访问,就就不用多说了吧,为了安全,现在的浏览器访问非https协议的网站的时候都会提示安全问题,如果别人访问你的博客的时候,浏览器提示该网站存在风险,那就尴尬了是不。

Cloudflare 提供的证书有效期是 15 年,简直是良心。

在 Cloudflare 找到 SSL/TLS,将加密模式选择为严格。

然后 源服务器 tab

点击创建 创建证书 按钮,一路下一步,将最后的源证书和私钥的内容,分别复制下来,源证书的内容保存为 .pem 的文件,私钥内容保存为 .key 的文件,然后上传到你的 VPS (文件的保存路径可自己定义)。

上传到 VPS 之后,再去配置 Nginx,打开 Nginx 的配置文件,加入以下配置:

    server {
        listen       443 ssl http2 default_server;
        listen       [::]:443 ssl http2 default_server;
        server_name  你的域名,多个以空格隔开;
        root         你的博客静态资源路径;

        ssl_certificate "你上传的 .pem 源证书的路径";
        ssl_certificate_key "你上传的 .key 私钥文件路径";
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  10m;
        ssl_ciphers PROFILE=SYSTEM;
        ssl_prefer_server_ciphers on;

        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 {
        }
    }

配置完了之后,重启下 Nginx,使用 Https 协议访问以下,看下是不是能够访问了,如果不行的话,检查下 VPS 的 443 端口是否开放了,如果没有开放的话,执行命令开放下 443 端口:

// 永久开放 443 端口
firewall-cmd --zone=public --add-port=443/tcp --permanent

// 刷新防火墙规则
firewall-cmd --reload

不出意外的话,Https 的配置就算完成了。

这里还有个可选操作就是,强制限制,所有的访问都必须是来自 Cloudflare 代理之后的请求,避免客户端绕过 Cloudflare 来直接请求服务器。

开不开看个人,这里还是说下怎么配置的。

需要先打开一个开关,在 SSL/TLS 下的 源服务器 tab 页下,找到 经过身份验证的源服务器拉取 这个开关,将其打开。

然后下载证书,点我下载证书。

将下载的证书保存为 .crt 文件,然后上传到 VPS 服务器。

打开 Nginx 配置文件,在刚才配置的中加入两个配置。

    server {
        listen       443 ssl http2 default_server;
        listen       [::]:443 ssl http2 default_server;
        server_name  你的域名,多个以空格隔开;
        root         你的博客静态资源路径;

        ssl_certificate "你上传的 .pem 源证书的路径";
        ssl_certificate_key "你上传的 .key 私钥文件路径";
        ssl_client_certificate "你刚才上传的 .crt 文件路径";
        ssl_verify_client on;
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  10m;
        ssl_ciphers PROFILE=SYSTEM;
        ssl_prefer_server_ciphers on;

	    # 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 {
        }
    }

然后重启 Nginx 就好了。

嗯。强制开启 Https 就算完成了。

实现 Hexo 在 VPS 上的自动部署

将 Hexo 生成的文件部署到 VPS 不比托管在 Coding ,每次提交了之后可以自动的更新。所以这里还需要做一个操作就是,我们每次有新的提交之后,在 VPS 上面的文件也要同步的更新。

这个提交文件自动更新就需要用到 Git Hook 来监听到我们的文件更新之后做一些操作。

登录到 VPS,自己定义一个目录,执行命令:

// 创建一个文件加,名字自己定
mkdir web.git
cd web.git
// git 初始化一个裸库
git init --bare

然后创建一个 Git Hook 文件。执行命令:

// 进入到仓库目录下的 hook 目录
cd web.git/hook
// 创建一个 hook 脚本,文件有更新的时候执行
vim post-receive

post-receive 文件中加入以下内容:

#!/bin/bash
git --work-tree=你的 Nginx 静态文件目录 --git-dir=你创建的 git 裸库的位置 checkout -f

配置完了这些之后,修改一下 Hexo 的配置文件,找到 Hexo 配置文件中的 deploy 属性,做以下配置。

deploy:
  type: git
  repo: VPS 用户名@VPS IP:你在 VPS 中创建的裸库的目录
  branch: master

emmm,至此,自动部署也配置完成了,以后只要使用 hexo d 的命令,就能自动部署更新了。

尾巴

至此,使用 Hexo + VPS + Freenom + Cloudflare 的部署就算是完成了,可能写得不是很好,有些细节不是很清楚,各位可以留言一起讨论一下。如果觉得有用的话,来个关注加点赞吧。

相关推荐

教你一个解决手机卡顿的方法(10秒解决手机卡顿问题)

我们的手机天天刷头条,看视频,用了一阶段时间以后,就时不时的发生卡顿现象。昨天我的手机就发现了这个问题。友友们,你们遇到过这样的问题吗?你们都是怎样解决的?我看了一眼我的粉丝情况,头条君给我分析的很精...

手机视频缓存清理,3步彻底清空,告别卡顿

在我们使用手机观看视频的过程中,经常会产生大量的缓存垃圾,这些垃圾文件不仅占用了手机的存储空间,还可能导致手机卡顿和运行缓慢。然而,你知道如何彻底清空手机的视频缓存,让手机恢复流畅的使用体验吗?在本文...

关手机这个开关,轻松提升流畅度!

关闭手机这个开关,跟新买的一样流畅。手机不要再清理垃圾了,只要关闭这个开关,手机就会和新买的差不多,丝滑流畅不卡顿。其实抖音里就隐藏着一个小开关,每天刷过的视频都会保存在手机里,如果一直不清理,手机就...

如何清理今日头条和西瓜视频的内存,让手机流畅不卡顿?

对于老年人而言,今日头条和西瓜视频能带来丰富的资讯与娱乐。然而,随着使用时间的增加,这些应用会占用大量手机内存,致使手机运行卡顿。那该如何解决呢?接下来,我将用最简单易懂的方式教老年人清理今日头条和西...

视频在线如何转换格式?好用不卡顿的三种转换办法

转换视频格式目前来说已经是很熟练的操作了,但是还有些用户可能还是不知道,小编今天就特意给大家带来一些小众才知道的转换教程,让新手也能快速的上手去转换视频格式,以后获取到视频就不怕内容丢失了,视频的格式...

如何把视频慢放处理?这几个慢放方法记得收藏

如何把视频慢放处理?如果你想让视频慢放,可能是因为你想放慢一些精彩的瞬间,或者你想制作一个慢动作视频。在这篇文章中,我们将介绍一些调速方法,这些方法可以有效地调整视频速度,一起来学习一下吧。方法一:使...

如何清理看过的视频,释放垃圾,让手机更流畅?

现在谁的手机上没几个短视频平台,无聊时就会刷别人的视频。可您知道吗?我们看过的内容都会被自动保存在手机里,而且很耗内存。如果长时间不释放,手机就会出现各种问题,其中最突出的就是反应慢。相信很多老年人的...

手机掉帧是怎么回事?刷视频的时候经常掉帧卡顿

手机掉帧是指在运行应用或视频时,画面出现卡顿、不流畅的现象,通常由硬件性能不足、软件优化不佳、内存占用过高、网络问题或设备过热等因素引起。尤其是在刷视频时,掉帧问题可能更为明显,以下是具体原因及解决方...

拍视频画面卡顿不流畅,原来是相机设置错误 #短视频拍摄

拍摄视频时,应该选择哪种快门速度?许多新手朋友可能会认为,快门速度越高,画面就越清晰,实则不然。因为拍摄视频时,需要考虑一个问题,即动态模糊。例如,如果设置为24帧/秒,那么每秒钟会拍摄24张图片。如...

手机卡顿最大原因#视频太卡怎么变流畅

抖音这几个开关是手机卡顿的最大原因。你是不是也会经常遇到刷视频的时候,打开一个视频之后老半天还在那转着圈圈,总觉得手机没有之前流畅了。这就说明你的手机占用的内存太多了,导致手机卡顿,使用不流畅。使用手...

为啥你家的玩游戏和刷视频经常性的会卡,那是你不懂这些小妙招

本内容来源于@什么值得买APP,观点仅代表作者本人|作者:暴走的黄小猪说到网速有不少的值友都有一个共同点,那就是“卡”,那是你根本没体验过啥叫真正的网速啊,全屋零四条网络报表也花不了几个钱你们的方法...

电脑看视频卡顿有什么解决方法?(电脑看视频画面卡顿是什么原因)

电脑看视频卡顿的原因可能多种多样,包括硬件性能不足、网络问题、软件设置不当等。以下是一些常见的解决方法,帮助你改善视频播放的流畅度:一、硬件方面1.检查硬件性能:如果电脑配置较低,尤其是CPU、内存或...

手机Wi-Fi满格但视频卡顿,你需要这样解决

累了一天的打工人回家拿出手机准备玩玩游戏,看看电影时,发现网络异常卡顿,但手机又显示Wi-Fi信号满格,当咱们遇到此类问题时,这些动作能让网络恢复正常,方法如下。一、重启路由器和光猫很多家庭在安装好路...

视频越刷越卡?原来是路由器开启了这个功能,关闭方法来了

应该很多小伙伴都有过类似的经历,就是在家里长时间刷视频或者看剧的时候,网速好像会越来越慢,视频总是要加载。手机本身可能是一部分原因,但路由器也会影响,你知道吗?当我们在刷视频的,路由器会悄悄地开启大量...

一招解决视频卡顿的问题,改变发布渠道后,结果香了

最近一段时间拍了很多美景视频,编辑发布到头条后,有时一直显示在缓冲,播放不了,有时打开断断续续的,老是卡顿。导致的后果是:要么展现量很低,要么阅读量寥寥无几,这让我非常苦恼。所以再发布作品时,我只好文...

取消回复欢迎 发表评论: