一文带你学会如何部署个人博客到云服务器,并进行域名备案与解析!

哈喽,大家好呀!这里是码农后端。之前我给大家介绍了如何快速注册一个自己的域名,并创建一台自己的阿里云ECS云服务器。本篇将介绍如何将个人博客部署到云服务器,并进行域名备案与解析。

1、域名备案

注册了域名并购买了云服务器之后,就可以申请备案了。

备案地址:https://beian.aliyun.com/

692651ee8d104117127e2aec1bc258ba.png

根据国家法律规定,如果服务器在中国内地(大陆),必须完成ICP备案才可对外提供服务;如果服务器在中国香港、中国澳门、中国台湾及其他国家和地区,则不需要进行工信部ICP备案,仅需要完成公安联网备案。

当使用阿里云中国大陆境内节点的服务器时,可以直接在阿里云备案管理系统中提交ICP备案申请。

备案流程如下:

77b606b8ef411c307ed4e8033babb47b.jpeg

ICP备案申请审核通过后,管局(工信部)会给我们一个ICP备案号,我们需要将备案号在网站底部标明。网站在工信部备案成功后,还需要在网站开通之日起30日内登录全国公安机关互联网站安全管理服务平台提交公安联网备案申请。

按照《非经营性互联网信息服务备案管理办法》(原信息产业部令第33号令),互联网信息服务提供者应当在网站开通时,在网站首页底部中间位置放置备案号,并按要求链接至信息产业部备案管理系统网址https://beian.miit.gov.cn,供公众查询核对。

2、配置安全组(重点)

这步针对的是在创建和购买ECS服务器时,安全组设置那里没有勾选开通IPv4的80端口的情况,如果勾选了,这一步可以忽略。

b9c3c3b1d0de3a7b766c3c922790c082.png

原因:由于要通过80端口访问nginx服务,而阿里云默认是禁止80端口访问权限的,所以我们要为实例手动添加安全组,让阿里云给相应的端口和IP放行。

注:nginx服务的默认端口为80,若不进行手动配置,将无法通过“公网IP+端口”的方式访问我们的ECS服务器。

配置步骤如下:

1)点击阿里云首页右上方头像旁边的控制台,进入概览页面,点击云服务器ECS,进入云服务器ECS的控制台。

d2e2108a5b9d0567fdafa57037863756.png

2)点击左侧菜单中的“安全组”可查看安全组列表,点击“创建安全组”按钮,创建一个新的安全组。

67f18fed20084b004600b5b7c92c8f44.png

3) 为新建的安全组添加安全组规则,在入方向解除端口和IP限制,添加好后点击安全组进行查看,如下。

b259bd86a7d9944b8d3e339a772b4a56.png

4)最后再为我们的实例添加该安全组即可,至此,安全组配置完成。

3、博客上云

博客上云,即将个人博客部署到阿里云服务器上。

3.1 安装nginx

这里我们直接选择官方提供的远程连接工具,来操作我们的云服务器,完成相关的部署工作。

8785c43c2054e5d1ce197e3b699ae242.png

使用密码认证的方式登录

e4939469ed41e1258f77971a5e90ae0a.png

登录进去后,在终端执行如下步骤命令:

1)安装nginx依赖环境,安装期间如有提示,一律选yes。

yum install gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel

7b1b0facc902c2b19ed1a29b15ebb003.jpeg

注意是一行一行执行,直接无脑复制黏贴敲回车就ok了。

2)下载nginx安装包。

wget -c https://nginx.org/download/nginx-1.10.1.tar.gz

3)将安装包解压到/usr/local目录下。

tar -xvf nginx-1.10.1.tar.gz -C /usr/local

4)进入/usr/local目录,确认nginx解压到该目录下。

cd /usr/local
ls

5ff6382ddab3f0b88778941a263cc6a8.jpeg

5)进入nginx-1.10.1目录,会发现该目录下有一个configure文件,执行该配置文件。

