当前位置: 首页 > news >正文

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

哈喽,大家好呀!这里是码农后端。之前我给大家介绍了如何快速注册一个自己的域名,并创建一台自己的阿里云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数据库必备插件!


相关文章:

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

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

YoloV8实战:复现基于多任务的YoloV8方案

摘要 自动驾驶中多任务学习,特别是通过设计一种自适应、实时且轻量级的模型来同时处理目标检测、可行驶区域分割和车道线分割,是一种非常有用的研究方法,其中最出名的当属YOLOP模型。然后,YoloP在实时性上并没有得到满足,本文复现基于YoloV8的对任务方案,并在BDD100K数据…...

专题汇编 | ChatGPT引领AIGC新浪潮(一)

ChatGPT的产生与迭代 2022年11月末,美国人工智能研究实验室OpenAI推出ChatGPT。上线的ChatGPT只用了2个月,活跃用户数就突破了1亿,创造了应用增速最快的纪录。 ChatGPT是什么 ChatGPT是一种人工智能技术驱动的自然语言处理(Natural Language Processing,NLP)工具,使用的…...

Excel分类汇总,5个做法,提高数据处理效率!

在日常的工作中,我们经常需要使用Excel中的各种功能,Excel分类汇总功能无疑是数据分析和报告制作中的一把利器,它极大地提高了数据处理的效率和准确性。在现代商业环境中,数据无处不在,而如何从这些数据中提取有效信息…...

使用Nginx实现高可用HTTP和TCP代理:健康检查与最佳实践配置20240523

使用Nginx实现高可用HTTP和TCP代理:健康检查与最佳实践配置 在现代分布式系统中,确保应用的高可用性至关重要。Nginx作为一个高性能的HTTP服务器和反向代理,同时也支持TCP代理,通过合理配置可以大大提高系统的可用性。本文将深入…...

代码随想录算法训练营Day52 | 300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组 | Python | 个人记录向

注:Day51休息。 本文目录 300.最长递增子序列做题看文章 674. 最长连续递增序列做题看文章 718. 最长重复子数组做题看文章 以往忽略的知识点小结个人体会 300.最长递增子序列 代码随想录:300.最长递增子序列 Leetcode:300.最长递增子序列 …...

Python编程的黑暗魔法:模块与包的神秘力量!

哈喽,我是阿佑,今天给大家讲讲模块与包~ 文章目录 1. 引言1.1 模块化编程的意义1.2 Python中模块与包的概念概述 2. 背景介绍2.1 Python模块系统模块的定义与作用Python标准库简介 2.2 包的结构与目的包的定义与目录结构包在项目组织中的重要性 3. 创建与…...

python编程不良习惯纠正: 慎用顶层代码

这几天在跑一个开源代码时,发现,通过pdb断点不起作用,经过一番检查,发现代码运行时甚至没有进入main函数,就开始一顿操作. 然后定位到是在执行"import"操作的时候发生了冗余操作. 经过进一步的检查发现,是下…...

Simulate Ring Resonator in INTERCONNECT

Simulate Ring Resonator in INTERCONNECT 正文正文 首先,我们采用 Interconnect 模块的工作流程 一文中介绍的方法添加一个直波导器件。接着,我们需要对它的名称进行更改,此时我们看左侧 Property View - Root Element 中的 General 属性,我们发现 name 属性是灰色的,无…...

Flutter 中的 DrawerController 小部件:全面指南

Flutter 中的 DrawerController 小部件:全面指南 Flutter 是一个流行的跨平台移动应用开发框架,它提供了丰富的组件和工具来帮助开发者构建高质量的应用。在Flutter中,DrawerController并不是一个内置的组件,但是它的概念可以用于…...

Flutter 中的 ImageFiltered 小部件:全面指南

Flutter 中的 ImageFiltered 小部件:全面指南 在Flutter中,ImageFiltered是一个功能强大的小部件,它允许你对图片应用各种图像处理效果,如模糊、颜色转换、对比度调整等。通过ImageFiltered,你可以为应用添加丰富的视…...

C++第二十弹---深入理解STL中vector的使用

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】 目录 1、vector的介绍 2、vector的使用 2.1、构造函数和赋值重载 2.1.1、构造函数的介绍 2.1.2、代码演示 2.2、容量操作 2.3、遍历 2.4、增删…...

【赠书第24期】Java项目开发实战(微视频版)

文章目录 前言 1 项目选择与需求分析 1.1 项目选择 1.2 需求分析 2 系统设计 2.1 系统架构设计 2.2 数据库设计 2.3 接口设计 3 编码实现 3.1 环境搭建 3.2 编码规范 3.3 编码实现 4 测试与部署 4.1 单元测试 4.2 系统测试 4.3 部署与上线 5 总结与展望 6 推…...

