The Dawson Blog

We will all meet countless souls and weather countless stories, only to learn tenderness and release in the quiet flow of time.

Back to Blog

服务器搭建

服务器搭建
日常

October 7, 2024


前言

前段时间在用node.js写一个后端项目,后面就想着线上部署一下吧,然后就遇见了各种坎坷磨难,一言难尽

购买服务器

首先,既然要搭建服务器那么最起码我们得有一个服务器,物理服务器太麻烦了,果断选择云服务器,虽然我是实物主义,云服务器并不符合实物主义,但物理服务器确实过于繁琐,先不论财力支出,时间成本过于高昂,并不符合我的初衷。

我是在阿里云买的ECS云服务器,阿里云有学生优惠,学生认证后,购买服务器可以便宜很多,官网地址是:https://www.aliyun.com/ 然后选择的是Ubuntu的镜像源

第一次踩坑: 第一次买没什么经验然后发现,如果大家买的地域是国内的,且想用https协议那么就需要备案,过程漫长而繁琐,http不需要备案。如果地域是香港或者新加坡的则无此担忧。 此外,大家务必注意买的服务器是否具有官网IP,当时我买的时候没注意导致了后续得额外购买弹性公网,不过也有别的解决办法,可以通过内网穿透来实现,但需要额外配置,这里就不展开了,大家自行百度吧。(狠狠吐糟,居然还有没有弹性公网的,当时和朋友说的时候他也表示无语)

部署

基础配置

已经实现了服务器购买后,必然是连接服务器,我们可以通过阿里云官网直接实现远程连接,一般是先通过密码登录(但存在安全隐患),后续配置好密钥后则直接通过密钥登录(请务必不要泄露自己的密钥信息)

中途的操作如若看不懂可以直接默认回车

建立连接后输入 apt update 更新系统软件包,更新完成后输入 apt upgrade -y安装更新

上述提到了如若密码登录会存在安全隐患,可以配置密钥登录,具体操作如下:

  1. 在本地电脑生成密钥对,输入 ssh-keygen,然后一路回车,生成密钥对(可以选择对密钥进行加密
  2. 将公钥复制,公钥存放于C:\Users\用户名.ssh\id_rsa.pub
  3. 在服务器上添加密钥对,名称自取,选择导入已有的密钥对,将公钥粘贴进去,保存
  4. 绑定密钥对,选择需要绑定密钥对的实例,点击绑定密钥对,选择刚刚添加的密钥对,然后绑定
  5. 重启服务器

为了避免多个服务器每次连接都需要去寻找IP地址可以在 C:\Users\用户名\.ssh 文件夹下新建config文件(文件名不要带后缀),将以下内容模板粘贴进去,然后保存

Host 名称
    HostName 服务器公网IP
    User root

然后就可以通过 ssh 名称 来连接服务器了

安装宝塔面板

文档地址:https://www.bt.cn/new/download.html

我选择的是 Ubuntu/Deepin 的脚本

第二次踩坑:安全组后续配置可以选择全部放通,不然可能会导致请求访问不了

安装完成请妥善保管宝塔面板的账号密码,后续需要通过浏览器访问面板,安装完成后可以去设置服务器安全组,备注一个授权对象为IPv(0.0.0.0/0),端口为宝塔安装完成后提示放行的端口,然后保存,后续可以通过该端口访问面板

安装面板配置

我是用Node.js写的后端项目,所以需要安装Node.js,如果你是Java或者别的语言请自行配置

  • Node.js版本管理器(安装最新的稳定版即可,安装完成后记得命令行版本启用安装的Node.js
  • Nginx(安装最新版即可
  • Mysql(安装最新版或者5.7.xx版本即可,安装完成后记得设置数据库密码,后续需要使用

项目部署

注意一些相关的环境配置

将项目上传到服务器存放于(/www/wwwroot),通过clone可能会遇见ssh问题,或者直接通过本地上传项目文件

连接数据库

复制宝塔面板的root数据库密码,然后更新项目config文件的相关配置,后续创建相应的数据库和表,然后重启项目即可

详细的配置可以看视频: https://www.bilibili.com/video/BV1HE42157zV?p=46&spm_id_from=pageDriver&vd_source=3ff70252a34a52e490698c049f2d0654

添加DNS解析

查看视频: https://www.bilibili.com/video/BV1HE42157zV?p=47&vd_source=3ff70252a34a52e490698c049f2d0654 即可, 配置完解析记录后,我们可以去面板添加Node项目

部署前端文件

将前端文件打包后,上传到服务器存放于(/www/wwwroot),然后通过Nginx配置文件进行配置,配置完成后重启Nginx即可

注意:前端项目一般都是SPA单文件组件,需额外配置

    location / {
       root /www/wwwroot/${前端访问文件}; # 替换为你的React项目构建输出目录
       index index.html index.htm;
       try_files $uri $uri/ /index.html; # 这行是关键,确保所有请求都指向index.html
   }
Dawson
Dawson

Mar 2, 2025

2024再见!

Review of 2024 2024一晃眼就逝去了,发生了很多经历了很多也成长了很多...... 日常 1~4月平平淡淡,重复着每一天做着相同的事情,维持着 宿舍-教学楼-实验室 三点一线的规律生活,每天都是一样的,没有太多波澜,也没有太多惊喜,也没有太多遗憾,就这样平淡的度过了。 不过此时我开始接触React,从此

Continue reading

Nov 4, 2025

Frp打通Nas

前言 在去年的时候热衷于折腾 Nas,当时安装了 FNOS 系统,虽然提供了免费的 FN Connect 远程访问服务但也仅限于单一的 FNOS 系统端口访问, 最初的想法是让 Nas 当作服务器,跑跑自己的项目,后面有开始研究别的应用安装在 Docker 上,但受限于 Nas 是放在家里面,我没法直接通过内网访问这些

Continue reading

Dec 31, 2025

Review of 2025

# Review of 2025 于是,好的坏的,都成了过去的,2025 Bye ~ # Overview 2月底懵懵懂懂收到喜马拉雅实习,喜马的实习工资算不上高和极安智信差不多,但出于前景考虑,还是离开了极安智信,开始了喜马拉雅的实习。 3-5月,开始喜马拉雅实习,现在来看其实实习很枯燥,没有什么活动、礼品,且通勤让

Continue reading