NestJS で http, https server を2つ同時に起動する方法をご紹介します。
NestJS でローカル環境で SSL/TLS が必要なケースに遭遇したため https server を起動するサンプルコードを書いてみました。
localhost-key.pem, localhost.pem などの ローカル環境用 SSL/TLS サーバ証明書は mkcert で発行しました。
NestJS で http, https server を2つ同時に起動する方法は以下の通りです。
import { NestFactory } from '@nestjs/core';
import { ExpressAdapter } from '@nestjs/platform-express';
import { AppModule } from './app.module';
import * as express from 'express';
import * as fs from 'fs';
import * as http from 'http';
import * as https from 'https';
async function bootstrap() {
const privateKey = fs.readFileSync('/your_path/localhost-key.pem', 'utf8');
const certificate = fs.readFileSync('/your_path/localhost.pem', 'utf8');
const httpsOptions = { key: privateKey, cert: certificate };
const server = express();
const app = await NestFactory.create(AppModule, new ExpressAdapter(server));
await app.init();
http.createServer(server).listen(3000);
https.createServer(httpsOptions, server).listen(443);
}
bootstrap();
以上、NestJS で http, https server を2つ同時に起動するサンプルコードを書いた、現場からお送りしました。