cd nginx-1.10.1/
ls
./configure

22933fda4d4d89ad6144f7e5dde90955.jpeg

6)编译并安装nginx。

make
make install

7)查找nginx安装目录。

whereis nginx

nginx: /usr/local/nginx

8)进入安装目录。

cd /usr/local/nginx
ls

9)进入/usr/local/nginx/sbin目录,启动nginx。

cd sbin
./nginx

没有任何报错消息就说明启动成功。通过“公网IP+端口”的方式进行访问,成功访问到如下的nginx欢迎页面。

注:可以使用./nginx -s stop命令停止服务

89da3789caecc2ba2497fb66ae07da9f.png

3.2 配置nginx服务器路由

1)首先为hexo创建一个部署目录 /home/www/hexo。

mkdir -p /home/www/hexo

2)进入/usr/local/nginx/conf目录,打开该文件夹下的nginx.conf配置文件。

cd /usr/local/nginx/conf
ls
vim nginx.conf

进入后按 i键由命令模式切换到编辑模式,使用上下光标移动定位。将其中的部署根目录(root)修改为 /home/www/hexo;将域名(server_name)修改为 zhengyquan.cn,并查看监听端口(listen)的系统默认值是否为80(不用修改)。

如果暂时没有域名,就先填阿里云实例的公网ip,后面有域名再改回来;

ff6737e953634abac2af37cd91e05f26.png

上述修改完成后,按Esc由编辑模式切换到命令模式,再输入:wq命令保存并退出编辑器。

3.3 安装node.js

1)返回家目录,安装node.js。

cd ~
curl -sL https://rpm.nodesource.com/setup_10.x | bash -
yum install -y nodejs

2)查看安装结果,打印版本号即为安装成功。

node -v
npm -v

3.4 安装Git

1)使用yum命令安装Git,安装过程中如出现提示一律选yes。

yum install git

2)安装成功后,查看版本号。

git --version

3.5 创建git用户

为了实现博客的自动部署,我们后面要使用公钥免密登录服务器。为了安全起见,最好不要使用root用户免密登录。因此,我们要创建一个新的git用户,用于远程公钥免密登录服务器。

1)创建git用户。

adduser git

2)修改git用户的权限。

chmod 740 /etc/sudoers

3)打开文件。

vim /etc/sudoers

进入后按 i键由命令模式切换到编辑模式。找到 root ALL=(ALL) ALL,在下面添加一行 git ALL=(ALL) ALL。修改完成后,先按Esc,由编辑模式切换到命令模式,再输入:wq命令保存并退出编辑器。

1fe60516f40eb2a710733c9be4cac91e.png

4)保存退出后改回权限。

chmod 400 /etc/sudoers

5)设置git用户的密码。

sudo passwd git

设置密码,需要输两次,第二次是确认;为了安全,密码输入过程中不会显示。设置好后就可以使用git用户远程登录阿里云服务器了。

3.6 配置ssh免密公钥登录

使用git用户免密公钥登录阿里云服务器的原理:

在本地计算机生成一个公钥文件和一个秘钥文件(类似于一个钥匙配一把锁),然后使用FTP工具将公钥文件上传到阿里云服务器,并公钥安装到authorized_keys列表中去(即:将公钥文件的内容拷贝到authorized_keys文件中去)。这样本地计算机便可以通过ssh方式免密连接我们的阿里云服务器了。

具体操作步骤如下:

1)在服务器端将当前登录用户切换到git用户,然后在~目录(根目录)下创建.ssh文件夹,用来存放公钥。

#su git
$ cd ~
$ mkdir .ssh

注:# 表示 root 用户(超级管理员),$ 表示非 root 用户。

2)在本地计算机桌面右键打开GitBash,在本地生成公钥/私钥对。出现提示就按回车键,完成后会在C:\Users\ASUS\.ssh创建两个文件,分别为:id_rsa(私钥)和id_rsa.pub(公钥)。

$ cd ~
$ cd .ssh
$ ssh-keygen

839be7fb36e1f8dda9e4f8f5b187dacb.png

3)在本地计算机上给私钥设置权限。

$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/id_rsa

4)下载并安装FTP工具,可以用的是阿里云官方提供的FileZilla。安装过程非常简单,直接无脑安装即可。官方文档:https://help.aliyun.com/zh/cloud-web-hosting/user-guide/use-filezilla-management-files

FileZilla是一款方便高效的FTP客户端工具。通过FileZilla连接云虚拟主机后,可以对云虚拟主机上的网站文件进行上传、下载、新建和删除等操作。

5)打开FileZilla,使用git用户通过22端口远程连接到阿里云服务器,将客服端生成的公钥上传到服务器的~/.ssh目录下,如下图

e9c89b7c9708eae47a84613695fdf29a.png

6)上传完成后返回服务器端,继续以git用户的身份进入服务器~/.ssh目录,新建一个authorized_keys文件,并将id_rsa.pub文件中公钥的内容拷贝到该文件中。使用命令行操作命令如下

注:该步骤既可以用命令行操作,也可使用FTP工具操作。

$ cd ~/.ssh
$ cp id_rsa.pub authorized_keys
$ cat id_rsa.pub >> ~/.ssh/authorized_keys

7f2e2b9ccc3d70ad8a6aa890b787e879.jpeg

7)在服务器上设置文件权限:

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

现在,当使用ssh远程登录服务器时,将不会提示您输入密码(除非您在创建密钥对时输入了密码)。

8)在本地计算机上使用ssh方式连接我们的云服务器。

$ ssh -v git@xxx.xxx.xxx.xxx(阿里云公网IP)

$ ssh git@xxx.xxx.xxx.xxx(阿里云公网IP)

连接成功如下

2a672baaf080ce70736bdfa1e9873aa2.png

3.7 配置Git仓库

1)在服务器上使用git用户创建一个Git仓库,并在该仓库中新建一个post-receive钩子文件。

$ cd ~
$ git init --bare hexo.git
$ vi ~/hexo.git/hooks/post-receive

2)进入后按 i键由命令模式切换到编辑模式。输入:

git --work-tree=/home/www/hexo --git-dir=/home/git/hexo.git checkout -f

3aeadae2cfdb614b7b77defe25c36eba.png

目的:让钩子文件删除/home/www/hexo目录下原有的文件,然后从blog.git仓库 clone 新的博客静态文件到/home/www/hexo目录下。

设置好后,先按Esc由编辑模式切换到命令模式,再输入:wq命令保存并退出编辑器。

3)授予钩子文件可执行权限。

$ chmod +x ~/hexo.git/hooks/post-receive
$ cd ~
$ sudo chmod -R 777 /home/www/hexo

4)前往阿里云云服务器ECS控制台,重启ECS服务器实例,至此完成了所有关于服务器端的配置。

4、其他配置

4.1 客服端hexo配置

1)在个人本地的博客目录下,找到_config.yml配置文件,对deploy参数进行修改,如下图。

1219d1b27ff2c8ac62637f3d43acba4a.png

2) 在本地计算机配置Git全局变量。输入以下命令:

$ git config --global user.email "2750932784@qq.com"
$ git config --global user.name "zhengyquan"

3)使用git将上述修改推送到我们的云服务器上,一键三连,命令如下

hexo clean
hexo hexo generate
hexo deploy

如下即代表推送成功。

b26660d1605986868a6d51b9782aa8ba.png

之后,便可以使用公网IP+端口访问博客主页了,如下图。

777155037b7334263cdde158db5957d8.jpeg

4.2 域名绑定

等备案通过后,将域名与ECS服务器实例的公网IP进行绑定。进入阿里云控制台首页,在资源概览页面点击域名,进入域名控制台,点击左侧域名列表,选择域名进行解析,配置域名解析如下。