多波段光源 通过8种波长实现的成像解决方案

光源在机器视觉中的重要性不容小觑,它直接影响到图像的质量,进而影响整个系统的性能。光源的作用包括提供足够的照明,并确保被摄物体的特征能够被准确地捕捉到图像中,使被检测物体产生清晰的图像,提高图像的对比度和亮…...

【Python】 如何从日期中减去一天?

基本原理 在编程中,日期和时间的处理是一个常见的需求,尤其是在处理日志、调度任务、数据分析等场景中。Python 提供了多种方式来处理日期和时间,其中最常用的库是 datetime。datetime 模块包含了日期(date)、时间&am…...

【MySQL精通之路】SQL优化(1)-查询优化(10)-外部联接简化

主博客: 【MySQL精通之路】SQL优化(1)-查询优化-CSDN博客 上一篇: 【MySQL精通之路】SQL优化(1)-查询优化(9)-外部联接优化-CSDN博客 下一篇: 【MySQL精通之路】SQL优化(1)-查询优化(11)-多范围查询优化-CSDN博客 查询时FROM子句中的表达…...

SCT2360:4V-28v Vin,6A同步降压DCDC转换器与EMI减少

特点: 宽4V-28V输入电压范围 0.6V14V输出电压范围 6A连续输出电流 HS/LS电源的集成式36m2/18m2 Rdson MOSFET 固定1 ms软启动时间 可选择的400KHz,800KHz,1.2MHz开关频率 可选择的PWM、PFM和USM操作模式 逐周期电流限制 输出过电压保护 超温保…...

企微运营SOP:构建高效、规范的运营流程

随着企业微信在企业内部沟通协作中的广泛应用,如何构建一套高效、规范的企微运营流程成为了众多企业关注的焦点。本文将详细探讨企微运营SOP(Standard Operating Procedure,标准操作程序)的重要性、构建方法以及实施效果&#xff…...

<商务世界>《76 微课堂<茶叶(2)-种类>》

1 茶叶总共分为6个大类 六大茶类分类法:红茶、绿茶、青茶、黄茶、黑茶、白茶六大茶类 2 红茶 红茶具有红茶、红汤、红叶和香甜味醇的特征。以水冲泡,不仅香气迎人,还呈现出特有的深红茶色,因此被人称为“红茶”。 分布地区&…...

安卓Bug总结

为什么写这篇文章 安卓十年开发遇到过得Bug做一个总结,大同小异,总结教训。 这里存放BUG目录列表 文章列表内容关键字Gradle常见问题及总结包括以下问题:gradle插件与gradle home版本关系错误、Gradle下载太慢、Executionfailed forJetifyTr…...

JVM垃圾回收机制全解析

Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

React Native在HarmonyOS 5.0阅读类应用开发中的实践

一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...

【AI学习】三、AI算法中的向量

在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...

重启Eureka集群中的节点,对已经注册的服务有什么影响

先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

腾讯云V3签名

想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...

提升移动端网页调试效率:WebDebugX 与常见工具组合实践

在日常移动端开发中,网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时,开发者迫切需要一套高效、可靠且跨平台的调试方案。过去,我们或多或少使用过 Chrome DevTools、Remote Debug…...

Python 高效图像帧提取与视频编码:实战指南

Python 高效图像帧提取与视频编码:实战指南 在音视频处理领域,图像帧提取与视频编码是基础但极具挑战性的任务。Python 结合强大的第三方库(如 OpenCV、FFmpeg、PyAV),可以高效处理视频流,实现快速帧提取、压缩编码等关键功能。本文将深入介绍如何优化这些流程,提高处理…...

从物理机到云原生:全面解析计算虚拟化技术的演进与应用

前言:我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM(Java Virtual Machine)让"一次编写,到处运行"成为可能。这个软件层面的虚拟化让我着迷,但直到后来接触VMware和Doc…...

rknn toolkit2搭建和推理

安装Miniconda Miniconda - Anaconda Miniconda 选择一个 新的 版本 ,不用和RKNN的python版本保持一致 使用 ./xxx.sh进行安装 下面配置一下载源 # 清华大学源(最常用) conda config --add channels https://mirrors.tuna.tsinghua.edu.cn…...

算法—栈系列

一&#xff1a;删除字符串中的所有相邻重复项 class Solution { public:string removeDuplicates(string s) {stack<char> st;for(int i 0; i < s.size(); i){char target s[i];if(!st.empty() && target st.top())st.pop();elsest.push(s[i]);}string ret…...