我是 AWS EC2 的新手。我使用 PM2 在 AWS EC2 上托管了我的 Express.js。
这是我的应用程序的 EC2 当前日志。
我不知道这是否有效。
我的公共(public) 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 服务器在您的 Node 服务上启用反向代理,以将您的 5002 端口路由到 443/80。我还建议使用 AWS 应用程序负载均衡器,因为它会为您提供相同且易于使用 AWS CERTIFICATE MANAGER 安装 SSL 证书。
在 Ec2 中部署 Docker Node 的步骤
- 在您的 EC2 机器上安装 DOCKER - Follow this reference URL
- 在 EC2 机器上克隆您的 NodeJS 代码库,并在您的代码库的根文件夹中添加 Dockerfile。下面我将添加 Dockerfile 示例。
- 在项目的根文件夹中使用此命令构建 docker 镜像
docker build --no-cache -t <your_application_name>:latest .
- 使用给定的命令运行 NodeJs docker 镜像
sudo docker run --name <your_application_name> -itd --net="host"
-e 5002:5002
--restart unless-stopped
<your_application_name>:latest;
现在您可以在 <your_instance_public_ip>:5002
上开始使用该应用程序了,确保在安全组入站访问中开启5002端口。
在这两者之间,我在这里添加了一个引用链接,以使用 Aws ALB 通过反向代理规则隐藏您的 EC2 IP 地址和应用程序端口号。
https://www.clickittech.com/devops/deploy-nodejs-app-to-aws/
NODEJS 应用程序的 DOCKERFILE 示例
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
关于javascript - 如何在 AWS EC2 Ubuntu 免费套餐上托管 Node.js 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71381123/