零、前言

之前做个一个RSS阅读器的微信小程序,还取了个名字:真简阅读器,后端由腾讯云驱动,最近刚好到期了,就迁移到了华为云。最明显的不同就是华为云默认有安全组,只开放了少数几个端口,所以需要手动开放80,443端口。

一、准备工作

  1. 连接我本地电脑上xshell,xftp全家桶
    输入华为云服务器的IP地址,root密码等信息就连接好了
  2. 更新一下
    yum update
  3. 添加一个自己的用户名,设置密码
    useradd hechenxi
    passwd hechenxi
  4. 添加用户到sudoer列表中
    Linux默认是没有将用户添加到sudoers列表中的,需要root手动将账户添加到sudoers列表中,才能让普通账户执行sudo命令。
    vi /etc/sudoers
    root ALL=(ALL) ALL那一行后加上一行:hechenxi ALL=(ALL) ALL

二、安装mysql(mariadb)

  1. 安***ash
    sudo yum install mariadb-server mariadb
    ```
  2. 启动mariadb服务
    sudo systemctl start mariadb
  3. 设置root账户的密码
    mysqladmin -u root password "new_password";
  4. 连接mariadb服务器
    mysql -u root password"new_password";
  5. 创建数据库
    create database if not exists RSR default character set = 'utf8';
  6. 创建数据表
    CREATE TABLE `RSR`.`rss_sites` ( `id` INT NOT NULL AUTO_INCREMENT , `siteCatId` VARCHAR(128) NOT NULL , `selected` SMALLINT NOT NULL , `siteImgUrl` VARCHAR(2048) NOT NULL , `name` VARCHAR(128) NOT NULL , `description` VARCHAR(1024) NOT NULL , `siteRssUrl` VARCHAR(2048) NOT NULL , PRIMARY KEY (`id`)) ENGINE = InnoDB;
  7. 插入数据
    INSERT INTO `sites` (`id`, `siteCatId`, `selected`, `siteImgUrl`, `name`, `description`, `siteRssUrl`) VALUES (NULL, '1', '1', 'https://ss0.bdstatic.com/94oJfD_bAAcT8t7mm9GUKT-xh_/timg?image&quality=100&size=b4000_4000&sec=1569056751&di=ea7724dc0a7af497b4427db64fd83e13&src=http://img.25pp.com/uploadfile/soft/images/2015/0502/20150502044225957.jpg', 'IT之家', '爱科技,爱这里', 'https://www.ithome.com/rss');

三、安装nodejs并启动服务器

  1. 安装nodejs
    sudo yum install nodejs
  2. 下载自己的源代码
    这里我是通过xftp上传的
  3. 运行服务器
    这里我的服务器入口是app.js文件,也可以通过一个简单的koa服务器来测试一下。
    const Koa = require('koa');
    const app = new Koa();
    app.use(ctx => {
     ctx.body = 'Hello Koa';
    });  
    app.listen(3000);
node app.js &

这里可能会出现端口被占用的报错,kill到占端口的进程就可以了

bg 把前台任务放置后台,jobs可以查看后台任务,fg %把后台任务调到前台
netstat -ntlp //查看当前所有tcp端口及其pid
kill 指定pid任务
4. 测试服务器
直接在本地浏览器输入000.000.000.000:3000就能访问到了,但是华为云的安全组默认把3000端口给禁了,所以可以去华为云得控制台打开3000端口,但是很麻烦也没有必要,直接用wget命令就可以测试了,wget就是下载指定网站文件得一个工具

sudo wget http://127.0.0.1:3000

如果能下载下来index.html那就可以说明服务器启动成功了

四、安装启动nginx

  1. 安***ash
    sudo yum install nginx
    ```
  2. 启动nginx服务
    sudo service nginx start
  3. 测试
    直接在本地浏览器输入服务器的IP000.000.000.000地址就能打开nginx的欢迎页面,但是华为云的安全组默认是关闭了80端口(只开放的22端口给ssh使用),所以我们需要打开80端口,顺便把443端口也打开。
  • 打开云服务器的控制台
  • 打开安全组
  • Sys-default配置规则
  • 添加规则->添加端口80->确认
  1. 配置SSL证书和DNS解析
  • DNS解析没什么好说得,就是让我们得域名和云服务器得IP地址对应而已
  • 申请并下载证书
  • 配置nginx.conf文件
    参考文章:Linux CentOS7 搭建node服务详细教程
  • 重启nginx
    sudo systemctl start nginx
    新手在这里很可能会报错,基本都是配置文件写错了
  1. 总结测试
    打开本地浏览器,这次不输入IP地址了,输入域名https://XXX.XXXX.cn,如果也能正常显示,就大功告成了