Просмотр исходного кода

更新 非演示域名自动选择“当前站点”节点;更新 cfworker

zjcqoo 6 лет назад
Родитель
Сommit
ec200297e3
3 измененных файлов с 20 добавлено и 15 удалено
  1. 1 1
      README.md
  2. 2 6
      cf-worker/README.md
  3. 17 8
      cf-worker/index.js

+ 1 - 1
README.md

@@ -28,7 +28,7 @@ curl https://raw.githubusercontent.com/EtherDream/jsproxy/master/i.sh | bash
 
 无法满足上述条件,或想了解安装细节,可尝试[手动安装](docs/setup.md)。
 
-测试: `https://服务器IP.xip.io:8443`(具体参考脚本输出),线路选择 `当前站点`。
+测试: `https://服务器IP.xip.io:8443`(具体参考脚本输出)
 
 
 # 部署

+ 2 - 6
cf-worker/README.md

@@ -14,8 +14,6 @@
 
 复制 [index.js](https://raw.githubusercontent.com/EtherDream/jsproxy/master/cf-worker/index.js) 到左侧代码框,`Save and deploy`。如果正常,右侧应显示首页。
 
-线路切换到 `当前站点` 即可使用。(选择演示服务的节点会报错,因为该域名不在我的外链白名单里)
-
 收藏地址框中的 `https://xxxx.子域名.workers.dev`,以后可直接访问。
 
 
@@ -30,16 +28,14 @@
 
 # 修改配置
 
-默认情况下,静态资源从 `https://zjcqoo.github.io` 反向代理,可通过代码中 `ASSET_URL` 配置。
-
-推荐将 `conf.js` 文件的 `node_default` 改为 `mysite`,这样能自动选择 `当前站点` 这个节点,不用每次手动选节点。
+默认情况下,静态资源从 `https://zjcqoo.github.io` 反向代理,可通过代码中 `ASSET_URL` 配置,从而可使用自定义的 `conf.js` 配置。
 
 
 # 加速功能
 
 如果你已有服务器,也可通过 CloudFlare Worker 分担大文件的代理。
 
-前端修改:`conf.js` 的 `cfworker` 节点 `lines` 中加入当前域名
+前端修改:`conf.js` 的 `cfworker` 节点 `lines` 配置
 
 后端修改:`lua/http-enc-res-hdr.lua` 的 [114-116 行](https://github.com/EtherDream/jsproxy/blob/master/lua/http-enc-res-hdr.lua#L114-L116) 注释打开,重启服务生效。
 

+ 17 - 8
cf-worker/index.js

@@ -5,7 +5,7 @@
  */
 const ASSET_URL = 'https://zjcqoo.github.io'
 
-const JS_VER = 5
+const JS_VER = 6
 const MAX_RETRY = 1
 
 
@@ -21,10 +21,11 @@ const PREFLIGHT_INIT = {
 
 /**
  * @param {string} message
+ * @param {number} status
  */
-function makeErrRes(message) {
+function makeRes(message, status) {
   return new Response(message, {
-    status: 400,
+    status,
     headers: {
       'cache-control': 'no-cache'
     }
@@ -37,11 +38,19 @@ addEventListener('fetch', e => {
   const urlStr = req.url
   const urlObj = new URL(urlStr)
   let ret
-  if (urlObj.pathname !== '/http') {
+
+
+  switch (urlObj.pathname) {
+  case '/http':
+    ret = handler(req)
+    break
+  case '/works':
+    ret = makeRes('it works', 200)
+    break
+  default:
     // static files
     ret = fetch(ASSET_URL + urlObj.pathname)
-  } else {
-    ret = handler(req)
+    break
   }
   e.respondWith(ret)
 })
@@ -112,7 +121,7 @@ async function handler(req) {
     }
   }
   if (!urlObj) {
-    return makeErrRes('missing url param')
+    return makeRes('missing url param', 403)
   }
   const reqInit = {
     method: req.method,
@@ -186,7 +195,7 @@ async function proxy(urlObj, reqInit, acehOld, rawLen, retryTimes) {
           return proxy(urlObj, reqInit, acehOld, rawLen, retryTimes + 1)
         }
       }
-      return makeErrRes(`bad len (old: ${rawLen} new: ${newLen})`)
+      return makeRes(`bad len (old: ${rawLen} new: ${newLen})`, 400)
     }
 
     if (retryTimes > 1) {