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

Azure 节点部署 - 服务不可用 - npm 警告生命周期

谈琦
2023-03-14

我正在使用git将node.js应用部署到Azure应用服务

服务不可用

在应用页面上。在控制台中,它显示

未能加载资源:服务器响应,状态为503(服务暂时不可用)

在部署期间,我收到一个警告:

npm WARN lifecycle The node binary used for scripts is /usr/bin/node but npm is using /opt/nodejs/8.1.0/bin/node itself. Use the `--scripts-prepend-node-path` option to include the path for the node binary npm was executed with.

我在package.json的脚本中包含了这个选项,但是它没有解决这个问题,也许它放在了错误的地方?

"start": "node server/server.js --scripts-prepend-node-path"

我在谷歌上搜索了一个答案,但没能解决。

部署到azure网站时如何npm配置选项(如- scripts-prepend-node-path)?

在环境变量中将WEBSITE_NODE_DEFAULT_VERSION设置为8.1.0没有帮助。我在package.json.中指定了这个节点版本

我无法按照第二个提示的建议执行自定义部署脚本。

我在项目文件夹中本地运行npm配置集脚本-前置-节点-路径true,然后推送,但没有解决它。

其他一些答案表明可能需要扩展应用程序,但 Heroku 免费计划很好地处理了这个应用程序,在 Azure 上我有一个学生计划。

我在日志中加入了一部分:

Detecting node version spec...
Using package.json engines.node value: 8.1.0
Node.js versions available on the platform are: 4.4.7, 4.5.0, 6.2.2, 6.6.0, 6.9.3, 6.10.3, 6.11.0, 8.0.0, 8.1.0.
Resolved to version 8.1.0
Detecting npm version spec...
Using default for node 8.1.0: 5.0.3
NPM versions available on the platform are: 2.15.8, 2.15.9, 3.9.5, 3.10.3, 3.10.10, 5.0.3.
Resolved to version 5.0.3
Running "/opt/nodejs/8.1.0/bin/node" "/opt/npm/5.0.3/node_modules/npm/bin/npm-cli.js" install --production
npm WARN lifecycle The node binary used for scripts is /usr/bin/node but npm is using /opt/nodejs/8.1.0/bin/node itself. Use the `--scripts-prepend-node-path` option to include the path for the node binary npm was executed with.
npm WARN node_code@1.0.0 No description
updated 17 packages in 29.222s
npm WARN node_code@1.0.0 No repository field.
Finished successfully.

在Azure上诊断应用程序导致:

失败的URL 50%的失败来自“/favicon.ico”路径。

如果有人能帮助我,我将不胜感激,我是这种部署的新手。如果我没有提供一些必要的数据,请告诉我。

谢谢你

共有1个答案

龙令
2023-03-14

根据我的理解,这与部署问题无关。503服务不可用错误意味着网站的服务器现在根本不可用。此问题通常是由应用程序级别问题引起的,例如:

  • 请求需要很长时间
  • 使用高内存/CPU的应用程序
  • 应用程序由于异常而崩溃

可以查看 Azure 的官方文档,以排查 Azure Web 应用中的“502 错误网关”和“503 服务不可用”的 HTTP 错误。

 类似资料:
  • 本文向大家介绍Android 服务的生命周期,包括了Android 服务的生命周期的使用技巧和注意事项,需要的朋友参考一下 示例 服务生命周期具有以下回调 onCreate() : 在首次创建服务以设置您可能需要的初始配置时执行。仅在服务尚未运行时才执行此方法。 onStartCommand() : 每次执行startService()都由另一个组件(例如Activity或BroadcastRec

  • 跨容器的应用编排服务可以帮助您创建并管理新一代的可移植的分布式应用程序,这些应用程序是由独立且互通的 Docker 容器快速组合而成,他们有动态的生命周期,并且可以在任何地方以可扩展的方式运行。Stack 是用一个 YAML 文件来描述容器配置和依赖的,这个描述文件完全兼容 Docker Compose 的语法。通过在创建 Stack 的时候指定自有主机集群,Stack 包含的容器会以合理的顺序被

  • 配置keepalived服务 在每个seafile后端节点上安装和配置 keepalived 来实现浮动 IP 地址。 CentOS 7: yum install keepalived -y 假设配置了两个seafile后台任务节点:background1、background2 在background1上修改 keepalived 配置文件(/etc/keepalived/keepalived.

  • 问题内容: 我已经编写了一个Node.js应用程序,我希望它可以在我们的生产机器上运行。这似乎是一个很普遍的要求,但我找不到合适的解决方案。是否存在用于部署生产Node.js应用程序的既定解决方案? 该应用程序很简单(<100 LOC),但是需要非常高效,可靠并且可以连续运行数年而无需重新启动。它将在大型站点上运行,每秒有数十个连接。(该应用程序不用作网络服务器,它只有JSON API) 这是我考

  • kubernetes Node 节点包含如下组件: flanneld docker kubelet kube-proxy 使用的变量 本文档用到的变量定义如下: $ # 替换为 kubernetes master 集群任一机器 IP $ export MASTER_IP=10.64.3.7 $ export KUBE_APISERVER="https://${MASTER_IP}:6443" $

  • kubernetes master 节点包含的组件: kube-apiserver kube-scheduler kube-controller-manager 目前这三个组件需要部署在同一台机器上: kube-scheduler、kube-controller-manager 和 kube-apiserver 三者的功能紧密相关; 同时只能有一个 kube-scheduler、kube-cont

  • Kubernetes node节点包含如下组件: Flanneld:参考我之前写的文章Kubernetes基于Flannel的网络配置,之前没有配置TLS,现在需要在service配置文件中增加TLS配置,安装过程请参考上一节安装flannel网络插件。 Docker1.12.5:docker的安装很简单,这里也不说了,但是需要注意docker的配置。 kubelet:直接用二进制文件安装 kub

  • kubernetes master 节点包含的组件: kube-apiserver kube-scheduler kube-controller-manager 目前这三个组件需要部署在同一台机器上。 kube-scheduler、kube-controller-manager 和 kube-apiserver 三者的功能紧密相关; 同时只能有一个 kube-scheduler、kube-cont