ubuntu服务器部署Lucky反向代理

背景

笔者申请了华为云服务器,搭建了ubuntu系统,部署了一些云服务,因安全原因需要搭建反向代理,以实现HTTPS访问。

可选的反向代理一般用nginx,考虑到笔者有图形化配置诉求,且nginx功能单一,不支持DDNS,端口转发这样常见的运维工具,所以笔者倾向于安装Linux面板。

笔者尝试安装宝塔面板,发现购买的华为云服务器配置太低端(2C2G),资源占用过多,故寻求其他解决方案,自然就想到了Lucky,加上有路由器上部署Lucky的经验,所以,最终就考虑使用Lucky

官方文档

教程文档可以从官方网站获得 :www.lucky666.cn

安装Lucky

在Ubuntu上安装Lucky可以通过官方提供的安装脚本完成。运行以下命令下载并执行安装脚本:

curl -sSL https://raw.githubusercontent.com/gdy666/lucky/main/install.sh | sudo bash

但安装后出现仅支持ipv6访问的问题,所以,采用docker部署:

docker run -d --name lucky \
 --restart=always \
 --publish 16601:16601 \
 --publish  30000-30005:30000-30005 \
 -v /opt/lucky:/goodluck \
gdy666/lucky

安装完成后,Lucky会自动以容器的方式启动

其中16601是lucky的后台管理界面端口

30000-30005是笔者打算暴露到公网的端口,也是打算做反向代理的公网端口,需要打开云服务器的防火墙规则,否则无法暴露到公网

假设笔者在3000端口部署了一个服务,先配置华为云的3000端口防火墙,然后用http://云服务器ip:3000,确保访问没有问题;然后关闭华为云的3000端口防火墙

然后在lucky中添加一条web服务规则,把http://公网IP:30000,反向代理到http://172.17.0.1:3000/

其中30000是外网端口,因为构建lucky容器时已经做了端口映射,所以lucky容器已经可以接收到来自于外网30000端口的请求。

因为创建容器默认是使用桥接网络,所以docker会给容器分配一个172.17.0.0/16网段的ip,默认网关是172.17.0.1,所以172.17.0.1这个地址指向了宿主机,http://172.17.0.1:3000/这个地址就是笔者在宿主机上部署的web服务,172.17.0.1这个地址可以通过inspect命令获取

docker inspect 容器名称

注意:在openwrt这类路由系统上,容器可以直接访问宿主的端口,Ubuntu不行,需要添加防火墙规则:

sudo ufw allow from 172.17.0.0/16 to any port 3000

这样就实现了在docker容器中把外网30000端口请求反向代理到了宿主机的3000端口上,amazing!

下一步:添加https证书,要求外网的30000请求必须走TLS认证

下一步:在lucky中再添加一条规则,把http://公网IP:30000重定向到https://公网IP:30000

至此,教程结束,Enjoy!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值