当前位置: 首页 > news >正文

AWS Elastic Beanstalk通过单实例配置https

在 AWS Elastic Beanstalk 上提供了多种方式来实现 https,比如通过单实例配置,负载均衡配置等。今天就以 nodejs + express 为例说一下怎么通过单实例配置实现https

创建demo应用

创建一个简单的 nodejs + express 应用 myapp,其中包含两个文件 package.json 和 app.js。

package.json

{"name": "myapp","version": "1.0.0","description": "","main": "index.js","scripts": {"start": "node app.js","dev": "nodemon app.js"},"author": "","license": "ISC","dependencies": {"express": "^4.18.2","nodemon": "^3.0.3"}
}

app.js

const express = require('express');const app = express();const port = process.env.PORT || 3000;app.get("/", (req, res, next) => {res.send("Express Server");
});app.listen(port, () => {console.log(`[server]: Server is running at http://localhost:${port}`);
});

配置https

.ebextensions/https-instance.config

在应用目录下创建 “.ebextensions/https-instance.config” 文件,内容如下

files:# Public certificate/etc/pki/tls/certs/server.crt:mode: "000400"owner: rootgroup: rootcontent: |-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----# Private key/etc/pki/tls/certs/server.key:mode: "000400"owner: rootgroup: rootcontent: |-----BEGIN PRIVATE KEY-----...-----END PRIVATE KEY-----Resources:sslSecurityGroupIngress: Type: AWS::EC2::SecurityGroupIngressProperties:GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]}IpProtocol: tcpToPort: 443FromPort: 443CidrIp: 0.0.0.0/0

其中证书和私钥的内容可以从证书和私钥文件获取。

.platform/nginx/conf.d/https.conf

在应用目录下创建 “.platform/nginx/conf.d/https.conf” 文件,内容如下

server {listen       443 ssl;server_name  localhost;ssl_certificate      /etc/pki/tls/certs/server.crt;ssl_certificate_key  /etc/pki/tls/certs/server.key;ssl_session_timeout  5m;ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;ssl_prefer_server_ciphers   on;location / {proxy_pass              http://localhost;proxy_set_header        Connection "";proxy_http_version      1.1;proxy_set_header        Host            $host;proxy_set_header        X-Real-IP       $remote_addr;proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header        X-Forwarded-Proto https;}
}

部署

在应用目录下将所有元文件打包,然后按照正常应用部署的方式部署就可以了,只是其中 “Capacity -> Auto scaling group -> Environment type” 要选成 “Single instance”。

然后就可以通过 https://xxx.elasticbeanstalk.com/ 访问了。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【STM32 CubeMX】adxl345加速度传感器
  • 面试经典150题 -- 链表 (总结)
  • EasyCaptcha,开源图形验证码新标杆!
  • 软件测试进阶自动化测试流程
  • 人工智能_普通服务器CPU_安装清华开源人工智能AI大模型ChatGlm-6B_001---人工智能工作笔记0096
  • Write operation failed: computed value is readonly问题解决
  • 【小沐学GIS】基于C++QT绘制三维数字地球Earth(OpenGL)
  • VMware还原Windows11 ghost镜像
  • 【leetcode】贪心算法介绍
  • Linux系统安全——iptables相关总结
  • LeetCode_20_简单_有效的括号
  • 个人简历补充
  • 【C++笔记】第一阶段:C++基础入门
  • 算法-矩阵置零
  • Security6.2 中的SpEL 表达式应用(权限注解使用)
  • es6
  • Github访问慢解决办法
  • Java 内存分配及垃圾回收机制初探
  • JS数组方法汇总
  • linux安装openssl、swoole等扩展的具体步骤
  • nginx 负载服务器优化
  • Phpstorm怎样批量删除空行?
  • SpiderData 2019年2月23日 DApp数据排行榜
  • SpriteKit 技巧之添加背景图片
  • 订阅Forge Viewer所有的事件
  • 类orAPI - 收藏集 - 掘金
  • 前端面试题总结
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 使用Gradle第一次构建Java程序
  • 算法-图和图算法
  • 一天一个设计模式之JS实现——适配器模式
  • 正则与JS中的正则
  • PostgreSQL之连接数修改
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • $$$$GB2312-80区位编码表$$$$
  • (LeetCode C++)盛最多水的容器
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (二十三)Flask之高频面试点
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (六)激光线扫描-三维重建
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (四)c52学习之旅-流水LED灯
  • (已解决)什么是vue导航守卫
  • .gitignore
  • .NET 8 跨平台高性能边缘采集网关
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .NET/C#⾯试题汇总系列:⾯向对象
  • .net后端程序发布到nignx上,通过nginx访问
  • .NET设计模式(7):创建型模式专题总结(Creational Pattern)
  • @SpringBootApplication 注解
  • [51nod1610]路径计数