Nest项目设置http和https服务

一般,我们的项目如果不是有特别需要,是不会去考虑https的,但是在某些情况下,如,你打算把你的程序发布在微信上,就必须配置https,今天我们就结合前面的教程,配置https。证书用的是阿里云的免费证书。

1 证书

我之前申请的是阿里云的免费证书,但是现在我没有找到,有别家证书更好了。

然后下载证书

阿里提供了Tomcat、Apache、Nginx等,这里我们用的是Apache的,下载解压之后里面有三个文件

这里面三个文件都需要用到,我刚开始配置的时候,网上的教程都是写只配置两个,实际我在运行以后,发现并不能正常访问。

2 项目配置

我们只需要配置main.ts文件即可,内容如下:

import * as fs from 'fs';import * as http from 'http';import * as https from 'https';import * as express from 'express';import { NestFactory } from '@nestjs/core';import { ValidationPipe } from '@nestjs/common';import {  NestExpressApplication,  ExpressAdapter,} from '@nestjs/platform-express';import { AppModule } from './app.module';// 过滤器import { HttpExceptionFilter } from './filters/http-exception.filter';// 自定义拦截器import { TransformInterceptor } from './interceptor/transform.interceptor';// api文档插件import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger';const httpsOptions = {  ca: fs.readFileSync('/opt/nestjs-api/src/ssl/nmwap.com_chain.crt'),  key: fs.readFileSync('/opt/nestjs-api/src/ssl/nmwap.com.key'),  cert: fs.readFileSync('/opt/nestjs-api/src/ssl/nmwap.com_public.crt'),};async function bootstrap() {  const server = express();  const app = await NestFactory.create(AppModule, new ExpressAdapter(server));  app.useGlobalFilters(new HttpExceptionFilter());  app.useGlobalInterceptors(new TransformInterceptor());  app.useGlobalPipes(new ValidationPipe()); //开启一个全局验证管道  const options = new DocumentBuilder()    .setTitle('接口文档')    .setDescription('系统接口文档') // 文档介绍    .setVersion('1.0.0') // 文档版本    .build();  // 为了创建完整的文档(具有定义的HTTP路由),我们使用类的createDocument()方法SwaggerModule。此方法带有两个参数,分别是应用程序实例和基本Swagger选项。  const document = SwaggerModule.createDocument(app, options);  SwaggerModule.setup('/api', app, document);  await app.init();  http.createServer(server).listen(3000);  https.createServer(httpsOptions, server).listen(443);}bootstrap();

这里面是全部的,httpsOptions里面的文件路径是你项目证书的路径,我这里放在opt下,打算把项目部署到ubuntu上。


3 运行项目

如果不会部署,那简单,你的项目文件直接放到服务器上,然后build,用node运行下main.js,此种方式关闭窗口程序就会停止运行,所以只适合测试用。

然后访问接口地址。

©著作权归作者所有:来自51CTO博客作者mb5fd86dae5fbf6的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. Vue项目中Axios的简单封装
  2. 【Nest教程】Nest项目部署在ubuntu服务器
  3. 【Nest教程】Nest项目用户密码加密
  4. 【Nest教程】基于Nest初始化Web API项目
  5. 【Nest教程】Nest项目集成JWT接口认证
  6. 【Nest教程】自定义拦截器处理处理响应数据
  7. 【Nest教程】为项目增加个自定义过滤器
  8. 【Nest教程】Nest项目配置邮件服务器,实现发送邮件
  9. 【Nest教程】Nest项目增加定时任务

随机推荐

  1. 干货丨时序数据库DolphinDB横截面引擎教
  2. 一步步教你用 WebVR 实现虚拟现实游戏[每
  3. 用惰性加载优化 React 程序[每日前端夜话
  4. 聊聊我的 Java 自学之路
  5. 用JavaScript实现插入排序[每日前端夜话0
  6. Facebook的DevOps案例研究与相关工具[每
  7. Linux基础-14day-Linux系统服务管理
  8. Chrome 74 带来的新功能[每日前端夜话0x6
  9. 杀手级的TypeScript功能:const断言[每日前
  10. 13个帮你提高开发效率的现代CSS框架[每日