簡體   English   中英

如何在 AWS EC2 Ubuntu 免費套餐上托管 Node.js 應用程序?

[英]How to host a Node.js app on AWS EC2 Ubuntu free tier?

我真的是 AWS EC2 的新手。 我使用 PM2 在 AWS EC2 上托管了我的 Express.js。

這是我的應用程序的 EC2 當前日志。

我不知道這是否有效。

在此處輸入圖像描述

我的公共 IPv4 地址是 (52.90.33.231)。

如果需要Nginx,請指導我完成它的步驟,因為我沒有經驗。

我也在此處添加入站規則。

在此處輸入圖像描述

http://localhost:5002/questapi

上面的url曾經給我以下數據:

在此處輸入圖像描述

所以52.90.33.231/questapi是有效的 url。

我更喜歡使用 Docker 在 EC2 中運行您的應用程序而不是使用 PM2,無論應用程序依賴性如何,您都可以輕松地將應用程序遷移到任何環境。 PM2 是一個很好的部署工具,但更好的答案是 DOCKER。

關於NGINX,您可以使用NGINX或APACHE web服務器在您的節點服務上啟用反向代理,將您的5002端口路由到443/80。 我還建議使用 AWS Application Load Balancer,因為它會為您提供相同且易於使用 AWS CERTIFICATE MANAGER 安裝 SSL 證書。

在 Ec2 中部署 Docker 節點的步驟

  1. 在您的 EC2 機器中安裝 DOCKER - 按照此參考 URL
  2. 在 EC2 機器中克隆 NodeJS 代碼庫,並在代碼庫的根文件夾中添加 Dockerfile。 下面我將添加 Dockerfile 示例。
  3. 在項目docker build --no-cache -t <your_application_name>:latest.
  4. 使用給定命令運行 NodeJs docker 圖像

sudo docker run --name <your_application_name> -itd -.net="host"
-e 5002:5002
--restart 除非停止
<您的應用程序名稱>:最新的;

現在您可以開始在<your_instance_public_ip>:5002上使用該應用程序,確保在安全組入站訪問中啟用 5002 端口。

在這兩者之間,我在這里添加了一個參考鏈接,以使用 Aws ALB 通過反向代理規則隱藏您的 EC2 IP 地址和應用程序端口號。

https://www.clickittech.com/devops/deploy-nodejs-app-to-aws/

DOCKERFILE NODEJS 應用程序示例

FROM node:14.0
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package.json /usr/src/app/

RUN npm install

# Bundle app source
COPY . .

EXPOSE 5002
CMD [ "node", "server.js" ] # you can add your start command

你應該參考這個視頻(來自 Brad Traversy),他使用 pm2 在 DigitalOcean Droplet 上部署了 Nodejs 應用程序,但是要在 AWS EC2 上部署,你可以遵循完全相同的步驟,因為兩者都使用 Ubuntu 操作系統、NGINX 和 pm2 來配置應用程序. NodeJS 部署教程

暫無
暫無

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

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