找回密码
 立即注册
CeraNetworksBGVM服务器主机交流IP归属甄别会员请立即修改密码
查看: 51|回复: 5

cf worker 反代某某网页出现这个

[复制链接]

10

主题

147

回帖

674

积分

高级会员

积分
674
发表于 2024-3-18 14:53:47 | 显示全部楼层 |阅读模式
本帖最后由 任播 于 2024-3-18 17:03 编辑

cf worker 反代某某网页出现这个

Error 1101
Worker threw exception

差不多一次正常,一次出现这个。错误率大约50%。有没有大神知道的。
事先说明,访问量很低,远远小于cf的额度。


已解决,换个代码就好了。供大家参考

[ol]
  • addEventListener(
  •   "fetch",event => {
  •      let url=new URL(event.request.url);
  •      url.hostname="abc.def.xyz"; // 修改成自己的节点IP/域名
  •      url.protocol='https'; // 如为http协议请修改为http
  •      let request=new Request(url,event.request);
  •      event. respondWith(
  •        fetch(request)
  •      )
  •   }
  • )[/ol]复制代码
  • 回复

    使用道具 举报

    40

    主题

    76

    回帖

    420

    积分

    中级会员

    积分
    420
    发表于 2024-3-18 14:57:47 | 显示全部楼层
    代码问题啊,讲道理“论坛永久贵宾”是什么啊

    回复

    使用道具 举报

    10

    主题

    147

    回帖

    674

    积分

    高级会员

    积分
    674
     楼主| 发表于 2024-3-18 15:01:39 | 显示全部楼层

    jarmoku 发表于 2024-3-18 14:57

    代码问题啊,讲道理“论坛永久贵宾”是什么啊

    论坛永久贵宾  :  我付了钱买vip,你信不信。

    代码类似于这种

    [ol]
  • // 替换成你想镜像的站点
  • const upstream = 'example.com'
  • // 如果那个站点有专门的移动适配站点,否则保持和上面一致
  • const upstream_mobile = 'example.com'
  • // 你希望禁止哪些国家访问
  • const blocked_region = ['KP']
  • // 禁止自访问
  • const blocked_ip_address = ['0.0.0.0', '127.0.0.1']
  • // 替换成你想镜像的站点
  • const replace_dict = {
  •     '$upstream': '$custom_domain',
  •     '//google.com': ''
  • }
  • //以下内容都不用动
  • addEventListener('fetch', event => {
  •     event.respondWith(fetchAndApply(event.request));
  • })
  • async function fetchAndApply(request) {
  •     const region = request.headers.get('cf-ipcountry').toUpperCase();
  •     const ip_address = request.headers.get('cf-connecting-ip');
  •     const user_agent = request.headers.get('user-agent');
  •     let response = null;
  •     let url = new URL(request.url);
  •     let url_host = url.host;
  •     if (url.protocol == 'http:') {
  •         url.protocol = 'https:'
  •         response = Response.redirect(url.href);
  •         return response;
  •     }
  •     if (await device_status(user_agent)) {
  •         upstream_domain = upstream
  •     } else {
  •         upstream_domain = upstream_mobile
  •     }
  •     url.host = upstream_domain;
  •     if (blocked_region.includes(region)) {
  •         response = new Response('Access denied: WorkersProxy is not available in your region yet.', {
  •             status: 403
  •         });
  •     } else if(blocked_ip_address.includes(ip_address)){
  •         response = new Response('Access denied: Your IP address is blocked by WorkersProxy.', {
  •             status: 403
  •         });
  •     } else{
  •         let method = request.method;
  •         let request_headers = request.headers;
  •         let new_request_headers = new Headers(request_headers);
  •         new_request_headers.set('Host', upstream_domain);
  •         new_request_headers.set('Referer', url.href);
  •         let original_response = await fetch(url.href, {
  •             method: method,
  •             headers: new_request_headers
  •         })
  •         let original_response_clone = original_response.clone();
  •         let original_text = null;
  •         let response_headers = original_response.headers;
  •         let new_response_headers = new Headers(response_headers);
  •         let status = original_response.status;
  •         new_response_headers.set('access-control-allow-origin', '*');
  •         new_response_headers.set('access-control-allow-credentials', true);
  •         new_response_headers.delete('content-security-policy');
  •         new_response_headers.delete('content-security-policy-report-only');
  •         new_response_headers.delete('clear-site-data');
  •         const content_type = new_response_headers.get('content-type');
  •         if (content_type.includes('text/html') && content_type.includes('UTF-8')) {
  •             original_text = await replace_response_text(original_response_clone, upstream_domain, url_host);
  •         } else {
  •             original_text = original_response_clone.body
  •         }
  •         response = new Response(original_text, {
  •             status,
  •             headers: new_response_headers
  •         })
  •     }
  •     return response;
  • }
  • async function replace_response_text(response, upstream_domain, host_name) {
  •     let text = await response.text()
  •     var i, j;
  •     for (i in replace_dict) {
  •         j = replace_dict
  •         if (i == '$upstream') {
  •             i = upstream_domain
  •         } else if (i == '$custom_domain') {
  •             i = host_name
  •         }
  •         if (j == '$upstream') {
  •             j = upstream_domain
  •         } else if (j == '$custom_domain') {
  •             j = host_name
  •         }
  •         let re = new RegExp(i, 'g')
  •         text = text.replace(re, j);
  •     }
  •     return text;
  • }
  • async function device_status (user_agent_info) {
  •     var agents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"];
  •     var flag = true;
  •     for (var v = 0; v  0) {
  •             flag = false;
  •             break;
  •         }
  •     }
  •     return flag;
  • }
  • [/ol]复制代码
  • 回复

    使用道具 举报

    40

    主题

    76

    回帖

    420

    积分

    中级会员

    积分
    420
    发表于 2024-3-18 14:57:00 | 显示全部楼层

    任播 发表于 2024-3-18 15:01

    论坛永久贵宾  :  我付了钱买vip,你信不信。

    代码类似于这种

    我直接复制了你的代码,啥问题都没有

    回复

    使用道具 举报

    10

    主题

    147

    回帖

    674

    积分

    高级会员

    积分
    674
     楼主| 发表于 2024-3-18 15:47:54 | 显示全部楼层
    那可能是我这里阻断了
    回复

    使用道具 举报

    10

    主题

    147

    回帖

    674

    积分

    高级会员

    积分
    674
     楼主| 发表于 2024-3-18 15:01:00 | 显示全部楼层

    jarmoku 发表于 2024-3-18 15:47

    我直接复制了你的代码,啥问题都没有

    已解决,见一楼。
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|HS2V主机综合交流论坛

    GMT+8, 2024-6-16 02:25 , Processed in 0.073650 second(s), 4 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表