簡體   English   中英

如何在沒有`gcloud app deploy`的情況下在GCP上部署Node.js express服務器?

[英]How to deploy Node.js express server on GCP whithout `gcloud app deploy`?

我不想使用命令gcloud app deploy來部署我的 Node.js Express 服務器。

理想情況下,我想:

  1. 在 VM 實例上克隆存儲庫
  2. 運行npm install
  3. 運行npm start這將在端口 5000 啟動節點服務器。

這種配置的防火牆規則是什么? 我會使用 VM 的外部 IP 將請求發送到我的服務器或其他東西嗎? NGINX在這里的作用是什么?

您可以在 Google 雲上配置常規的 http 和 https 端口,並使用 nginx 作為代理將數據路由到您的應用程序。

Nginx 配置示例:

server {
listen 80;

 location / {
     proxy_pass http://yourAppAddress:5000/;
 }
}

雖然我建議使用 Docker 來部署您的應用程序。

要在 GCP 實例上安裝和運行 Node.js express sercer,請按照以下步驟操作(在 Debian9 VM 上測試):

sudo apt update
sudo su -
curl -sL https://deb.nodesource.com/setup_12.x | bash -
apt install -y nodejs
curl -L https://npmjs.org/install.sh | sudo sh
npm install -g express-generator
logout
express myproj1
cd myproj1
npm install
npm start

之后你應該看到

> m1@0.0.0 start /home/wbogacz/m1
> node ./bin/www

關於防火牆 - 添加規則以允許端口 3000 上的 TCP 流量到這台機器; 見下面的例子;

gcloud compute --project=myproject firewall-rules create express_rule --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:3000 --source-ranges=0.0.0.0/0 --target-tags=myvm

這假設您的實例具有標簽myvm

之后,您應該能夠將 go 連接到 VM 的外部 IP 並在瀏覽器頁面中看到Welcome to Express消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM