redbird
Version:
A reverse proxy with support for dynamic tables
37 lines (36 loc) • 1.03 kB
TypeScript
import http, { IncomingMessage, ServerResponse } from 'http';
import httpProxy, { ProxyTargetUrl } from 'http-proxy';
import { Socket } from 'net';
import pino from 'pino';
import { Resolver } from './resolver.js';
export interface SSLConfig {
port?: number;
ip?: string;
key?: string;
cert?: string;
ca?: string;
}
export interface ProxyOptions {
port?: number;
host?: string;
keepAlive?: boolean;
preferForwardedHost?: boolean;
httpProxy?: httpProxy.ServerOptions;
logger?: pino.Logger;
cluster?: number;
letsencrypt?: {
path: string;
port: number;
renewWithin?: number;
minRenewTime?: number;
};
resolvers?: Resolver[];
ntlm?: boolean;
xfwd?: boolean;
secure?: boolean;
timeout?: number;
proxyTimeout?: number;
ssl?: SSLConfig | SSLConfig[];
errorHandler?: (err: NodeJS.ErrnoException, req: IncomingMessage, res: ServerResponse | Socket, target?: ProxyTargetUrl) => void;
serverModule?: typeof http;
}