当前位置: 首页 > 知识库问答 >
问题:

将节点.js应用程序部署到亚马逊 Linux 2 上的弹性豆茎时出错

贺轶
2023-03-14

我正在尝试在弹性豆茎上有一个节点js应用程序。在亚马逊 Linux 映像上,环境被创建并运行平稳。为了完成它,我遵循了AWS文档本身中的说明。它适用于单个实例。此外,使用Nginx并按照此处的信息终止了实例上的HTTPS该应用程序的根目录包含:

    <李>。ebextensions < li>index.js < li>package.json

通过按照 AWS 文档中给出的所有这些说明逐步创建环境并成功部署应用程序(对于 Amazon Linux 映像)。

但是,一直试图将其部署到AmazonLinux2.And部署失败,环境的健康状态为“DEGRADED”。

eb 引擎的一个片段.log:

[INFO] 
> grpc@1.24.3 install /var/app/staging/node_modules/grpc
> node-pre-gyp install --fallback-to-build --library=static_library

Failed to execute '/opt/elasticbeanstalk/node-install/node-v10.15.1-linux-x64/bin/node /opt/elasticbeanstalk/node-install/node-v10.15.1-linux-x64/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --library=static_library --module=/var/app/staging/node_modules/grpc/src/node/extension_binary/node-v64-linux-x64-glibc/grpc_node.node --module_name=grpc_node --module_path=/var/app/staging/node_modules/grpc/src/node/extension_binary/node-v64-linux-x64-glibc --napi_version=3 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v64' (1)

.log的网页片段:

Sep 13 12:55:31 ip-172-31-1-73 web: > nodetryapp@1.0.0 start /var/app/current
Sep 13 12:55:31 ip-172-31-1-73 web: > node index.js
Sep 13 12:55:31 ip-172-31-1-73 web: [DEFAULT]
Sep 13 12:55:32 ip-172-31-1-73 web: events.js:174
Sep 13 12:55:32 ip-172-31-1-73 web: throw er; // Unhandled 'error' event
Sep 13 12:55:32 ip-172-31-1-73 web: ^
Sep 13 12:55:32 ip-172-31-1-73 web: Error: listen EACCES: permission denied 0.0.0.0:80
Sep 13 12:55:32 ip-172-31-1-73 web: at Server.setupListenHandle [as _listen2] (net.js:1260:19)

nginx/error.log中的代码片段:

 2020/09/13 13:06:31 [alert] 4023#0: *1021 1024 worker_connections are not enough while connecting to upstream, client: 127.0.0.1, server: , request: "GET /hudson HTTP/1.1", upstream: "http://127.0.0.1:80/hudson", host: "*SOME IP ADDRESS*"

要在 Amazon Linux 2 弹性豆茎上部署应用程序,应用程序的根文件夹由以下文件/文件夹组成:

    <李>。EB extensions/https-instance . config和。EB extensions/https-instance-single . config <李>。platform/nginx/conf . d/extendnginx . conf(为了扩展nginx配置以便在实例中终止https) < li>index.js < li>package.json

实例类型是单个实例t2.micro。

共有2个答案

蔚弘量
2023-03-14

是的,现在它正在工作!因此,按照@Raul巴雷托在上面的答案中所说的话。进行了以下更改:“port”环境变量现在设置为 8080。在 .platform/nginx/conf.d/extendnginx.conf 文件中添加了

upstream nodejs {
    server 127.0.0.1:8080;
} 

而不是

upstream nodejs {
    server 127.0.0.1:80;
} 
夏雅志
2023-03-14

您无法在端口 80 和 443 上运行应用程序,因为这些端口是 Beanstalk AMI 中 Nginx/Apache 服务独有的。不要使用这些端口,而要对 HTTP 连接使用 8080,对 HTTPS 连接使用 8443。

 类似资料:
  • 我正在尝试从Jenkins工作以编程方式部署到Amazon Elastic Beanstek。在我的开发机器上,这很简单: 在Jenkins,它应该像配置以下构建命令一样简单: 但是,这将失败,并显示以下跟踪信息: 不清楚为什么会发生这种情况,因为当我在项目的本地副本上运行上述操作时,它工作正常。 错误消息似乎没有多大帮助。不清楚为什么在Jenkins的机器上找不到eb-cli。 因此,再次总结我

  • 我是AWS的新手。试图将一个简单的flask应用程序部署到AWS。我没有问题,直到我包括熊猫套餐。 如果有人成功地部署了使用pandas到AWS的flask应用程序,请给出最好的方法。谢谢你。

  • 我有一个用Python 2.7/Tornado编写的服务器,我正在尝试将其部署到AWS上。我遇到了AWS弹性豆茎,它看起来是一种非常方便的方法来部署我的代码。 txt文件中有一个tornado==4.4.2的条目。 我尝试添加一些日志语句来写入外部文件,但该文件没有被创建,这可能意味着应用程序甚至没有启动。 如果有人能提供一些在AWS-EB上部署龙卷风应用程序的步骤,或者我应该如何开始解决这个问题

  • 我试图在AWS Elastic Beanstek上部署一个geodjango应用程序。配置是64位AmazonLinux2017.09 v2.6.6运行Python 3.6。尝试部署时我收到此错误: 如何安装所需的软件包?我通读了在AWS Beanstalk或EC2实例中使用GeoDjango支持设置Django,但是我仍然遇到问题。我的ebextensions目前看起来像:

  • 我正在将我的第一个应用程序(Flask)部署到EB,遇到了一个障碍。使用PostgreSQL需要安装psycopg2,但我不知道如何让它运行。 我在这篇文章(Amazon Elastic Beanstalk上的Psycopg2)和这篇文章中都看到了(https://realpython.com/blog/python/deploying-a-django-app-to-aws-elastic-be

  • 我正在尝试将Symfony应用程序部署到Elastic Beanstek,但看起来URL重写不起作用。 使用在64位Amazon Linux 2上运行的平台PHP 7.4,文档根目录是/public。 .platform/nginx/conf.d/nginx.conf.conf 但是服务器找不到的路径(但适用于 如果我删除的注释标记(#),则无法找到它。 我在< code >/var/log/e