如何在不同的端口暴露一些 NestJS 应用路由
How to expose in different ports some of the NestJS application routes
我有一个在一个特定端口提供服务的 NestJS 应用程序,但我需要使用其他端口公开一些路由(例如 Prometheus metrics /metrics)。
是否可以在 NestJS 应用程序中执行此操作?
是的,您可以,只需分别实例化应用程序模块即可。 (我假设您的应用程序是按模块组织的)。
这是一个简短的例子:
async function bootstrap() {
// module with the selected endpoints
const firstApp = await NestFactory.create(FirstAppModule);
await firstApp.listen(3001);
// module with different endpoints
const secondApp = await NestFactory.create(SecondAppModule);
await secondApp.listen(3002);
}
P.S。我不建议 运行 在同一个节点进程上使用多个服务器,因为它会影响性能,并且还会使监视和管理它们的生命周期变得更加困难。为此,我建议使用像 pm2 这样的流程管理器。
我有一个在一个特定端口提供服务的 NestJS 应用程序,但我需要使用其他端口公开一些路由(例如 Prometheus metrics /metrics)。
是否可以在 NestJS 应用程序中执行此操作?
是的,您可以,只需分别实例化应用程序模块即可。 (我假设您的应用程序是按模块组织的)。
这是一个简短的例子:
async function bootstrap() {
// module with the selected endpoints
const firstApp = await NestFactory.create(FirstAppModule);
await firstApp.listen(3001);
// module with different endpoints
const secondApp = await NestFactory.create(SecondAppModule);
await secondApp.listen(3002);
}
P.S。我不建议 运行 在同一个节点进程上使用多个服务器,因为它会影响性能,并且还会使监视和管理它们的生命周期变得更加困难。为此,我建议使用像 pm2 这样的流程管理器。