d361b2d03a90fec91f314a1cd1443df1.png

注:如果使用www不行,就试试@。我自己就是使用www前缀解析后访问域名出现问题,后面改为@就OK了。

域名解析后,需要耐心等待一段时间。

域名解析后并不会立即生效,需要一定的解析时间,一般来说生效时间为24小时。具体还要看各地区的服务器运营时间和工作效率,一般都在6-24小时以内。可以通过ping域名来检测域名是否已经生效。如果域名超过24小时还未生效,就说明解析出问题了。

好了,以上就是今天这篇文章的全部内容了。如果你想及时看到我的文章,只需做这几个动作:点星标、点在看(包括赞)、评论、分享,我就会经常出现在您的常读列表,后面更新都会提醒。感谢大家的关注和支持,祝大家生活美满,学业有成,事业蒸蒸日上!

往期精彩文章推荐(点击下方蓝字即可阅读!)

往期推荐

小满小满,幸福满满!

参营有奖|30分钟快速上手ES Serverless!鹅厂大牛带你玩转日志分析

SQL Server数据库常见的迁移方式有哪些?2分钟带你快速了解!

SQL Prompt:高效开发的SQL Server数据库必备插件!


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/332604.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

识别鼠标绘制的数学公式网站

https://webdemo.myscript.com/views/math/index.html x n m x n x m x^{nm}x^{n}\times x^{m} xnmxnxm 使用"$$"进行包裹

unity开发Hololens,使用unity自带的UGUI

hololens 使用UGUI 新建画布,添加组件, 画布模式改成WorldSpace,这样在能在3D场景里 随意的移动位置, 添加NearIteractionTouchaBleUnityUI、CanvasUtility组件 EaventsToReceive改成Pointer, 这样,UGUI的…

Golang | Leetcode Golang题解之第113题路径总和II

