建站|VPS裸机安装NotionNext个人博客
00 分钟
2024-2-26
2024-3-14
type
status
date
slug
summary
tags
category
icon
password
记录分享一下自己单VPS搭建个人博客的教程
🛠
需要一台VPS云服务器 一个域名(本文不涉及备案相关) 本文使用的服务器配置为2核1G-CentOS7系统 若出现内存占满或者配置更低请提前设置好swap交换分区

一、购买域名及解析

首先购买一个自己喜欢的域名,然后进入到域名管理界面,操作-解析
notion image
点击添加记录-A类型-记录值为自己所准备的VPS服务器的IP地址
notion image
添加完成后可以使用ping检测是否解析成功
notion image
 

二、安装NodeJS环境与NotionNext部署

这里也是使用NotionNext作者推荐的nvm方式进行安装NodeJS环境
首先使用SSH工具连接上VPS(例如Xshell、Putty、MobaXterm)
 
1.安装Git拉取nvm源码
 
2.使用nvm安装NodeJS
 
3.安装yarn环境
 
4.部署NotionNext
当所有的脚本和库安装完成后就可以去blog.config.js文件里绑定自己的notion_page_id
notion image
修改保存后便可以开始编译源码了
notion image
notion image
博客会默认在3000端口开启,这个时候在浏览器输入http://域名:3000即可打开
👌
若跟我一样使用的是阿里云的服务器,需要进入服务器的控制台开启3000端口才可以访问

阿里云开启端口方法

notion image
notion image

重点-后台运行

直接使用yarn start命令启动服务是作为前台应用在运行,若退出远程控制软件便会自动关闭,这里可以使用作者提供的后台运行脚本来保证博客的运行

三、Nginx反代与申请证书使用https加密

🛠
当博客启动时,默认使用的是3000端口,每次访问的时候就得需要域名+端口来进行访问,这里我们使用nginx软件进行反代,使得可以直接访问域名便进入所搭建的博客当中

Nginx安装

最简单的安装方法(也可以选择自己手动安装需要的版本)
安装成功后,直接输入你的IP地址或域名便可以看到如下效果(已开启80端口)
notion image

申请SSL证书

💡
如上图可以看到,直接访问域名会提示不安全,这是因为站点没有申请SSL证书开启https加密所导致的,所以要为站点申请一个SSL证书并使用https加密的方式解决
📎
这里使用acme.sh这个工具来签发与续期证书,操作简单,无需像certbot一样需要安装前需要安装许多库与依赖
首先需要安装socat
notion image
安装完成后可以输入以下指令检测是否安装成功
接下来就可以申请证书了
签发完的证书存在于~/.acme.sh/目录下,但是不能直接使用,需要拷贝到其他位置才可以正常使用
若是中途没有报错便可在ssl文件夹下看到证书文件
notion image
输入crontab -l指令可以查看定时续期任务是否创建成功
notion image
证书申请完了就可以进行下一步,去nginx里设置反代与证书,开启https加密

Nginx配置

当申请完证书之后,便会在/etc/nginx/ssl文件夹下出现相关的证书文件,要记下这些证书的名字以便使用
接下来就是修改nginx的文件了
下面是默认的配置文件内容
然后直接根据自己的内容进行修改
修改完成配置后输入指令重启一下nginx,便可以访问域名查看是否成功了
systemctl restart nginx
notion image
至此搭建博客结束

四、遇到的问题与解决方法

1.每次重新连接服务器时总要输入一遍nvm use [版本号],每次退出终端都要重新输入一遍,要不然就会找不到node和yarn指令,这里只需要指定一下nvm使用的默认版本,每次进入终端就不需要再输一遍指令了
2.关于NotionNext中blog.config.js文件中,有一些配置需要注意符号
3.关于证书,因为使用的是Let's Encrypt,所以无法签发泛域名证书 所以会遇到访问网站用的是,xxx.com,但是在查看文章的时候会跳到www.xxx.com,这时就会提示访问不安全,这个时候我们需要去nginx增加一个server块,把xxx.com重定向到www.xxx.com 但是需要重新为站点申请一个www.xxx.com的证书
4.原来的域名加3000端口还可以访问 不知道是不是nginx配置的问题,有些时候会出现域名加3000端口还可以访问 这里推荐直接到服务器的管理后台,把原来的3000端口禁用,或者删除就可以了
 
 

参考文章

1.NotionNext搭建教程
 
2.nginx证书申请
 
3.nginx配置使用

评论
  • Twikoo