Proxy unfurler resources to local instance

This commit is contained in:
Mononaut 2023-08-22 01:19:18 +09:00
parent 91c0a3e689
commit 0d2df72621
No known key found for this signature in database
GPG Key ID: A3F058E41374C04E
3 changed files with 9 additions and 6 deletions

View File

@ -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;
}

View File

@ -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();

View File

@ -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);
});