背景
阿里云计算巢是一站式软件云化平台,服务商可以在计算巢将三方软件做成SaaS或PaaS服务。ChatGPT Next WEB是一个平台 ChatGPT WebUI应用。我们将ChatGPT Next WEB社区版本在发布成了一个私有化部署服务,用户可以在自己的阿里云账号下部署ChatGPT Next WEB网站。
在最初的几个版本里,部署完服务后,服务实例会输出一个公网访问地址,点击后在浏览器打开WebUI网站。
开启公网带来的问题
ChatGPT Next WEB是需要配置OpenAI API Key来访问的。每次问答访问OpenAI会产生费用。部署此服务的人大部分是个人用户,开启公网访问后任何人都可以访问网站,带来了以下问题:
- 网站的安全性靠ChatGPT Next WEB的Web访问密码来保证。如果此软件发现安全漏洞,可能会被公网恶意使用,产生大量费用
- 如果网站被DDoS,可能会产生流量费用
- ChatGPT Next WEB默认部署是没有HTTPS保护的,部署域名、SSL证书比较麻烦还费钱,个人开发者也不想弄
如何解决
在最新版本的服务里,我们借助计算巢的WEB安全代理功能解决了这个问题。只需两个步骤就将此服务转变为无公网WEB服务:
- 将服务的输出有公网地址改成VPC私网地址,计算巢控制台自动展示了“安全代理直接访问”的入口
- 将安全组里ChatGPT Next WEB监听的3000端口,只对100.104.0.0/16私网网段(计算巢WEB安全代理使用的网段)开放。因此阻断了所有来自公网的访问。
现在,用户部署完成后看到的WebUI地址是一个VPC私网地址。无法在浏览器直接访问,只有在计算巢控制台,点击”安全代理直接访问“,才会打开一个新浏览器窗口访问。
可以看到,除了访问的地址变成了计算巢安全代理的地址,页面浏览体验和公网访问是完全一致的。
总结
我们比较一下公网WEB服务和无公网WEB服务的差异
类别 |
公网WEB服务 |
无公网WEB服务 |
访问入口 |
公网地址,任何用户都可以访问 |
计算巢控制台上的Web安全代理入口 |
安全性 |
由于服务暴露面广,安全性靠服务本身来保证。容易受攻击 |
由于无公网访问,不会遭到公网攻击。Web安全代理需要登录阿里云账号使用,安全性由阿里云来保证 |
费用 |
产生公网流量费用,有DDos风险 |
无公网费用 |
网站体验 |
原生体验 |
和原生体验一致 |
面向场景 |
适合面向大众的公共Web服务 |
适合个人使用和团队内部使用的Web服务、软件安全性较弱或者无安全防护的场景 |
您可以参照《使用计算巢安全代理功能消除公网依赖》来做一个无公网WEB服务,非常简单。