Day04 - 在 GCE 建立第一个 Web Service

Day03 我们使用 GCE 建立一台 VM,今天要学习如何连线到虚拟机,并在服务器上使用 NodeJS 建置简易的 Web 服务。

连接虚拟机的方式

方案一 透过 SSH Key 登入

如果想使用自己的 Terminal 来连线至 VM ,可以透过 SSH 金钥的方式。

  1. 输入指令来产生 SSH Key
ssh-keygen
  1. 按 enter 选择默认值
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

(输出结果)

Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:fw9uAk9ASgQ27Cf0I0pYmqySiB8Laqmd+uoU2Qc4Uek
The key's randomart image is:
+---[RSA 3072]----+
|   o=+o          |
|  ..=o. .        |
|.= *.o o         |
|+.+ *E= .        |
|+= o = .S.       |
|B + .   ...      |
|o+.o     +. o    |
|o+o.      oo.    |
|B=+        o. .  |
+----[SHA256]-----+

公私钥就建立完成了,预设会存在 ~/.ssh 资料夹,,其中 id_rsa是私钥,id_rsa.pub则是公钥,接着把公钥给复制起来放入 VM 里,就能使用私钥进行连线。

  1. 印出 Public Key
cat ~/.ssh/id_rsa.pub
  1. 将印出的 Public Key 复制下来
# 印出的全部都复制起来
ssh-rsa XXXXXXXXXXXXXXXXXXXXXXXXX [email protected]
  1. 回到 GCP 网站,点击console左上角 -> Compute Engine -> VM执行个体

  1. 点击VM名称

  1. 点选编辑

  1. 下拉找到SSH金钥,点选显示与编辑

  1. 输入刚刚复制的 Public Key
  2. 点击储存

  1. 回到 VM 执行个体画面,找到服务器外部 IP

  1. 透过私钥即可成功连线
ssh -i ~/.ssh/id_rsa <外部IP>

方案二 直接使用 Web Console 连线

GCE 也提供了 Web Console 服务,透过浏览器就能连线到 VM

  1. 回到 VM 执行个体画面 -> 点击 SSH 进行连线

成功连线後会跳出浏览器视窗。

Web Service

接着利用 NodeJS 建置简单的 Web 服务,让 Server 能对 Http 请求做出回应。

  1. 先透过 SSH Key 或 Web Console 的方式连线到 VM

  2. 更新服务器

sudo apt-get update
  1. 安装 Node 以及 Npm
sudo apt-get install -y nodejs npm
  1. 确认是否成功安装
  • Node
node -v

(输出结果)

v10.19.0
  • Npm
npm -v

(输出结果)

6.14.4
  1. 建立专案资料夹
mkdir project && cd project
  1. 建立专案相关文件
  • package.json
cat > package.json <<EOF
{
    "dependencies": {
        "express": "*"
    },
    "scripts": {
        "start": "node app.js"
    }
}
EOF
  • app.js
cat > app.js <<EOF
const express = require('express')
const app = express()
const port = 80

app.get('/', (req, res) => {
  res.send('Hello IT-Home!!')
})

app.listen(port, () => {
  console.log('Example app listening at port %s', port)
})
EOF
  1. 安装所需套件
npm install
  1. 启动服务
sudo npm start&

(输出结果)

[1] 12871
> @ start /home/justin89721/nodeProject
> node app.js
Example app listening at port 80
  1. 回到 VM 执行个体画面,找到服务器外部 IP

  1. 开启浏览器,输入网址後送出
http://<外部IP位址>

可以看到服务器回传讯息,最基本的 Web Service 就建立完成了。

  1. 若要关闭服务,可以用以下指令
sudo pkill -f node

总结

今天学会了如何连线至 VM 并进行简单操作,除了 Node 之外也可以尝试部署如 nginx 等其他的应用,但这种在 VM 建置服务是较传统的方式,之後的文章中就会学习到如何使用 Container 将应用程序打包并运行。


<<:  从零开始学3D游戏开发:程序基础 Part.1 变数

>>:  [Day 4 ] 步入学程序的第一关

Day3 中秋就是要烤肉阿-美式烤猪肋排

中秋就是要烤肉阿 虽然今年因为疫情无法在外群聚烤肉,但仪式感不能少,自己在家烤起来! 这次来点不一样...

Day 19-制作购物车系统之将资料汇入脚本

今天要把前面几天的资料(包括MongoDB连线、产品等)汇入到脚本 以下内容有参考教学影片,底下有附...

不只懂 Vue 语法:如何透过路由实现跨页面传递资料?

问题回答 在跳转页面时,可以透过路由物件里 params 或 query 来传递资料,也可以使用各种...

D29 - 热点

分散式资料库理论上会把业务的loading平均分布到各个node上。但是仍有可能因为业务逻辑或者资料...

day17 : kafka服务应用 on K8S (上)

kafka是一套与昨天的NATS类似的分布式MQ系统,会用这两套也不是想要做差异比较,单纯只是有多一...