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

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


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

bootstrap实现天平效果

之前提到了,最近,孩子的幼儿园让家长体验“半日助教活动”,每个家长需要讲授15-20分钟的课程。作为一名程序员,实在没有能教的课程,只能做了一个小游戏,带着小朋友们熟悉数字。 在上一章博客中&#xff0c…

探索AI变现新模式:搭建小程序,畅享换脸写真、趣测音乐多重乐趣

一、AI创作系统介绍、 AI变现小程序是一种利用人工智能技术为用户提供服务,并通过某种方式实现盈利的小程序。这种小程序可以应用于多个领域,如AI动漫推文、AI绘画、AI换脸等。 AI小说生动漫推文:是一种利用AI技术和动漫制作技术&#xff0…

苹果WWDC 2024或将推出AI生成的表情符号并宣布与OpenAI的合作|TodayAI

苹果正在为即将到来的WWDC(全球开发者大会)做准备,并将展示其生成式AI技术。根据Mark Gurman在Bloomberg的《Power On》通讯中的报道,苹果将在2024年的WWDC上讲述自己的AI故事,但这可能不会像Google、Microsoft或OpenA…

宝藏功能:teamOS的文件信息总览,太好用了吧

在日常工作中,我们时常需要处理大量的文件和协作任务。有时,过多的信息和工具可能会让我们感到混乱和困扰。 但可道云的teamOS文件信息总览窗口却为我们提供了一个清晰、高效的解决方案。 一、一站式信息展示,让工作更透明 这个面板集成了许…

55页PDF|人工智能通用大模型(ChatGPT)的进展、风险与应对(附下载)

👉获取方式: 😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

OrangePi AIpro上手初体验:

OrangePi AIpro上手初体验: 1.基本外观及功能接口简介2.点亮OrangePi AIpro开发板3.OrangePi AIpro功能体验3.1.目标检测3.2.OCR文字识别3.3.图像的曝光增强3.4.系统的整体性能(运行ROS) 4.OrangePi AIpro体验总结4.1.硬件及软件生态:4.2.使用体验及性能…

医学图像分割--U-net变种

参考:医学图像分割综述:U-Net系列_医学图像 实例分割-CSDN博客 2D Unet 收缩路径:每个块包含两个连续的3 3卷积,后面是一个ReLU激活函数和最大池化层(下采样)扩展路径:该路径包括一个2 2转置卷积层(上采…

苹果手机突然白屏无反应怎么办?白屏修复办法分享!

苹果手机突然白屏无反应怎么办?下面小编就来给大家分享苹果手机突然白屏的原因和修复办法。 一般造成苹果手机出现白屏的原因如下: 系统问题:iOS系统的故障是导致苹果设备白屏无反应最常见的原因之一。例如,系统更新失败、应用冲…

OpenHarmony如何切换横竖屏?

前言 在日常开发中,大多APP可能根据实际情况直接将APP的界面方向固定,或竖屏或横屏。但在使用过程中,我们还是会遇到横竖屏切换的功能需求,可能是通过物理重力感应触发,也有可能是用户手动触发。所以本文主要带大家了…

ESP32入门:1、VSCode+PlatformIO环境搭建

文章目录 背景安装vscode安装配置中文 安装Platform IO安装PIO 新建ESP32工程参考 背景 对于刚接触单片机的同学,使用vscodeplatformIO来学习ESP32是最方便快捷的,比IDF框架简单,且比arduino文件管理性能更好。但是platformIO安装较为麻烦&a…

小苯的九宫格,小苯的好数组(排序),小苯的数字合并(字典树,前缀和)

小苯的九宫格 题目描述 运行代码 #include<iostream> using namespace std; int main(){int a[10];for(int i1;i<9;i){cin>>a[i];} string b;cin>>b;for(int i0;i<b.size();i){int pb[i]-0;cout<<a[p];} } 代码思路 定义数组&#xff1a;首先…

关于栈的简单讲解

哈喽&#xff0c;小伙伴们大家好呀&#xff0c;今天给大家带来栈、队列的那些知识点。 栈的概念 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。 进行数据插入和删除操作的一端 称为栈顶&#xff0c;另一端称为栈底。 总结 一种线性…

多线程编程(12)之HashMap1.8源码分析

之前已经分析过了一版1.7版本的HashMap&#xff0c;这里主要是来分析一下1.8HashMap源码。 一、HashMap数据结构 HashMap 是一个利用散列表&#xff08;哈希表&#xff09;原理来存储元素的集合&#xff0c;是根据Key value而直接进行访问的数 据结构。 在 JDK1.7 中&#xff…

MongoDB数据库清理策略: 自动化过期数据删除实战

1、引言 随着应用程序和业务数据的持续增长&#xff0c;有效地管理数据库存储空间成为维护系统性能的关键。在MongoDB这类NoSQL数据库中&#xff0c;定期清理过期数据变得尤为重要&#xff0c;这不仅能释放宝贵的存储资源&#xff0c;还能优化查询性能&#xff0c;确保数据库运…

[算法] 优先算法(三):滑动窗口(上)

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏:&#x1f355; Collection与数据结构 (92平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 &#x1f9c0;Java …

Web安全技术期末考查-vulhub靶场搭建及漏洞复现

一、实验目的与要求 能根据报告找到难度适中的漏洞&#xff0c;搭建弱点环境&#xff0c;并验证该漏洞&#xff1b; 2.能给出该漏洞的修复建议。 二、实验原理与内容 漏洞原理 漏洞原理通常指的是计算机系统、软件、网络或其他技术系统中存在的安全缺陷&#xff0c;这些缺陷…

Ubuntu18 配置FFmpeg开发环境 (Vscode+CMake)

关于Vscode插件安装不再赘述&#xff0c;本文主要讲解如何配置FFmpeg的开发环境以及CMake文件写法&#xff0c;如果不知道该安装什么插件请看本文&#xff1a; Ubuntu配置Vscode 文章目录 1.安装FFmpeg开发包2.配置Vscode项目3.使用C语言验证FFmpeg版本 1.安装FFmpeg开发包 更新…

粉丝问,有没有UI的统计页面,安排!

移动应用的数据统计页面具有以下几个重要作用&#xff1a; 监控业务指标&#xff1a;数据统计页面可以帮助用户监控关键业务指标和数据&#xff0c;例如用户活跃度、销售额、转化率等。通过实时更新和可视化呈现数据&#xff0c;用户可以及时了解业务的整体状况和趋势。分析用…

深入剖析—【服务器硬件】与【Nginx配置】:从基础到实战

服务器硬件部分&#xff1a; Processor (CPU)&#xff1a;服务器的计算核心&#xff0c;负责处理数据和执行程序。Memory (RAM)&#xff1a;用于暂时存储和快速访问数据&#xff0c;决定了系统的运行速度和并发处理能力。Storage (HDD/SSD)&#xff1a;长期存储数据的设备&…

基于JT/T808、JT/T1078、苏标、粤标视频主动安全监控

1.概述 如下图是以实时视频点播与部标机产生了主动安全报警&#xff0c;各个服务之间的交互流程说明。 整个系统有以下几个核心组件组成&#xff1a; 1&#xff1a;系统业务端&#xff1a;车载监控业务系统&#xff0c;给用户提供车载监控整套业务流程与界面呈现&#xff1b;…