【发布时间】:2019-12-30 16:06:47
【问题描述】:
我只想让 Angular 永远运行,直到我手动杀死它所以我只是使用下面的命令在 linux 框中将它作为服务运行
nohup ng serve --host {xyz.com} &
它将使应用程序启动并运行并创建 nohup.out 文件,但是一旦腻子超时,会话就会消失。
谁能带领我实现这个目标?
【问题讨论】:
标签: node.js angular linux angular-cli
我只想让 Angular 永远运行,直到我手动杀死它所以我只是使用下面的命令在 linux 框中将它作为服务运行
nohup ng serve --host {xyz.com} &
它将使应用程序启动并运行并创建 nohup.out 文件,但是一旦腻子超时,会话就会消失。
谁能带领我实现这个目标?
【问题讨论】:
标签: node.js angular linux angular-cli
您不应该在生产中使用 ng serve,您需要做的是构建您的 Angular 应用程序并在真实服务器(如 nginx 或 apache)中使用类似 proxy_pass 的东西来告诉它为您的 Angular 静态应用程序提供服务文件(index.html + js 包)
在服务器上运行带有ng serve 的应用程序会冒很大的风险,因为它背后的 http 服务器不安全!
【讨论】:
使用 systemd 等生产就绪工具来运行您的 nodejs 应用程序可能是个好主意 - 本手册可以提供帮助:
https://nodesource.com/blog/running-your-node-js-app-with-systemd-part-1/
在您的情况下,如果您的 ng 应用程序保存在 /opt/app 目录中,则单元文件将是这样的
[Unit]
Description=hello_env.js - making your environment variables rad
Documentation=https://example.com
After=network.target
[Service]
Environment=NODE_PORT=3001
Type=simple
User=ubuntu
Workdir=/opt/app
ExecStart=/usr/bin/node /opt/app/.bin/ng serve --host {xyz.com}
Restart=on-failure
[Install]
WantedBy=multi-user.target
在第二部分 (https://nodesource.com/blog/running-your-node-js-app-with-systemd-part-2/),他们解释了如何启动一些应用程序实例并在它们前面使用 nginx 作为负载平衡器和支持 HTTPS 的反向代理
【讨论】: