开发个人Ollama-Chat–9 Frp穿透
背景
问题:“本地运行了一台服务器,专门跑大模型服务openui-backend-go
,使用nginx
暴漏服务端口
。在aliyun
上购买了一台低配 2 Cores, 2G 的服务器esc
实例,能否通过 域名
绑定aliyun
服务器,将本地服务器运行的openui-backend-go
暴漏到公网,方便其他人使用?”
答案:内网穿透 Frp
服务,FRP(Fast Reverse Proxy)是一种内网穿透工具,它允许你将内网中的服务暴露给公网,从而实现远程访问。
架构
服务流程梳理
服务 | 服务部署 | 端口 | 协议 | 备注 |
---|---|---|---|---|
Open-webUI | Cloudflare | https | 自定义域名https://openui-svelte-build.pages.dev | |
Frps | aliyun | 8443 | https | |
Frpc | 本地 | 8443 | https | |
openui-backend-go | 本地 | 8443 | https | nginx 暴漏端口 |
Frp 服务部署
frps 服务端
docker-compose.yaml
version: '3'
services:
frps:
image: eilinge/frps
ports:
- "7000:7000"
- "8080:8080"
- "17500:17500"
- "8443:8443"
volumes:
- ./frps.ini:/etc/frp/frps.ini
- /etc/ssl/certs:/etc/ssl/certs
container_name: frps
frps.ini
[common]
bind_port = 7000
token = *******
vhost_http_port = 8080
dashboard_port = 17500
vhost_https_port = 8443
dashboard_user = ****
dashboard_pwd = ******
tcp_mux = true
max_pool_count = 10
ssl_enable = true
ssl_cert_file = /etc/nginx/etc/cert/gpt-oai.icu.pem
ssl_key_file = /etc/nginx/etc/cert/gpt-oai.icu.key
frpc 客户端
docker-compose.yaml
version: '3'
services:
frpc:
image: eilinge/frpc
ports:
- 8080:8080
- 7443:7443
volumes:
- ./frpc.ini:/etc/frp/frpc.ini
container_name: frpc
network_mode: host
frpc.ini
[common]
server_addr = "aliyun esc ip"
server_port = 7000
token = *******
[service1] # 通过webui访问本地web服务
type = https
local_ip = "本机ip"
local_port = 8443
remote_port = 8443
custom_domains = chat.gpt-oai.icu # 域名dns绑定
查看frp服务是否运行正常,代理服务配置
需要注意的点
-
aliyun
服务器的安全组
策略开启相关接口 -
ssl
证书需要等域名备案
通过,才能申请 -
域名
需要记录到cloudflare
DNS
项目地址
jackwillsmith/go-chatgpt-env: go chatgpt env deploy (github.com)
jackwillsmith/openui-svelte-build (github.com)