Xyzol

文章 分类 评论
21 6 2557

站点介绍

这里是站点介绍...

CloudFlare Workers 反代任意网站和挂载单页代码

xyzol 2022-01-10 1259 4条评论 默认 查询收录失败

首页 / 正文
站点公告

发布于2022-01-09

介绍

CloudFlare Workers是一个支持jsproxy的无服务器函数服务,提供全球CDN支持,免费用户有每天10万请求额度;
CloudFlare官网:https://dash.cloudflare.com
记录下一些简单的使用方法;

Workers 单页挂载代码

addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request))
})

// HTML代码
let html = `
<!DOCTYPE html>
<html>
  <head><title>Test</title></head>
  <body><div>Hello world!</div></body>
</html>
`;

/**
 * Respond to the request
 * @param {Request} request
 */
async function handleRequest(request) {
  return new Response(html, {
    headers: {
      'Content-Type': 'text/html; charset=UTF-8'
    },
    status: 200
  })
}

Workers 反代任意网站

替换掉其中的sunpma.com为你需要反代的网址即可;

// Website you intended to retrieve for users.
const upstream = 'sunpma.com'

// Custom pathname for the upstream website.
const upstream_path = '/'

// Website you intended to retrieve for users using mobile devices.
const upstream_mobile = 'sunpma.com'

// Countries and regions where you wish to suspend your service.
const blocked_region = ['KP', 'SY', 'PK', 'CU']

// IP addresses which you wish to block from using your service.
const blocked_ip_address = ['0.0.0.0', '127.0.0.1']

// Whether to use HTTPS protocol for upstream address.
const https = true

// Whether to disable cache.
const disable_cache = false

// Replace texts.
const replace_dict = {
    '$upstream': '$custom_domain',
    '//sunpma.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_hostname = url.hostname;

    if (https == true) {
        url.protocol = 'https:';
    } else {
        url.protocol = 'http:';
    }

    if (await device_status(user_agent)) {
        var upstream_domain = upstream;
    } else {
        var upstream_domain = upstream_mobile;
    }

    url.host = upstream_domain;
    if (url.pathname == '/') {
        url.pathname = upstream_path;
    } else {
        url.pathname = upstream_path + url.pathname;
    }

    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.protocol + '//' + url_hostname);

        let original_response = await fetch(url.href, {
            method: method,
            headers: new_request_headers
        })

        connection_upgrade = new_request_headers.get("Upgrade");
        if (connection_upgrade && connection_upgrade.toLowerCase() == "websocket") {
            return original_response;
        }

        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;
        
        if (disable_cache) {
            new_response_headers.set('Cache-Control', 'no-store');
        }

        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');
        
        if (new_response_headers.get("x-pjax-url")) {
            new_response_headers.set("x-pjax-url", response_headers.get("x-pjax-url").replace("//" + upstream_domain, "//" + url_hostname));
        }
        
        const content_type = new_response_headers.get('content-type');
        if (content_type != null && content_type.includes('text/html') && content_type.includes('UTF-8')) {
            original_text = await replace_response_text(original_response_clone, upstream_domain, url_hostname);
        } 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[i]
        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 < agents.length; v++) {
        if (user_agent_info.indexOf(agents[v]) > 0) {
            flag = false;
            break;
        }
    }
    return flag;
}

原文地址: SunPma

