微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从零开始搭建 node 服务器 - 终于跑起来了

连接服务器

# 我直接用 mac 的 terminal 通过 ssh 连接
$ ssh 用户名@云服务器公网ip

# 比如我使用超级管理员账号 root 登录,服务器公网 ip 为 xxx.xxx.xxx.xxx
$ ssh root@xxx.xxx.xxx.xxx

免密码登录

  1. 生成 ssh 公钥和私钥 ssh-keygen -t sra
  2. 一路回车,最后会在用户根目录下的一个叫做 .ssh 的文件夹,找到里面的 id_rsa.pub 文件,复制里面很长的一串内容
  3. 先输密码登录远程服务器,如果你的账户是 root,那么打开 /root/.ssh/authorized_keys,将刚才复制的内容粘贴进去,保存,下次连接就不需要输密码了,如果没有这个文件,手动创建即可

注意:

  1. 在 mac 系统下,需要勾选 设置 - 共享 - 远程登录 这个选项
  2. 这里有个快捷的方法用来向一个文件里追加内容 echo 'some text' >> demo.txt

解决 linux 的中文乱码问题

# 1. 给系统添加中文字符编码
$ sudo locale-gen zh_CN.UTF-8

# 2. 给 /var/lib/locales/supported.d/ 下的 local(我并没有找到这个文件,只有en这个文件)文件追加内容
$ echo 'zh_CN.UTF-8 UTF-8' >> en

安装 node 环境

据说通过 apt-get 安装的 node 版本低的吓人,所以还是按照网上的办法先安装 nvm(一个 node 的版本管理工具),再通过 nvm 安装 node

# 1. 安装 nvm (装完可能要重启终端,也就是重新连接服务器)
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash

# 2. 安装 node
$ nvm install node

# 3. 查看版本确保已经装好
$ node -v && npm -v

启动服务

  1. 直接 node server.js 启动成功了
  2. 然而我在本地浏览器输入服务器ip:端口号并不能访问
  3. 通过命令 netstat -apn 查看端口占用情况,没有找到 server.js 启动服务监听的端口号
  4. 确保服务没有问题之后,我又找到了这个命令 netstat -apn | grep 端口号 可以查看某个端口的占用情况,
    发现确实是 node 在监听没有问题
  5. 那为什么不能访问呢? google 之后发现有人说是防火墙的问题,我一下想起来,在建服务器实例的时候,好像确实是让我选要开放哪些端口,我选了 http 的 80,https 的 443 和一些其他的什么想不起来了
  6. 修改 server.js 里面的端口,将它改成认的 80 端口
  7. 启动服务,本地浏览器直接访问服务器 ip,奇迹出现了!

设置防火墙

# 1. 查看是否安装 iptables
$ whereis iptables
# 安装 iptables
$ sudo apt-get install iptables
# 添加规则,开放 9999 端口
$ iptables -A INPUT -p tcp --dport 9999 -j ACCEPT
# 保存规则
$ sudo iptables-save
# 持续化规则(否则重启之后规则消失)
$ sudo apt-get install iptables-persistent
$ sudo netfilter-persistent save
$ sudo netfilter-persistent reload

补充内容

  • 新的 ubuntu 推荐使用 apt 代替原来的apt-get 来使用,因为 apt 更好用 : )
  • 初次使用 apt 记得先 sudo apt update
  • 更新包 sudo apt update && sudo apt upgrade

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