所有步骤在MAC 电脑环境下操作

一、配置环境

1、连接到远程服务器

1、购买阿里云ECS服务器,我选用的 ubantu 14.0.4 (64位),购买的时候输入的密码记录下来,没有设置的话可以随后在ECS控制台修改
2、浏览器进入阿里云平台 -> ECS控制台 -> 实例列表
3、查看实例的信息:记录下自己的IP(公) 47.xxx.xxx.xxx
4、点击管理,可以修改一下实例名称什么的,默认是一串不好识别的乱码,可以改成自己好好记的。
5、在本地的打开终端: 输入 $ ssh root@47.xxx.xxx.xxx ECS服务器公网 IP远程连接,输入自己的远程ubantu 服务器密码

可能会提示以下信息 选yes 然后再输入远程服务器密码密码即可。看到Welcome to Ubuntu。。。证明连接成功

wjw$ ssh root@47.xxx.xxx.xxx
The authenticity of host '47.xxx.xxx.xxx (47.xxx.xxx.xxx)' can't be established.
ECDSA key fingerprint is SHA256:Nq44XG9TtdnZ7yNE6P0k0S2FOGmiz/sdSkmu2j7ze2k.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '47.xxx.xxx.xxx' (ECDSA) to the list of known hosts.
root@47.103.101.102's password: Welcome to Ubuntu 14.04.5 LTS (GNU/Linux 4.4.0-93-generic x86_64)* Documentation:  https://help.ubuntu.com/Welcome to Alibaba Cloud Elastic Compute Service !Last login: Sun Jun  2 15:22:59 2019

2、给服务器安装升级工具包

1、用$ sudo apt-get update 命令

# sudo apt-get update。。。
Reading package lists... Done

2、安装必备的工作包

$ sudo apt-get install git vim openssl build-essential libssh-dev wget curl

中间会提示你,安装包会占用多少磁盘空间,选择输入yes就好

3、安装nvm (node version manager), 帮助我们管理 node 版本

到github 上搜索nvm
https://github.com/nvm-sh/nvm
找到安装命令,第二步我们已经安装了 curl, 直接按照 网页命令安装就好
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash% Total    % Received % Xferd  Average Speed   Time    Time     Time  CurrentDload  Upload   Total   Spent    Left  Speed
100 13226  100 13226    0     0   7074      0  0:00:01  0:00:01 --:--:--  7076
=> Downloading nvm from git to '/root/.nvm'
=> Cloning into '/root/.nvm'...
remote: Enumerating objects: 278, done.
remote: Counting objects: 100% (278/278), done.
remote: Compressing objects: 100% (249/249), done.
remote: Total 278 (delta 33), reused 88 (delta 16), pack-reused 0
Receiving objects: 100% (278/278), 142.36 KiB | 0 bytes/s, done.
Resolving deltas: 100% (33/33), done.
Checking connectivity... done.
=> Compressing and cleaning up git repository=> Appending nvm source string to /root/.bashrc
=> Appending bash_completion source string to /root/.bashrc
=> Close and reopen your terminal to start using nvm or run the following to use it now:export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

安装好之后 需要重新连一下服务器,使我们的nvm命令生效.
用 # nvm ls 命令查看nodeJS的版本情况

$ root@47.x.x.x ...root@Jarvis:~# nvm lsN/A
iojs -> N/A (default)
node -> stable (-> N/A) (default)
unstable -> N/A (default)

3、安装nodeJS

