Egg+nginx+Sunny-Ngrok本地部署Https环境

最近使用 Egg 写了一个简单的接口,因为要在小程序上测试,所以本地部署一个 Https 环境,使用 Sunny-Ngrok 做内网穿透,官方教程看的不是很明白,踩了不少坑,所以完整的记录一下整个流程。

流程如下:

1、买域名,申请免费证书(本文以腾讯云为例)
2、部署证书到本地的 nginx 服务器上
3、启动 Sunny-Ngrok 隧道,访问本地服务
4、nginx 转发本地的egg接口

完成以上四步后,可以实现再浏览器访问https连接后,通过 Sunny-Ngrok 可以访问本地的某个地址,然后通过 nginx 代理到 Egg 开启服务的地址。

1 买域名

在这里插入图片描述
按照腾讯云的提示填写资料,备案后,等待域名的服务状态和DNS状态变成正常。
在这里插入图片描述

2 域名解析到 Sunny-Ngrok 的服务器

再上图的解析中可以按照如下填写一条记录,其中记录值要写 Sunny-Ngrok 的服务器。添加完成后,可以点击灰色的 SSL 去申请一个证书。
在这里插入图片描述
证书申请后需要验证才能使用,腾讯云会自动再我的域名-解析中填写,如果没有可以手动填写来完成验证。

3 部署证书到本地的 nginx 服务器上

在官网下载nginx
在这里插入图片描述
ps:选择stable version下载就行,一开始下错了版本,导致运行nginx时候,总是报错nginx: [emerg] unknown directive “listen”,后来又下了最新版才没再报错了。

配置 conf/nginx.conf 文件,https部分配置如下,证书和私钥文件可以在腾讯云下载。

http {
	server {
	    listen 443 ssl; 
	    server_name api.testinging.top; 
	    ssl_certificate 1_api.testinging.top_bundle.crt; // 证书,默认在当前目录
	    ssl_certificate_key 2_api.testinging.top.key; // 私钥,默认在当前目录
	    ssl_session_timeout 5m;
	    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
	    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
	    ssl_prefer_server_ciphers on;
	   
		location / {
			proxy_http_version 1.1;
			proxy_read_timeout 30s;
			proxy_set_header Host $http_host;
			proxy_set_header Connection "";
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header Upgrade $http_upgrade;
			proxy_set_header Connection "upgrade";
			proxy_pass http://127.0.0.1:8000;
		}
	}
}

这样配置的意思是,通过https访问本地443端口后,会转发到8000端口。

使用nginx命令:

./nginx # 启动服务
./nginx -s stop # 关闭服务
./nginx -t # 测试配置文件是否正确
./nginx -s reload # 重新加载

4 开启隧道

Sunny-Ngrok启动教程很详细,这里就只贴一下隧道参数。
在这里插入图片描述
启动好隧道之后,访问https就能看到本地的 Egg 项目啦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值