diff --git a/unfurler/src/concurrency/ReusablePage.ts b/unfurler/src/concurrency/ReusablePage.ts index 3041711c4..3a08f7cb4 100644 --- a/unfurler/src/concurrency/ReusablePage.ts +++ b/unfurler/src/concurrency/ReusablePage.ts @@ -142,8 +142,9 @@ export default class ReusablePage extends ConcurrencyImplementation { await page.goto('about:blank', {timeout: 200}); // prevents memory leak (maybe?) } catch (e) { logger.err(`unexpected page repair error ${page.clusterGroup}:${page.index}`); + } finally { + await page.close(); } - await page.close(); return newPage; } diff --git a/unfurler/src/concurrency/ReusableSSRPage.ts b/unfurler/src/concurrency/ReusableSSRPage.ts index 1dedd0958..26fb66ee1 100644 --- a/unfurler/src/concurrency/ReusableSSRPage.ts +++ b/unfurler/src/concurrency/ReusableSSRPage.ts @@ -22,7 +22,7 @@ export default class ReusableSSRPage extends ReusablePage { page.clusterGroup = 'slurper'; page.language = null; page.createdAt = Date.now(); - const defaultUrl = mempoolHost + '/about'; + const defaultUrl = mempoolHost + '/preview/block/1'; page.on('pageerror', (err) => { console.log(err); @@ -39,7 +39,7 @@ export default class ReusableSSRPage extends ReusablePage { headers: {"Access-Control-Allow-Origin": "*"}, body: mockImageBuffer }); - } else if (!['document', 'script', 'xhr', 'fetch'].includes(req.resourceType())) { + } else if (req.resourceType() === 'media') { return req.abort(); } else { return req.continue(); diff --git a/unfurler/src/index.ts b/unfurler/src/index.ts index ae02b8b4c..8494489e6 100644 --- a/unfurler/src/index.ts +++ b/unfurler/src/index.ts @@ -28,6 +28,7 @@ class Server { mempoolUrl: URL; network: string; secureHost = true; + secureMempoolHost = true; canonicalHost: string; seoQueueLength: number = 0; @@ -38,6 +39,7 @@ class Server { this.mempoolHost = config.MEMPOOL.HTTP_HOST + (config.MEMPOOL.HTTP_PORT ? ':' + config.MEMPOOL.HTTP_PORT : ''); this.mempoolUrl = new URL(this.mempoolHost); this.secureHost = config.SERVER.HOST.startsWith('https'); + this.secureMempoolHost = config.MEMPOOL.HTTP_HOST.startsWith('https'); this.network = config.MEMPOOL.NETWORK || 'bitcoin'; let canonical; @@ -277,13 +279,13 @@ class Server { return; } else { logger.info('proxying resource "' + req.url + '"'); - if (this.secureHost) { - https.get(config.SERVER.HOST + rawPath, { headers: { 'user-agent': 'mempoolunfurl' }}, (got) => { + if (this.secureMempoolHost) { + https.get(this.mempoolHost + rawPath, { headers: { 'user-agent': 'mempoolunfurl' }}, (got) => { res.writeHead(got.statusCode, got.headers); return got.pipe(res); }); } else { - http.get(config.SERVER.HOST + rawPath, { headers: { 'user-agent': 'mempoolunfurl' }}, (got) => { + http.get(this.mempoolHost + rawPath, { headers: { 'user-agent': 'mempoolunfurl' }}, (got) => { res.writeHead(got.statusCode, got.headers); return got.pipe(res); });