题目: 题解: type pair struct {node *TreeNodeleft int }func pathSum(root *TreeNode, targetSum int) (ans [][]int) {if root nil {return}parent : map[*TreeNode]*TreeNode{}getPath : func(node *TreeNode) (path []int) {for ; node ! nil; no…

2024年中国电机工程学会杯数学建模思路 - 案例_ ID3-决策树分类算法

# 前言 2024电工杯(中国电机工程学会杯)数学建模思路解析 最新思路更新(看最新发布的文章即可): https://blog.csdn.net/dc_sinor?typebloghttps://blog.csdn.net/dc_sinor/article/details/128779911) 算法介绍 FP-Tree算法全称是FrequentPattern Tree算法,就…

骑行 - 新区永旺出发的环太湖路线

环过好几次太湖,但对路线都没太在意,都是跟着别人走的。这次自己制定一个路书,方便下次自己一个人环太湖时使用。 开始是使用高德地图做路书,只能在PC上做。我用的是网页版,每次选点太麻烦了。要输入地址搜索&#xff…

Nginx代理配置(专业版)

写在前面提醒:使用代理,如果可以,请尽量支持双协议,http、https均要支持哈。 注意:监控系统只是运行代码,是否支持https,需要运维同学在你们的服务器上配置https证书,配置好证书&…

探索集合python(Set)的神秘面纱:它与字典有何不同?

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、集合(Set)与字典(Dictionary)的初识 1. …

Mysql函数

字符串函数 concat(s1,s2…sn)把传入的参数连接成一个字符串 注意:任何字符串与NULL进行连接的结果都将是NULL insert(str,x,y,instr)函数:将字符串str从第x位置开始,y个字符长度的字串替换为instr lower…

从“反超”到“引领”,中国卫浴品牌凭何遥遥领先?

作者 | 曾响铃 文 | 响铃说 前不久,第28届中国国际厨房、卫浴设施展览会(以下简称“中国国际厨卫展”)在上海如期举行,就结果来说真的让人大开眼界。 冲水声比蚊子声更小的马桶、能化身无感交互平台的魔镜柜、可以语音交互的淋浴器,这些“…

类与对象(上)

目录 ​编辑 一、面向过程和面向对象初步认识 二、类的引入 三、类的定义 四、类的访问限定符及封装 4.1 访问限定符 【面试题】 4.2 封装 【面试题】 五、类的作用域 六、类的实例化 七、类对象模型 7.1 如何计算类对象的大小 7.2 类对象的存储方式猜测 7.3 结…

Yolov9调用COCOAPI生成APs,APm,APl

最近在做小目标检测的东西,因为后期毕业论文需要,所以开始使用Yolov9模型,运行val.py的时候不会自己产生小目标的AP指标,所以研究了一下,步骤非常简单: 第一步: 在数据集中生成json格式的Annota…

ROS参数服务器

一、介绍 参数服务器是用于存储和检索参数的分布式多机器人配置系统,它允许节点动态地获取参数值。 在ROS中,参数服务器是一种用于存储和检索参数的分布式多机器人配置系统。它允许节点动态地获取参数值,并提供了一种方便的方式来管理和共享配…

开源大模型与闭源大模型

概述 开源大模型和闭源大模型是两种常见的大模型类型,它们在以下方面存在差异: 开放性: 开源大模型:代码和模型结构是公开可用的,任何人都可以访问、修改和使用。闭源大模型:模型的代码和结构是私有的&…

Thymeleaf 搭建家居网首页

文章目录 1.引入Thymeleaf sunliving-commodity模块1.在resources目录下引入Thymeleaf 所需资源2.pom.xml引入Thymeleaf依赖3.application.yml 关闭缓存,使页面实时刷新4.在application-prod.yml开启缓存5.编写com/sun/sunliving/commodity/web/IndexController.jav…

文心智能体大赛:百度文心智能体平台初体验

写在前面 博文内容涉及:文心智能体大赛:文心智能体初体验理解不足小伙伴帮忙指正 😃,生活加油 我徒然忘记了热闹,却来不及悟透真正的清冷(《四喜忧国》) 前言 徒然忘记了热闹,却来不及悟透真正的清冷(《四喜忧国》),在…

LiveGBS流媒体平台GB/T28181用户手册-版本信息:查看机器码、切换查看流媒体服务

LiveGBS流媒体平台GB/T28181用户手册--版本信息:查看机器码、切换查看流媒体服务 1、版本信息1.1、查看机器码1.2、多个流媒体服务1.3、提交激活 2、搭建GB28181视频直播平台 1、版本信息 版本信息页面,可以查看到信令服务 流媒体服务相关信息,包含硬件…

从XPS迁移到IP Integrator

从XPS迁移到IP Integrator 概述 AMD Vivado™设计套件IP集成器可让您将包含AMD的设计缝合在一起 IP或您的自定义IP在相对较短的时间内,在GUI环境中工作。 就像在Xilinx Platform Studio中一样,您可以快速创建嵌入式处理器设计(使用&#xff0…

[C++]debug介绍+debug时如何查看指针指向内存处的值

一、简介 预备工具和知识:使用使用VSCode使用Debug。 本文简介:本文将简要介绍debug中Continue,Step Over,Step Into和Restart的功能。并介绍如何在debug时查看动态内存地址(指针)的值; 二、D…

基于信号分解方法的机械故障诊断方法存在的问题

一方面,由于结构共振、测试噪声的干扰,为了确保分解精度,需要给定准确的参数初值(例如,瞬时频率)。研究人员通常认为零部件特征频率与通过传动比和驱动转速计算的理论值基本吻合,并基于理论值设置参数初值。事实上&…

upload-labs 21关解析

目录 一、代码审计 二、实践 三、总结 一、代码审计 $is_upload false; $msg null; if(!empty($_FILES[upload_file])){//检查MIME$allow_type array(image/jpeg,image/png,image/gif);if(!in_array($_FILES[upload_file][type],$allow_type)){$msg "禁止上传该类型…