improve use of worker variables

This commit is contained in:
ciiiii
2022-03-22 04:00:50 +08:00
parent 37b7f2d4cd
commit f6acad4f3f
2 changed files with 21 additions and 9 deletions

View File

@@ -14,26 +14,31 @@ function routeByHosts(host) {
if (host in routes) {
return routes[host];
}
return TARGET_UPSTREAM ? TARGET_UPSTREAM : "";
if (MODE == "debug") {
return TARGET_UPSTREAM;
}
return "";
}
async function handleRequest(request) {
const url = new URL(request.url);
if (url.pathname == "/v2/") {
const resp = new Response({}, { status: 401 });
resp.headers = new Headers();
if (DEBUG) {
resp.headers.set(
const headers = new Headers();
if (MODE == "debug") {
headers.set(
"Www-Authenticate",
`Bearer realm="${LOCAL_ADDRESS}/v2/auth",service="cloudflare-docker-proxy"`
);
} else {
resp.headers.set(
headers.set(
"Www-Authenticate",
`Bearer realm="https://${url.hostname}/v2/auth",service="cloudflare-docker-proxy"`
);
}
return resp;
return new Response(JSON.stringify({ message: "UNAUTHORIZED" }), {
status: 401,
headers: headers,
});
}
const upstream = routeByHosts(url.hostname);
if (upstream === "") {

View File

@@ -16,5 +16,12 @@ port = 8787
local_protocol="http"
upstream_protocol="https"
[env.dev]
vars={DEBUG=true, LOCAL_ADDRESS="http://192.168.50.160:8787", TARGET_UPSTREAM="https://registry-1.docker.io"}
[vars]
MODE="production"
LOCAL_ADDRESS=""
TARGET_UPSTREAM=""
[env.dev.vars]
MODE="debug"
LOCAL_ADDRESS="http://192.168.50.160:8787"
TARGET_UPSTREAM="https://registry-1.docker.io"