简介

部署完openclaw 有两个问题需要解决,一是我需要进行公网访问,但是我的公网还要输入端口,所以我准备使用cdn,二是大模型的token太贵了,所以我准备使用codingplan,选了个最便宜的百度codingplan(踩坑,百度不支持图片输入,后面又换了火山引擎)

NGINX

配置cdn 之前需要配置一下nginx, 配置参考:

# ========== 第一个 server 块:HTTPS 服务(核心) ==========
server {
    # 监听 18781 端口的 HTTPS(避开 OpenClaw 的 18789)
    listen 18781 ssl http2;
    listen [::]:18781 ssl http2;
    
    # 统一为域名
    server_name 服务器的域名,不是CDN的域名;  

    # SSL 证书配置
    ssl_certificate /root/zs/91lxs.top/fullchain.pem;
    ssl_certificate_key /root/zs/91lxs.top/privkey.pem;

    # SSL 基础配置
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_session_timeout 1d;
    ssl_session_cache shared:SSL:10m;
    ssl_session_tickets off;
    ssl_stapling off;
    ssl_stapling_verify off;

    # OpenClaw 反向代理 + WebSocket 转发
    location / {
        proxy_pass http://127.0.0.1:18789; //确认你的openclaw 使用的是这个端口

        # WebSocket 核心配置
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        
        # 自定义端口适配
        proxy_set_header Host $host:$server_port;
        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;
        proxy_set_header X-Forwarded-Port $server_port;
        
        # 超时配置
        proxy_connect_timeout 60s;
        proxy_send_timeout 3600s;
        proxy_read_timeout 3600s;
        
        # 缓冲区配置
        proxy_buffering off;
        proxy_buffer_size 16k;
        proxy_buffers 4 64k;
    }
}

# ========== 第二个 server 块:HTTP 自动跳转 HTTPS(可选) ==========
server {
    listen 18788;
    listen [::]:18788;
    server_name 91lxs.top;
    
    # 跳转到 HTTPS + 18781 端口(修正注释,逻辑正确)
    return 301 https://$host:18781$request_uri;
}

GATEWAY

gateway需要对你的CDN域名进行放行,需要更改openclaw.json文件,配置参考

  "gateway": {
    "port": 18789,
    "mode": "local",
    "bind": "lan",
    "controlUi": {
      "allowedOrigins": [ #这里是你要放行的域名
        "https://91lxs.top",
        "https://openclaw.liyongzheng.fun"
      ],
      "dangerouslyAllowHostHeaderOriginFallback": true,
      "allowInsecureAuth": false,
      "dangerouslyDisableDeviceAuth": true
    },
    "auth": {
      "mode": "token",
      "token": "这里是你自己的token"
    }
  }

添加百度coding plan

需要更改openclaw.json文件,配置参考

{
  "models": {
    "mode": "merge",
    "providers": {
      "baiduqianfancodingplan": {
        "baseUrl": "https://qianfan.baidubce.com/v2/coding",
        "apiKey": "访问此连接:https://console.bce.baidu.com/qianfan/resource/subscribe",
        "api": "openai-completions",
        "models": [
          {
            "id": "qianfan-code-latest",
            "name": "qianfan-code-latest",
            "reasoning": false,
            "input": [#这里面是控制输入方式,现在百度的还不支持图片输入,只有个text
              "text"
            ],
            "cost": {
              "input": 0.0025,
              "output": 0.01,
              "cacheRead": 0,
              "cacheWrite": 0
            },
            "contextWindow": 98304,
            "maxTokens": 65536
          }
        ]
      }
    }
  },
  "agents": {
    "defaults": {
      "model": {
        "primary": "baiduqianfancodingplan/qianfan-code-latest"
      },
      "models": {
        "baiduqianfancodingplan/qianfan-code-latest": {}
      },
      "compaction": {
        "mode": "safeguard"
      },
      "maxConcurrent": 4,
      "subagents": {
        "maxConcurrent": 8
      }
    }
  }
}