搭建个人服务器

568 阅读3分钟

最方便的方法就是购买阿里云得服务器啦~新用户还蛮便宜得,70多块一年,还能接受~,下面就是搭建教程啦~

  • 系统选择Ubuntu 18.04 64

一、开放端口

此以8888端口为例;

  1. 加入安全组 => 进入安全配置 => 配置规则

  1. 添加端口

8888/8888表示开放的端口范围

0.0.0.0/0表示所有地址都可以访问

二、 使用服务器

  1. 重置实例密码

  1. 重启实例
  2. 点击远程连接,输入连接密码
  3. login后面输入root
  4. password后面输入密码

以下为本地操作

三、ssh远程登录

前置:上传公钥

  • cat本地github公钥id_rsa.pub
  • 复制公钥****编辑一下
  • 具体如下: echo '****' >> ~/.ssh/authorized_keys
  • 阿里云控制台点击复制命令输入并确认 => 控制台回车即可(现在已经可以在本地用ssh命令来访问自己的阿里云服务器啦,输入 ssh root@实例的公网ip 输入密码即可)

阿里云机器所有目录:

如果感觉实例公网ip每次输入很麻烦的话,可以在hosts里面添加这个IP地址,c > windows > system32 > drivers > etc > hosts需要用记事本管理员方式运行,末尾加入一行,实例公网ip 好记的名字:i 以后就可以root@i 喽。

四、部署node.js

  1. 创建应用账户(提高安全性)
  • adduser 用户名
  • enter new unix password:密码一直回车直到结束
  • 键入以下命令:
  1. mkdir /home/用户名/.ssh

创建空目录,/home/用户名/是已经创建好的,我们只需要创建.ssh

  1. cp ~/.ssh/authorized_keys /home/用户名/.ssh/

将刚刚创建的authorized_keys复制到该目录中

  1. chmod 755 /home/用户名/.ssh/authorized_keys

authorized_keys变成可读的

  1. chown 用户名:用户名 /home/用户名/.ssh/authorized_keys

authorized_keys的拥有者变成用户

至此可以用用户名@i来访问用户账户

此时你在阿里云服务器上同时有两个账户,一个是以/root为根目录的root管理员权限账户(ssh root@ip),另一个是以/home/用户名为根目录的普通账户(ssh 用户名@ip)

给普通账户管理员权限

,在root账户中键入以下命令:adduser 用户名 sudo,如果在普通账户中需要用到管理员权限,可以输入sudo 命令即可。

安装node.js

在普通账户中键入以下命令

curl -sL https://deb.nodesource.com/setup_8.x | sudo bash -
sudo sed -i 's/deb.nodesource.com\/node_8.x/mirrors.tuna.tsinghua.edu.cn\/nodesource\/deb_8.x/g' /etc/apt/sources.list.d/nodesource.list
sudo apt-get update
sudo apt-get install -y nodejs
node -v
npm -v
npx -v

安装git

sudo apt install git(注意不能使用git commit -v命令,应该用git commit -m "备注"非可视化界面)

部署代码

  1. github上面创建一个仓库,建立server.js文件
  2. git clone http://****(只能用http,不能用ssh)
  3. cd nodejs-test(进入目录)
  4. touch log
  5. 启动命令:node server.js 8888 > log 2>&1 &
  6. 把启动命令做成 start 文件

touch start

echo 'node server.js 8888 > log 2>&1 &' >> ./start

chmod +x start

  1. ./start即可启动。

注:

  • tail log可以看log内容
  • kill -9 pid 可以关掉进程
  • killall node关掉所有node进程
  • exit退出当前用户
  • control+A 到该命令行行首 contral+E到该命令行行尾

至此只要在浏览器中输入 公网ip:端口号 即可在世界上任何一个位置访问我的服务器,国内有些特殊的原因,80端口用的话需要备案,不然会被f。

如何改代码之后,更新服务器数据

  • 本地编辑之后git pushgithub(上传代码)
  • ssh 用户名@实例ip
  • cd 目录
  • git pull拉取最新数据(下载代码)
  • 关掉账户killall node
  • 重新启动./start
  • 重启完毕