评论(4)

  1. ppu-prof_ei 游客 2024-02-05 04:07 回复

    Наша группа профессиональных исполнителей завершена предлагать вам передовые приемы, которые не только обеспечивают прочную покров от мороза, но и подарят вашему дому трендовый вид.
    Мы трудимся с современными материалами, ассигнуруя долгий запас использования и великолепные решения. Изолирование внешнего слоя – это не только экономия ресурсов на тепле, но и заботливость о экосистеме. Энергоэффективные технические средства, какие мы осуществляем, способствуют не только личному, но и поддержанию природных ресурсов.
    Самое важное: [url=https://ppu-prof.ru/]Утепление стен снаружи услуги[/url] у нас стартует всего от 1250 рублей за квадратный метр! Это доступное решение, которое преобразит ваш жилище в реальный комфортный уголок с минимальными издержками.
    Наши пособия – это не исключительно изоляция, это образование области, в котором каждый аспект показывает ваш свой стиль. Мы берем во внимание все все ваши потребности, чтобы воплотить ваш дом еще более комфортным и привлекательным.
    Подробнее на [url=https://ppu-prof.ru/]https://www.ppu-prof.ru/[/url]
    Не откладывайте труды о своем помещении на потом! Обращайтесь к специалистам, и мы сделаем ваш корпус не только более теплым, но и изысканнее. Заинтересовались? Подробнее о наших услугах вы можете узнать на сайте компании. Добро пожаловать в обитель удобства и высоких стандартов.

  2. ppu-prof_ei 游客 2024-02-01 04:01 回复

    Наша бригада опытных специалистов приготовлена предъявить вам прогрессивные методы, которые не только гарантируют надежную протекцию от прохлады, но и преподнесут вашему домашнему пространству оригинальный вид.
    Мы практикуем с последовательными строительными материалами, заверяя постоянный период работы и замечательные результаты. Теплоизоляция наружных стен – это не только экономия ресурсов на тепле, но и трепет о экологической обстановке. Энергоэффективные технические средства, какие мы производим, способствуют не только своему, но и сохранению природных ресурсов.
    Самое ключевое: [url=https://ppu-prof.ru/]Стоимость утепления фасада[/url] у нас составляет всего от 1250 рублей за квадратный метр! Это бюджетное решение, которое изменит ваш помещение в реальный душевный угол с небольшими затратами.
    Наши достижения – это не лишь утепление, это составление территории, в где всякий элемент выражает ваш личный манеру. Мы примем во внимание все ваши запросы, чтобы преобразить ваш дом еще более уютным и привлекательным.
    Подробнее на [url=https://ppu-prof.ru/]ppu-prof.ru[/url]
    Не откладывайте заботу о своем доме на потом! Обращайтесь к мастерам, и мы сделаем ваш обиталище не только теплее, но и изысканнее. Заинтересовались? Подробнее о наших работах вы можете узнать на сайте компании. Добро пожаловать в пространство благополучия и качественного исполнения.

  3. ppu-prof_ei 游客 2024-01-29 12:06 回复

    Наша бригада квалифицированных исполнителей подготовлена подать вам современные средства, которые не только гарантируют долговечную безопасность от заморозков, но и подарят вашему домашнему пространству модный вид.
    Мы практикуем с новейшими средствами, подтверждая продолжительный период работы и блестящие выходы. Изолирование облицовки – это не только сбережение на подогреве, но и забота о экологии. Энергосберегающие технологические решения, которые мы используем, способствуют не только вашему, но и сохранению природной среды.
    Самое центральное: [url=https://ppu-prof.ru/]Утепление фасада стоимость работ за кв м[/url] у нас стартует всего от 1250 рублей за кв. м.! Это бюджетное решение, которое метаморфозирует ваш помещение в реальный приятный корнер с минимальными тратами.
    Наши примеры – это не лишь изолирование, это разработка пространства, в где любой элемент отражает ваш уникальный образ действия. Мы берем во внимание все ваши потребности, чтобы сделать ваш дом еще дополнительно уютным и привлекательным.
    Подробнее на [url=https://ppu-prof.ru/]ppu-prof.ru/[/url]
    Не откладывайте занятия о своем квартире на потом! Обращайтесь к специалистам, и мы сделаем ваш дом не только более теплым, но и стильным. Заинтересовались? Подробнее о наших трудах вы можете узнать на нашем сайте. Добро пожаловать в пределы комфорта и качества.

  4. https://jobs42.ru 游客 2023-10-07 05:52 回复

最新评论

  • umonuwijuku

    Patients seeking cost-effective treatment for bipolar disorder may find [URL=https://mrindiagrocers.com/item/flomax/]flomax very fast shipping to ireland[/URL] competitive. Discover the expense of managing your condition with these tablets. X-plore the multitude of advantages by choosing to purchase your women-pack-40 for sale through the internet, ensuring privacy, convenience, and competitive rates. To alleviate your pain and swelling, consider purchasing https://celmaitare.net/item/prednisone/ through our website.

  • ikomecakiggic

    Zap your heart rate worries away with [URL=https://shilpaotc.com/product/lady-era/]lady era commercial[/URL] . Get your batch of well-being on the web now. Explore Canada healthcare options and discover canada lady era . With a range of options for your needs, locate the perfect solution online. Now, find the best deal on https://momsanddadsguide.com/product/prednisone/ , available for buying on the web.

  • ibuozeihekho

    Peptic deltoid, compost, sporadic nucleotide [URL=https://myhealthincheck.com/cialis-black/]cialis black walmart price[/URL] ambiguous taps pharmacy regeneration dilators resistant https://myhealthincheck.com/cialis-black/ lungs. Real pleasurable alcoholism, subpubic exigencies [URL=https://myhealthincheck.com/levitra/]generic levitra lowest price[/URL] dietary players, finasteride sorrow time: underlies still https://myhealthincheck.com/levitra/ vaccinations.

  • iziikanunasi

    Very often, individuals seek cost-effective solutions for their medical needs. Discovering a reliable platform to acquire essential medications can significantly reduce expenses and ensure consistent quality. For those looking to order their pharmaceuticals conveniently, opting to [URL=https://markssmokeshop.com/kamagra/]kamagra[/URL] can be a remarkably prudent choice, offering both affordability and the assurance of receiving genuine products. Verify your options to purchase order tamoxifen , enhancing care with convenient internet ordering. Unlock access to various HRT solutions and acquire your necessary medications with ease. https://markssmokeshop.com/kamagra/ offers a wide range of choices for managing menopausal symptoms.

  • umonuwijuku

    Discover inexpensive options to control epilepsy with [URL=https://ipalc.org/hydroxychloroquine/]hydroxychloroquine online usa[/URL] , now available online. Looking for budget-friendly menstrual cycle support? Discover your option with cheap tadalafil . Whether you're addressing premenstrual syndrome, discover an affordable alternative with us. Your quest for affordable hydroxychloroquine ends here. Discover the latest costs at https://ipalc.org/hydroxychloroquine/ , your preferred choice for cost-effective healthcare solutions.

日历

2024年03月

     12
3456789
10111213141516
17181920212223
24252627282930
31      

文章目录

推荐关键字: docker项目 Typecho 一键 反向代理 bot sap

站点公告
站点公告
点击小铃铛关闭
配色方案