在 Day03 我们使用 GCE 建立一台 VM,今天要学习如何连线到虚拟机,并在服务器上使用 NodeJS 建置简易的 Web 服务。
如果想使用自己的 Terminal 来连线至 VM ,可以透过 SSH 金钥的方式。
ssh-keygen
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 里,就能使用私钥进行连线。
cat ~/.ssh/id_rsa.pub
# 印出的全部都复制起来
ssh-rsa XXXXXXXXXXXXXXXXXXXXXXXXX [email protected]
console左上角 -> Compute Engine -> VM执行个体
编辑
显示与编辑
储存
ssh -i ~/.ssh/id_rsa <外部IP>
GCE 也提供了 Web Console 服务,透过浏览器就能连线到 VM
SSH
进行连线成功连线後会跳出浏览器视窗。
接着利用 NodeJS 建置简单的 Web 服务,让 Server 能对 Http 请求做出回应。
先透过 SSH Key 或 Web Console 的方式连线到 VM
更新服务器
sudo apt-get update
sudo apt-get install -y nodejs npm
node -v
(输出结果)
v10.19.0
npm -v
(输出结果)
6.14.4
mkdir project && cd project
cat > package.json <<EOF
{
"dependencies": {
"express": "*"
},
"scripts": {
"start": "node app.js"
}
}
EOF
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
npm install
sudo npm start&
(输出结果)
[1] 12871
> @ start /home/justin89721/nodeProject
> node app.js
Example app listening at port 80
http://<外部IP位址>
可以看到服务器回传讯息,最基本的 Web Service 就建立完成了。
sudo pkill -f node
今天学会了如何连线至 VM 并进行简单操作,除了 Node 之外也可以尝试部署如 nginx 等其他的应用,但这种在 VM 建置服务是较传统的方式,之後的文章中就会学习到如何使用 Container 将应用程序打包并运行。
<<: 从零开始学3D游戏开发:程序基础 Part.1 变数
中秋就是要烤肉阿 虽然今年因为疫情无法在外群聚烤肉,但仪式感不能少,自己在家烤起来! 这次来点不一样...
今天要把前面几天的资料(包括MongoDB连线、产品等)汇入到脚本 以下内容有参考教学影片,底下有附...
问题回答 在跳转页面时,可以透过路由物件里 params 或 query 来传递资料,也可以使用各种...
分散式资料库理论上会把业务的loading平均分布到各个node上。但是仍有可能因为业务逻辑或者资料...
kafka是一套与昨天的NATS类似的分布式MQ系统,会用这两套也不是想要做差异比较,单纯只是有多一...