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. 【攻克Android (6)】事件
  2. Android开发工具(Android Studio)
  3. Android 多分辨率机器适配
  4. Get source (Android Open Source Projec
  5. Android(安卓)make sdk 错误解决方案
  6. 【android编程】 第六讲-Android菜单实践
  7. Android面试题精选:讲一讲 Android 的事件
  8. Android中SQLite操作示例
  9. Mac 10.12 快速下载 Android 源码
  10. Android关于SD卡的读写操作及固定图片大