mirror of
https://github.com/alibaba/anyproxy.git
synced 2025-05-11 15:58:27 +00:00
65 lines
2.0 KiB
JavaScript
65 lines
2.0 KiB
JavaScript
|
/*
|
||
|
* Utility class for creating proxy server, used to create specfied proxy server
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
let proxy = require('../../proxy.js');
|
||
|
const util = require('../../lib/util.js');
|
||
|
|
||
|
const DEFAULT_OPTIONS = {
|
||
|
type: "http",
|
||
|
port: 8001,
|
||
|
hostname: "localhost",
|
||
|
dbFile: null, // optional, save request data to a specified file, will use in-memory db if not specified
|
||
|
webPort: 8002, // optional, port for web interface
|
||
|
socketPort: 8003, // optional, internal port for web socket, replace this when it is conflict with your own service
|
||
|
throttle: 10000, // optional, speed limit in kb/s
|
||
|
disableWebInterface: false, //optional, set it when you don't want to use the web interface
|
||
|
setAsGlobalProxy: false, //set anyproxy as your system proxy
|
||
|
interceptHttps: true, // intercept https as well
|
||
|
silent: false //optional, do not print anything into terminal. do not set it when you are still debugging.
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
*
|
||
|
* @return An instance of proxy, could be closed by calling `instance.close()`
|
||
|
*/
|
||
|
function defaultProxyServer () {
|
||
|
proxy = util.freshRequire('../proxy.js');
|
||
|
|
||
|
const options = util.merge({}, DEFAULT_OPTIONS);
|
||
|
options.rule = util.freshRequire('./rule_default.js');
|
||
|
return new proxy.proxyServer(options);
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* Create proxy server with rule
|
||
|
* @param rules
|
||
|
Object, the rule object which contains required intercept method
|
||
|
@return An instance of proxy, could be closed by calling `instance.close()`
|
||
|
*/
|
||
|
function proxyServerWithRule (rule) {
|
||
|
proxy = util.freshRequire('../proxy.js');
|
||
|
|
||
|
const options = util.merge({}, DEFAULT_OPTIONS);
|
||
|
options.rule = rule;
|
||
|
|
||
|
return new proxy.proxyServer(options);
|
||
|
}
|
||
|
|
||
|
function proxyServerWithoutHttpsIntercept (rule) {
|
||
|
proxy = util.freshRequire('../proxy.js');
|
||
|
|
||
|
const options = util.merge({}, DEFAULT_OPTIONS);
|
||
|
if (rule) {
|
||
|
options.rule = rule;
|
||
|
}
|
||
|
options.interceptHttps = false;
|
||
|
return new proxy.proxyServer(options);
|
||
|
}
|
||
|
|
||
|
module.exports = {
|
||
|
defaultProxyServer,
|
||
|
proxyServerWithoutHttpsIntercept,
|
||
|
proxyServerWithRule
|
||
|
};
|