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,此种方式关闭窗口程序就会停止运行,所以只适合测试用。

然后访问接口地址。

【Nest教程】Nest项目配置http和https相关推荐

  1. ASP.NET Core 项目配置 ( Startup ) - ASP.NET Core 基础教程 - 简单教程,简单编程

    ASP.NET Core 项目配置 ( Startup ) - ASP.NET Core 基础教程 - 简单教程,简单编程 原文:ASP.NET Core 项目配置 ( Startup ) - ASP ...

  2. 最新Tomcat安装及配置教程+JavaWeb项目部署

    最新Tomcat安装及配置教程+JavaWeb项目部署 介绍 一.下载安装Tomcat 二.配置环境变量 三.JavaWeb项目发布 四.登录Web查询系统 介绍 此文章为自己在Tomcat配置及项目 ...

  3. PHPMailer使用封装教程:为自己的PHP项目配置邮件功能

    PHPMailer使用封装教程:为自己的PHP项目配置邮件功能 若为获取最佳阅读体验,请移步至本文永久链接:https://xenns.com/posts/1df67ba2/ 开源的PHPMailer ...

  4. apache配置证书后 tomcat无法访问_给你的项目配置个https吧

    1.申请证书 这里我选择的是阿里云的个人免费的证书 因为使用的是内置的Tomcat,所以下载Tomcat类型的 2.配置项目 将证书XXXX.pfx文件放到项目的resources目录,接着修改app ...

  5. SpringBoot简明教程之项目属性配置(二):@ConfigurationProperties与@Value简单比较

    前文回顾 @ConfigurationProperties与@Value简单比较 如何通过@Value来实现注入值 是否支持松散绑定(Relaxed Binding) 是否支持SpEL语法 是否支持J ...

  6. CYQ.Data.ProjectTool 项目配置工具发布(包源码)

    2019独角兽企业重金招聘Python工程师标准>>> 前言: 一直被网友催,说要更新下  CYQ.Data 的枚举生成器,这工具自从V4.5版本之后,就没再发布过新版本,事实上,我 ...

  7. Spring Cloud Alibaba基础教程:Nacos配置的多文件加载与共享配置

    <Spring Cloud Alibaba基础教程>连载中,关注我一起学期!前情回顾: <使用Nacos实现服务注册与发现> <支持的几种服务消费方式> <使 ...

  8. Spring Cloud Alibaba基础教程:Nacos配置的多环境管理

    <Spring Cloud Alibaba基础教程>连载中,关注我一起学期!前情回顾: <使用Nacos实现服务注册与发现> <支持的几种服务消费方式> <使 ...

  9. maven配置junit5_JUnit 5和Selenium –改善项目配置

    maven配置junit5 Selenium是一组支持浏览器自动化的工具和库,主要用于Web应用程序测试. Selenium的组件之一是Selenium WebDriver,它提供客户端库,JSON有 ...

最新文章

  1. DroidPilot 测试脚本详解 (一)
  2. M2 Planning Day3
  3. 安卓案例:网格布局实现计算器界面
  4. Oracle中给表添加主键 外键,给表中添加主键、外键
  5. 服务器pe系统ghost系统安装教程,科技教程:U盘PE启动安装GHOST系统图文教程
  6. R| 混合效应模型,lme4
  7. 业余ACMer笔记·6月第三周补题
  8. kubeedge源码分析
  9. 巩固大一,大二知识 练习计划
  10. html显示svg图片,HTML5/CSS3系列教程:使用SVG图片
  11. 信息系统项目管理师2019年上半年上午试题解析(三)
  12. 考虑单用户计算机上的下列I O操作,操作系统概论自考2016年10月真题
  13. RIDE 访问数据库
  14. MySQL使用MyCat实现分库分表
  15. 单线程+多路IO复用 Redis6多线程
  16. SQL数据分析淘宝用户分析实操
  17. 天星数科首页CSS布局回顾
  18. 在html中怎么插入动态图片,如何在gif中插入图片 动态图片某1帧插入图片并控制显示时间|动态图片中插入图片...
  19. c语言编写程序,输入10个整数,按从小到大的顺序排序后输出,c语言 实验报告10
  20. 好用的前端组件-大数据看板

热门文章

  1. 关于区块链自我主权身份(SSI)的三个主要问题
  2. 射频芯片设计EM仿真(一)
  3. 美能达266i显示服务器iws,办公智能i时代 从柯尼卡美能达bizhub 226i开始
  4. [机缘参悟-83]:如何自我前提应对可能的经-济-危-机?
  5. RS232,RS422,RS485的区别和RS485通讯线缆注意事项
  6. MATLAB | 入门——学习笔记
  7. excel学习-基础日期函数(today+now+year+month+day+date+本月最后一天)
  8. openpyxl模块介绍 ——读取excel表格
  9. python画五角星和六角星程序
  10. 判断一个数的所有因数的个数是偶数还是奇数