$ nvm install node
#或者
$ nvm use v12.3.1
# 也可以用 以下命令 来指定默认版本
$ nvm alias default v112.3.1
# 最后 查看版本情况
$ nvm lsroot@Jarvis:~# nvm ls
->      v12.3.1
default -> node (-> v12.3.1)
node -> stable (-> v12.3.1) (default)
stable -> 12.3 (-> v12.3.1) (default)
iojs -> N/A (default)
unstable -> N/A (default)
lts/* -> lts/dubnium (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.16.0 (-> N/A)
lts/dubnium -> v10.16.0 (-> N/A)
root@Jarvis:~# 

4、创建一个node服务

1、在 nodeJS 官网的文档里 拷贝示例代码,修改 端口号 为3010
2、在 服务端的根目录下创建 server.js 文件
$ vim server.js
粘贴示例代码:

const http = require('http');const hostname = '127.0.0.1';
const port = 3010;const server = http.createServer((req, res) => {res.statusCode = 200;res.setHeader('Content-Type', 'text/plain');res.end('Hello, World!\n');
});server.listen(port, hostname, () => {console.log(`Server running at http://${hostname}:${port}/`);
});

3、保存运行
$ node server.js
//配置ubantu 防火墙
$ sudo vi /etc/iptables.up.rules
在vim下输入

-A INPUT -s 127.0.0.1 -p tcp --destination-port 3010 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -s 127.0.0.1 -p tcp --soruce-port 3010 -m state --state ESTABL
ISHED -j ACCEPT
~                

由于服务器之前没有配置过任何 iptables ,打开的 /etc/iptables.up.rules 是空文件,所以,可以先在 命令行执行以下命令
先停用iptables

$sudo iptalbes -F
$sudo iptables -X
$sudo iptables -Z
$sudo iptables -P INPUT ACCEPT
v$sudo iptables -P OUTPUT ACCEPT
$sudo iptables -P FORWARD ACCEPT
$sudo modprobe -r ip_tables

再启用

# 本地进程 lo 的 INPUT 和 OUTPUT 链接,eth0 的 INPUT 链
$sudo iptables -A INPUT -i lo -j ACCEPT
$sudo iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -jACCEPT
$sudo iptables -A INPUT -i eth0 -m state --state NEW,INVALID -j LOG
$sudo iptables -A OUTPUT -o lo -j ACCEPT
#开放SSH端口22
iptables -A INPUT -p tcp -i eth0 --dport ssh -j ACCEPT
#开放Web端口80
iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT
#开放FTP端口21、20
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
#删除FTP端口21、20
iptables -D INPUT -p tcp --dport 20 -j ACCEPT
iptables -D INPUT -p tcp --dport 21 -j ACCEPT#允许loopback(不然会导致DNS无法正常关闭等问题)
IPTABLES -A INPUT -i lo -p all -j ACCEPT  (如果是INPUT DROP)
IPTABLES -A OUTPUT -o lo -p all -j ACCEPT (如果是OUTPUT DROP)#保存iptables规则
iptables-save > /etc/iptables.up.rules$sudo modprobe ip_tables#修改 /etc/network/interfaces ,添加下面末尾2行脚本
auto eth0
iface eth0 inet dhcp
pre-up iptables-restore < /etc/network/iptables.up.rules
post-down iptables-save > /etc/network/iptables.up.rules

在 iptables.up.rules 文件中 ,可以在 COMMIT一行的上方添加自己需要的规则

# Generated by iptables-save v1.4.21 on Sun Jun  2 17:45:31 2019
*filter
:INPUT ACCEPT [1:40]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [465:67402]
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -m state --state INVALID,NEW -j LOG
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
COMMIT
# Completed on Sun Jun  2 17:45:31 2019

然后保存
:wq

重新加载 iptables
$sudo iptables-restore < /etc/iptables.up.rules

关闭不必要的服务

sudo ufw stop
sudo service nginx stop

用node命令打开 server.js 运行服务

root@Jarvis:~# node server.js
Server running at http://127.0.0.1:3010/

再在另一个终端里启动一个 远程服务
然后再命令行里 输入:
curl http://127.0.0.1:3010 发现服务启动成功

root@Jarvis:~# curl http://127.0.0.1:3010
Hello, World!
root@Jarvis:~# 

//指定 node 版本并 设为默认使用版本
$nvm use v10.16.0 && nvm alias default v10.16.0

转载于:https://www.cnblogs.com/wjw-blog/p/10963327.html

阿里云服务器+ubantu+nodejs 服务器基本配置流程相关推荐

  1. 阿里云4核8G服务器10M带宽支持在线人数并发量计算

    阿里云服务器4核8G10M带宽配置可以容纳多少人同时在线访问?阿里云10M带宽支持多少并发数?阿里云4核8G服务器配置如何选择?阿里云服务器10M带宽费用多少?新手站长网来详细说下: 阿里云4核8G服 ...

  2. 阿里云8核16G服务器ecs.c6.2xlarge性能评测CPU处理器型号

    阿里云服务器ECS计算型c6实例ecs.c6.2xlarge为4核8G配置,CPU处理器采用Intel Xeon(Cascade Lake) Platinum 8269CY,2.5 GHz主频,睿频3 ...

  3. Esp8266进阶之路12 图文并茂学习阿里云主机搭建8266MQTT服务器,实现移动网络远程控制一盏灯!

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. Esp8266之 搭建开发环境,开始一个"hello ...

  4. 【无标题】利用C#连接阿里云RSD数据库mysql服务器

    利用C#连接阿里云RSD数据库mysql服务器 阿里云服务器端配置 C#代码设置 Navicat连接RDS MySQL等数据库 因为本科项目的需要,需要部署一个在线服务器.于是果断在阿里云通过学生优惠 ...

  5. 阿里云RDS与ECS服务器数据库做主从 [精]

    阿里云RDS与ECS服务器数据库做主从 [精] 标签(空格分隔): mysql 一.阿里云RDS介绍 介绍:阿里云RDS(数据库)基于飞天大规模分布式计算和存储能力,提供超高性价比的单机版实例,同时利 ...

  6. 阿里云上安装MQTT服务器

    在阿里云上安装好服务器后,进入linux控制台界面安装EMQX 执行wget https://www.emqx.com/zh/downloads/broker/5.0.3/emqx-5.0.3-ubu ...

  7. 阿里云服务器价格:阿里云第六代云服务器最新价格表

    目前阿里云活动中第六代云服务器有计算型c6.通用型g6和内存型r6实例参与活动.计算型c6实例有2核4G.4核8G.8核16G配置可选,主要适用于网站应用.批量计算.视频编码等场景.通用型g6实例有2 ...

  8. 阿里云上搭建webRTC 服务器——Licode

    阿里云上搭建webRTC 服务器--Licode 系统配置 阿里云服务器 Ubuntu 14.04.5 LTS Docker 环境搭建 在一台空的机器上搭建docker环境,先要安装docker,执行 ...

  9. 阿里云国际版Windows服务器磁盘空间不足该怎么办?

    本文主要介绍Windows实例磁盘空间不足时对应的解决方法以及磁盘日常维护的最佳实践,下面和87cloud一起了解阿里云国际版Windows服务器磁盘空间不足解决办法: 背景信息 本文中的方法适用于W ...

最新文章

  1. 轻松入门React和Webpack
  2. 浅谈DevExpress六:为chart创建动态数据源
  3. Hibernate持久化类与主键生成策略
  4. SAP云平台里UI5应用的build日志
  5. Firefox 66 将阻止自动播放音频和视频
  6. 如何使用离线网站,打开离线网站
  7. Java面向对象三大特征
  8. 国际电话区号 mysql数据表
  9. pr如何处理音效_pr怎么把视频声音去掉 去掉视频中的所有声音,视频消音操作...
  10. 360极速浏览器查看保存密码的操作步骤
  11. 阿里云ECS服务器使用限制及不允许做的事情
  12. [NOI Online 2021 入门组] 切蛋糕
  13. arm体系结构总结笔5-总线接口
  14. 传输层---TCP协议
  15. Vue.js 入门 :去哪儿网APP案例 学习记录
  16. 字符串函数的使用和剖析(三)
  17. Springboot 项目整合自定义日志文件
  18. 《Fluent Python》学习笔记:第 8 章 对象引用、可变性和垃圾回收
  19. abaqus 根据坐标施加载荷- Analytical Field 载荷映射
  20. 也谈男士品牌(综合版)

热门文章

  1. php写ssh命令行_php使用ssh2来操作服务器执行命令
  2. 超过4G的分区安装oracle,Red hat Linux AS4.0安装Oracle9.2.04详细步骤
  3. python office转pdf_python 如何将office文件转换为PDF
  4. java 上传文件到服务器_java上传文件到OSS云服务器(二)
  5. unity ab包加载_Unity资源管理和打包
  6. rcnn代码实现_轻松学Pytorch实现自定义对象检测器
  7. List集合中对象的排序
  8. zookeeper客户端下载与使用
  9. mysql8开启远程访问
  10. 一文看懂机器视觉工业相机与普通相机的区别