阿里雲服務器+ubantu+nodejs 服務器基本配置流程

全部步驟在MAC 電腦環境下操做node

1、配置環境

一、鏈接到遠程服務器

一、購買阿里雲ECS服務器,我選用的 ubantu 14.0.4 (64位),購買的時候輸入的密碼記錄下來,沒有設置的話能夠隨後在ECS控制檯修改
二、瀏覽器進入阿里雲平臺 -> ECS控制檯 -> 實例列表
三、查看實例的信息:記錄下本身的IP(公) 47.xxx.xxx.xxx
四、點擊管理,能夠修改一下實例名稱什麼的,默認是一串很差識別的亂碼,能夠改爲本身好好記的。
五、在本地的打開終端: 輸入 $ ssh root@47.xxx.xxx.xxx ECS服務器公網 IP遠程鏈接,輸入本身的遠程ubantu 服務器密碼nginx

可能會提示如下信息 選yes 而後再輸入遠程服務器密碼密碼便可。看到Welcome to Ubuntu。。。證實鏈接成功git

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

二、給服務器安裝升級工具包

一、用$ sudo apt-get update 命令

# sudo apt-get update

。。。
Reading package lists... Done

二、安裝必備的工做包

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

中間會提示你,安裝包會佔用多少磁盤空間,選擇輸入yes就好github

三、安裝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 | bashubuntu

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  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的版本狀況vim

$ root@47.x.x.x 

...

root@Jarvis:~# nvm ls
            N/A
iojs -> N/A (default)
node -> stable (-> N/A) (default)
unstable -> N/A (default)

三、安裝nodeJS

$ nvm install node
#或者
$ nvm use v12.3.1
# 也能夠用 如下命令 來指定默認版本
$ nvm alias default v112.3.1
# 最後 查看版本狀況
$ nvm ls

root@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:~#

四、建立一個node服務

一、在 nodeJS 官網的文檔裏 拷貝示例代碼,修改 端口號 爲3010
二、在 服務端的根目錄下建立 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}/`);
});

三、保存運行
$ node server.js
//配置ubantu 防火牆
$ sudo vi /etc/iptables.up.rules
在vim下輸入bash

-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

再啓用ssh

# 本地進程 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端口2一、20
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
#刪除FTP端口2一、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

相關文章
相關標籤/搜索