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

哈喽,大家好呀!这里是码农后端。之前我给大家介绍了如何快速注册一个自己的域名,并创建一台自己的阿里云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.mzph.cn/bicheng/16904.shtml

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

相关文章

探索自动化办公的新境界:批量操作与智能管理

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、自动化办公的必要性与价值 二、基础操作与自动化脚本 三、Python在自动化办公中的应用…

Meme币总市值突破630亿美元 以太坊ETF获批意味着代币化资产“完全安全”

近日,数字货币市场再次掀起轩然大波。一方面,Meme币总市值突破了630亿美元,令人瞠目结舌;另一方面,以太坊ETF的获批也引发了市场的广泛关注,被视为代币化资产的“完全安全”标志。 Meme币总市值飙升 Meme币…

深圳比创达电子EMC|EMC电磁兼容性行业:挑战与机遇并存

随着电子技术的迅猛发展,电磁兼容性(EMC)已成为各行各业不可忽视的关键问题。EMC是指设备或系统在其电磁环境中能正常工作且不对该环境中任何事物构成不能承受的电磁骚扰的能力。 一、EMC电磁兼容性行业的现状 EMC电磁兼容性行业作为电子技…

[数据集][目标检测]道路井盖下水道井盖开关闭和检测数据集VOC+YOLO格式407张2类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):407 标注数量(xml文件个数):407 标注数量(txt文件个数):407 标注类别…

构建php环境、安装、依赖、nginx配置、ab压力测试命令

目录 php简介 官网php安装包 选择下载稳定版本 (建议使用此版本,文章以此版本为例) 安装php解析环境 准备工作 安装依赖 zlib-devel 和 libxml2-devel包。 安装扩展工具库 安装 libmcrypt 安装 mhash 安装mcrypt 安装php 选项含…

深入理解一下栈

1、栈:数据结构 为什么 main()方法 最先执行,最后结束? 当然是因为 main()方法入栈啦。 2、栈:栈内存,主管程序的运行,生命周期和现成同步; 线程结束,栈内内存也就释放了&#xff0c…

STM32_RCC

1、RCC RCC即Reset and Clock Control,复位和时钟控制。通过stm32f10x结构图可以看出RCC控制着stm32的AHB系统总线,而AHB总线又桥接APB1和APB2,分别通过它们控制不同的片上外设。如果要使用某个片上外设的功能,必须先通过…

Apache Doris 基础(一) -- Getting Started

Apache Doris 开源、实时数据仓库 Apache Doris是一个用于实时分析的现代数据仓库。 它提供大规模闪电般的实时数据分析。 实时获取和存储 在一秒钟内基于推的微批处理和基于拉的流数据获取。实时更新,追加和预聚合的存储引擎闪电般的查询 使用列式存储引擎、MPP架构…

CDGP|数据治理策略揭秘:因企制宜,实现精准管控新高度

随着信息化、数字化的深入推进,数据已经成为企业最重要的资产之一。如何高效、安全地管理和利用数据,成为企业面临的重要课题。数据治理策略的制定与实施,成为解决这一问题的关键所在。本文将探讨如何因企制宜,制定符合企业实际情…

23种设计模式全面总结 | 快速复习(附PDF+MD版本)

本篇文章是对于23种设计模式的一个全面的总结,受限于文章篇幅无法对每个设计模式做到全面的解析,但几乎每个设计模式都提供了案例和类图结构,非常适合快速复习和在学习设计模式之前的全预习把握。 💡文章的 pdf markdown 版本可通…

JSP期末要点复习

一、JSP工作原理 1.客户端请求JSP页面:用户通过浏览器发送一个请求到服务器,请求一个特定的JSP页面。这个请求被服务器上的Web容器(如Apache Tomcat)接收。 2.JSP转换为Servlet:当JSP页面第一次被请求时&#xff0…

JavaSE 字符串String及相关API StringBuilder StringJoiner 底层原理 详解

字符串和相关API java不会字符串即凉一半 学好字符串很重要 API 为应用程序编程接口 获得字符串对象 1.直接赋值 空参构造 string s1“abc”; s1 记录的是串池里的地址 2.用new的方式 string s2new string(); new(在堆内存里开辟空…

数据安全革命:Web3带来的隐私保护创新

随着数字化时代的发展,数据安全和隐私保护问题日益突出。传统的中心化数据存储和管理方式已经无法满足日益增长的数据安全需求,而Web3作为下一代互联网的新兴力量,正以其去中心化、加密安全的特性,引领着一场数据安全革命。本文将…

pyinstaller打包提示“文件所在的卷已被外部更改,因此打开的文件不再有效。”

环境 anaconda : 24.1.2python : 3.7.13pyinstaller : 5.13.0 问题描述 之前使用pyintaller执行spec文件打包都是能成功,今天打包报了“文件所在的卷已被外部更改,因此打开的文件不再有效。”的错误 Traceback (most recent call last):File "C…

想提升,应该学PMP还是NPDP?

NPDP(新产品开发专业认证)是由美国产品开发与管理协会(PDMA)发起的国际认证,涵盖新产品开发的理论、方法和实践,为公司提供全方位的知识体系支持。通过考试获得NPDP认证证书,能够提升个人工作能…

粒子爱心特效||轻松实现浪漫效果||完整代码

关注微信公众号「ClassmateJie」有完整代码以及更多惊喜等待你的发现。 简介/效果展示 你是否曾经想过,在特殊的日子里给你的爱人一个惊喜?或者在朋友的生日派对上,给他们展示一个充满爱意的特效?今天,我要分享一个我…

VUE3-form表单保存附件与基本信息

element-ui代码 <el-dialog :title"上传附件" v-model"dialogAdds.visible" width"500px" append-to-body> <el-form-item label"唯一标识"> <dict-tag v-if"form.groupId" :options"unique_identifica…

性能怪兽!香橙派 Kunpeng Pro 开发板深度测评,带你解锁无限可能

性能怪兽&#xff01;香橙派 Kunpeng Pro 开发板深度测评&#xff0c;带你解锁无限可能 文章目录 性能怪兽&#xff01;香橙派 Kunpeng Pro 开发板深度测评&#xff0c;带你解锁无限可能一、背景二、香橙派 Kunpeng Pro 硬件规格概述三、使用准备与系统安装1️⃣、系统安装步骤…

【C++】浅论(cin和cout)的解锁、缓冲区的理解、CC++输入方法汇总和详解

一、cin,cout解锁 1.1&#xff1a;cin,cout解锁以及why 首先cin和cout是在c中为了提供类型安全和易用性设计的&#xff0c;它兼容了c语言的输入和输出&#xff0c;以上几点导致它在性能行&#xff08;读取和输出速度)远不如传统c语言的输入和输出。 在看到一些代码里面&…