server { server_name *.hns.${PORTAL_DOMAIN}; # example: *.hns.siasky.net include /etc/nginx/conf.d/server/server.http; } server { server_name *.hns.${PORTAL_DOMAIN}; # example: *.hns.siasky.net set_by_lua_block $skynet_portal_domain { return "${PORTAL_DOMAIN}" } set_by_lua_block $skynet_server_domain { -- fall back to portal domain if server domain is not defined if "${SERVER_DOMAIN}" == "" then return "${PORTAL_DOMAIN}" end return "${SERVER_DOMAIN}" } proxy_set_header Host ${PORTAL_DOMAIN}; include /etc/nginx/conf.d/server/server.hns; } server { server_name *.hns.${SERVER_DOMAIN}; # example: *.hns.eu-ger-1.siasky.net include /etc/nginx/conf.d/server/server.http; set_by_lua_block $server_alias { return string.match("${SERVER_DOMAIN}", "^([^.]+)") } } server { server_name *.hns.${SERVER_DOMAIN}; # example: *.hns.eu-ger-1.siasky.net set_by_lua_block $skynet_portal_domain { -- when accessing portal directly through server domain, portal domain should be set to server domain -- motivation: skynet-js uses Skynet-Portal-Api header (that is set to $skynet_portal_domain) to detect current -- portal address and it should be server domain when accessing specific server by its domain address return "${SERVER_DOMAIN}" } set_by_lua_block $skynet_server_domain { return "${SERVER_DOMAIN}" } proxy_set_header Host ${SERVER_DOMAIN}; include /etc/nginx/conf.d/server/server.hns; set_by_lua_block $server_alias { return string.match("${SERVER_DOMAIN}", "^([^.]+)") } }