fix hns domains using redirected skylink endpoint
This commit is contained in:
parent
b3f1d05031
commit
dcba6a0950
|
@ -3,7 +3,8 @@ include /etc/nginx/conf.d/include/proxy-pass-internal;
|
||||||
include /etc/nginx/conf.d/include/portal-access-check;
|
include /etc/nginx/conf.d/include/portal-access-check;
|
||||||
|
|
||||||
# variable definititions - we need to define a variable to be able to access it in lua by ngx.var.something
|
# variable definititions - we need to define a variable to be able to access it in lua by ngx.var.something
|
||||||
set $skylink ''; # placeholder for the raw 46 bit skylink
|
set $skylink ''; # placeholder for the base64 skylink
|
||||||
|
set $skylink_base32 ''; # placeholder for the base32 skylink
|
||||||
|
|
||||||
# resolve handshake domain by requesting to /hnsres endpoint and assign correct values to $skylink and $rest
|
# resolve handshake domain by requesting to /hnsres endpoint and assign correct values to $skylink and $rest
|
||||||
rewrite_by_lua_block {
|
rewrite_by_lua_block {
|
||||||
|
@ -74,10 +75,13 @@ rewrite_by_lua_block {
|
||||||
if ngx.var.path == "/" and skylink_rest ~= nil and skylink_rest ~= "" and skylink_rest ~= "/" then
|
if ngx.var.path == "/" and skylink_rest ~= nil and skylink_rest ~= "" and skylink_rest ~= "/" then
|
||||||
ngx.var.path = skylink_rest
|
ngx.var.path = skylink_rest
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- assign base32 skylink to be used in proxy_pass
|
||||||
|
ngx.var.skylink_base32 = require("skynet.skylink").base32(ngx.var.skylink)
|
||||||
}
|
}
|
||||||
|
|
||||||
# we proxy to another nginx location rather than directly to siad because we do not want to deal with caching here
|
proxy_set_header Host $skylink_base32.$skynet_portal_domain;
|
||||||
proxy_pass https://127.0.0.1/$skylink$path$is_args$args;
|
proxy_pass $scheme://$server_addr$path$is_args$args;
|
||||||
|
|
||||||
# in case siad returns location header, we need to replace the skylink with the domain name
|
# in case siad returns location header, we need to replace the skylink with the domain name
|
||||||
header_filter_by_lua_block {
|
header_filter_by_lua_block {
|
||||||
|
|
|
@ -144,7 +144,6 @@ location /hns {
|
||||||
set_by_lua_block $hns_domain { return string.match(ngx.var.uri, "/hns/([^/?]+)") }
|
set_by_lua_block $hns_domain { return string.match(ngx.var.uri, "/hns/([^/?]+)") }
|
||||||
set_by_lua_block $path { return string.match(ngx.var.uri, "/hns/[^/?]+(.*)") }
|
set_by_lua_block $path { return string.match(ngx.var.uri, "/hns/[^/?]+(.*)") }
|
||||||
|
|
||||||
proxy_set_header Host $host;
|
|
||||||
include /etc/nginx/conf.d/include/location-hns;
|
include /etc/nginx/conf.d/include/location-hns;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Reference in New Issue