核心内容摘要
体验比迅雷强N倍的下载神器Qbittorrent,多客户端部署指南与安卓APP!
Qwen
B开源大模型实战Clawdbot Web网关支持HTTPS反向代理配置
为什么需要HTTPS反向代理——从本地调试到生产部署的关键一步你刚跑通Qwen
B用Ollama在本地启动了服务Clawdbot也能连上8080端口正常对话——这很酷。
但当你想把Chat平台分享给同事、客户或者嵌入到公司官网时浏览器地址栏赫然出现“不安全”警告API请求被拦截前端报错Mixed Content……问题来了本地能跑线上却走不通。
这不是模型的问题而是网络架构的必经关卡。
Clawdbot作为Web网关本身不内置HTTPS能力Ollama默认只暴露HTTP接口而现代浏览器、企业防火墙、甚至微信内嵌WebView都强制要求HTTPS通信。
这时候反向代理就不是“可选项”而是“上线通行证”。
本文不讲抽象原理只做一件事手把手带你把Clawdbot Qwen
B这套组合从HTTP本地服务升级为可对外提供服务的HTTPS Web网关。
全程基于真实部署路径所有命令可复制、所有配置可验证、所有坑我都踩过。
你不需要懂TLS证书生成细节也不用研究Nginx源码——只需要理解三件事流量怎么从域名走到你的Clawdbot证书怎么自动续期不掉链Ollama后端如何安全地被代理而不暴露端口。
接下来我们从环境准备开始一环扣一环把这条HTTPS链路真正跑通。
环境准备与服务拓扑确认在动手配置前请先确认你的当前部署状态是否符合预期。
这不是形式主义而是避免后续502/504错误的根本前提。
1 当前服务状态自查清单请依次执行以下检查确保每项都返回预期结果#
检查Ollama是否运行且Qwen
B已加载 ollama list | grep qwen3:32b # 应输出类似qwen3:32b latest
2
4GB ... #
检查Ollama API是否可访问本地测试 curl -s http://localhost:11434/api/tags | jq -r .models[].name | grep qwen3 # 应输出qwen3:32b #
检查Clawdbot是否监听8080端口默认Web网关端口 lsof -i :8080 | grep LISTEN # 应显示clawdbot进程正在监听 #
验证Clawdbot能否调通Ollama关键 curl -s -X POST http://localhost:8080/v1/chat/completions \ -H Content-Type: application/json \ -d { model: qwen3:32b, messages: [{role: user, content: 你好}] } | jq -r .choices[0].message.content | head -c 20 # 应返回类似你好很高兴见到你...注意如果第4步失败说明Clawdbot与Ollama之间的内部代理尚未打通。
请先回退检查Clawdbot配置中的OLLAMA_BASE_URLhttp://host.docker.internal:11434Docker环境或http://localhost:11434宿主机直连确保网络可达。
2 明确服务拓扑关系整个链路不是线性串联而是分层代理。
理解这个结构才能精准配置每一层用户浏览器 ↓ HTTPS443端口 Nginx反向代理 TLS终止 ↓ HTTP内部纯文本 Clawdbot Web网关8080端口 ↓ HTTP内部纯文本 Ollama API11434端口 ↓ Qwen
B模型推理关键点在于TLS只在最外层生效Nginx解密HTTPS后内部全部走HTTP既降低开销又避免Ollama/Clawdbot重复处理加密Clawdbot的8080端口绝不直接暴露到公网它只接受来自Nginx的
127.
0.
1请求Ollama的11434端口必须限制访问范围仅允许Clawdbot所在IP访问下文会给出iptables规则。
这个分层设计兼顾了安全性、性能和可维护性。
Nginx反向代理配置从HTTP到HTTPS的落地实现我们选用Nginx作为反向代理不是因为它最强而是因为它最稳、文档最全、社区支持最成熟。
下面的配置已通过Clawdbot v
2.
1 Qwen
B实测验证。
1 安装与基础配置在Ubuntu/Debian系统上执行sudo apt update sudo apt install -y nginx certbot python3-certbot-nginx sudo systemctl enable nginx sudo systemctl start nginx然后创建Clawdbot专用配置文件sudo tee /etc/nginx/sites-available/clawdbot-https EOF upstream clawdbot_backend { server
127.
0.
1:8080; } server { listen 80; server_name chat.yourdomain.com; # 替换为你的真实域名 return 301 https://$server_name$request_uri; } server { listen 443 ssl http2; server_name chat.yourdomain.com; # 同上必须一致 # SSL证书由certbot自动生成暂留空位 ssl_certificate /etc/letsencrypt/live/chat.yourdomain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/chat.yourdomain.com/privkey.pem; # 推荐的安全头 add_header Strict-Transport-Security max-age31536000; includeSubDomains always; add_header X-Frame-Options DENY; add_header X-Content-Type-Options nosniff; # 关键WebSocket支持Clawdbot流式响应必需 proxy_http_version
1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; 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 $scheme; # 超时调优Qwen
B生成较长响应需更长时间 proxy_connect_timeout 300; proxy_send_timeout 300; proxy_read_timeout 300; location / { proxy_pass http://clawdbot_backend; proxy_redirect off; } # API路由透传适配OpenAI兼容接口 location /v1/ { proxy_pass http://clawdbot_backend; proxy_redirect off; } } EOF sudo ln -sf /etc/nginx/sites-available/clawdbot-https /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx重要提醒chat.yourdomain.com必须是你已拥有DNS解析权的域名不能是localhost或内网IP此配置默认启用HTTP/2和WebSocket这是Clawdbot流式响应token逐个返回的技术基础proxy_read_timeout 300是为Qwen
B大模型首次响应预留的缓冲时间避免长思考被Nginx中断。
2 自动申请并续期SSL证书使用Let’s Encrypt免费证书一行命令搞定sudo certbot --nginx -d chat.yourdomain.com --non-interactive --agree-tos -m adminyourdomain.com证书申请成功后certbot会自动修改Nginx配置填入ssl_certificate路径。
你只需确认sudo nginx -t sudo systemctl reload nginx curl -I https://chat.yourdomain.com # 应返回 HTTP/2 200且Header中包含 Strict-Transport-Security证书90天自动续期已由systemd timer启用无需额外操作sudo systemctl list-timers | grep certbot # 输出应包含certbot.timer
Clawdbot与Ollama的协同加固配置HTTPS只是入口真正的安全在于后端服务不被越权访问。
Clawdbot作为中间网关必须严格约束其对Ollama的调用权限。
1 Clawdbot配置文件关键项编辑Clawdbot的.env或配置文件如config.yaml确保以下参数明确设置# config.yaml 示例 ollama: base_url: http://
127.
0.
1:11434 # ❗必须是
127.
0.
1禁止
0.
0.
0 timeout: 300 keep_alive: true server: host:
0.
0.
0 # Clawdbot监听所有IP供Nginx访问 port: 8080 cors: origins: [https://chat.yourdomain.com] # ❗精确匹配前端域名为什么base_url必须是
127.
0.
1如果写成http://localhost:11434在Docker容器中会指向容器自身而非宿主机Ollama如果写成http://host.docker.internal:11434则需确保Docker网络配置正确。
最稳妥的方式是在宿主机部署Ollama并让Clawdbot直连
127.
0.
1。
2 锁死Ollama端口访问权限即使Clawdbot只连本地也要防止其他进程意外调用Ollama API。
执行以下iptables规则永久化需保存# 只允许本机
127.
0.
1和Clawdbot所在IP访问11434端口 sudo iptables -A INPUT -p tcp --dport 11434 -s
127.
0.
1 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 11434 -s $(hostname -I | awk {print $1}) -j ACCEPT sudo iptables -A INPUT -p tcp --dport 11434 -j DROP # 保存规则Ubuntu sudo apt install -y iptables-persistent sudo netfilter-persistent save验证效果# 从本机curl应成功 curl -s http://localhost:11434/api/version | jq -r .version # 从其他机器ssh进来curl应超时或拒绝 # curl -s http://your-server-ip:11434/api/version # ❌ 不应返回
全链路验证与
常见问题排查配置完成不等于可用。
必须通过真实请求验证整条链路是否畅通。
1 四层验证法逐层击穿层级验证命令预期结果说明L1HTTPS可达性curl -I https://chat.yourdomain.comHTTP/2 200Strict-Transport-Security头确认Nginx证书工作正常L2网关连通性curl -s https://chat.yourdomain.com/health{status:ok}Clawdbot健康检查接口L3API透传性curl -s https://chat.yourdomain.com/v1/models返回包含qwen3:32b的JSON证明/v1/路径被正确代理L4模型响应性curl -s -X POST https://chat.yourdomain.com/v1/chat/completions -H Content-Type: application/json -d {model:qwen3:32b,messages:[{role:user,content:11}]} | jq -r .choices[0].message.content2终极验证Qwen
B真实响应四层全部通过即表示HTTPS反向代理链路100%可用。
2 高频问题速查表现象可能原因快速修复ERR_CONNECTION_REFUSEDHTTPSNginx未监听443或防火墙拦截sudo ufw allow 443sudo ss -tlnp | grep :443502 Bad GatewayClawdbot未运行或Nginx upstream地址错误sudo systemctl status clawdbot检查/etc/nginx/sites-available/clawdbot-https中server地址504 Gateway TimeoutQwen
B首次响应超时增大Nginxproxy_read_timeout至600或检查Ollama日志是否有OOM浏览器控制台报Blocked loading mixed active content前端JS仍用http://调用API前端代码中将API地址统一改为https://chat.yourdomain.com/v1/...Error: unable to verify the first certificate前端fetch前端未信任自签名证书仅开发环境生产环境务必用Let’s Encrypt等可信CA证书
6.
总结一条可复用、可扩展、可监控的AI网关链路我们完成了什么不是简单加了个HTTPS前缀而是构建了一条生产就绪的AI服务链路安全可控TLS终止在边缘内部HTTP轻量高效Ollama端口被iptables锁死Clawdbot仅接受指定域名CORS稳定可靠Nginx的超时调优、WebSocket支持、HTTP/2启用专为Qwen
B大模型流式响应优化易于运维certbot自动续期、Nginx配置模块化、每层服务独立启停故障可快速隔离面向未来此架构天然支持多模型接入——只需在Clawdbot配置中新增Ollama模型前端无需改任何代码。
下一步你可以→ 将chat.yourdomain.com嵌入企业微信/钉钉应用让客服团队直接调用Qwen
B→ 在Clawdbot中启用RAG插件连接内部知识库打造专属智能助手→ 用PrometheusGrafana监控Nginx请求延迟、Ollama GPU显存、Clawdbot并发连接数实现AI服务可观测。
技术的价值不在于它多炫酷而在于它能否安静、稳定、持续地解决真实问题。
现在你的Qwen