mirror of
https://github.com/alibaba/anyproxy.git
synced 2025-04-24 08:41:31 +00:00
1.add watchdog for web server 2.remove optional dep
This commit is contained in:
parent
1e3beaf582
commit
916d458aa2
22
package.json
22
package.json
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "anyproxy",
|
||||
"version": "2.9.3",
|
||||
"version": "3.0.0",
|
||||
"description": "A fully configurable proxy in NodeJS, which can handle HTTPS requests perfectly.",
|
||||
"main": "proxy.js",
|
||||
"bin": {
|
||||
@ -13,6 +13,7 @@
|
||||
"commander": "~2.3.0",
|
||||
"entities": "^1.1.1",
|
||||
"express": "^4.8.5",
|
||||
"ip": "^0.3.2",
|
||||
"juicer": "^0.6.6-stable",
|
||||
"nedb": "^0.11.0",
|
||||
"qrcode-npm": "0.0.3",
|
||||
@ -20,27 +21,12 @@
|
||||
"ws": "^0.4.32"
|
||||
},
|
||||
"devDependencies": {
|
||||
"proxy-eval": "^1.1.0"
|
||||
"proxy-eval": ">=1.1.1"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "node test.js"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"underscore": "^1.7.0",
|
||||
"cookie": "^0.1.2",
|
||||
"mysql": "^2.5.2",
|
||||
"iconv-lite": "^0.4.4",
|
||||
"ip": "^0.3.2",
|
||||
"jquery": "^2.1.1",
|
||||
"jsdom": "^1.0.3",
|
||||
"socks5-http-client": "^0.1.6",
|
||||
"socks5-https-client": "^0.2.2",
|
||||
"http-proxy-agent":"^0.2.6",
|
||||
"https-proxy-agent":"^0.3.5",
|
||||
"tcp-ping":"^0.1.1",
|
||||
"request":"^2.48.0",
|
||||
"moment":"^2.8.3"
|
||||
},
|
||||
"optionalDependencies": {},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/alibaba/anyproxy"
|
||||
|
29
proxy.js
29
proxy.js
@ -1,22 +1,5 @@
|
||||
//mix some modules to global.util
|
||||
try{
|
||||
GLOBAL.util = require('./lib/util');
|
||||
GLOBAL.util['iconv-lite'] = require("iconv-lite");
|
||||
GLOBAL.util['colorful'] = require("colorful");
|
||||
GLOBAL.util['path'] = require("path");
|
||||
GLOBAL.util['jsdom'] = require('jsdom');
|
||||
GLOBAL.util['cookie'] = require('cookie');
|
||||
GLOBAL.util['jquery'] = require('jquery');
|
||||
GLOBAL.util['mysql'] = require('mysql');
|
||||
GLOBAL.util['Socks5ClientHttpAgent'] = require('socks5-http-client/lib/Agent');
|
||||
GLOBAL.util['Socks5ClientHttpsAgent'] = require('socks5-https-client/lib/Agent');
|
||||
GLOBAL.util['HttpProxyAgent'] = require('http-proxy-agent');
|
||||
GLOBAL.util['HttpsProxyAgent'] = require('https-proxy-agent');
|
||||
GLOBAL.util['tcp-ping'] = require('tcp-ping');
|
||||
GLOBAL.util['request'] = require('request');
|
||||
GLOBAL.util['async'] = require('async');
|
||||
GLOBAL.util['underscore'] = require('underscore');
|
||||
GLOBAL.util['moment'] = require('moment');
|
||||
}catch(e){}
|
||||
|
||||
var http = require('http'),
|
||||
@ -155,6 +138,13 @@ function proxyServer(option){
|
||||
}
|
||||
});
|
||||
|
||||
//watch dog
|
||||
setInterval(function(argument) {
|
||||
child_webServer.send({
|
||||
type:"watch"
|
||||
});
|
||||
},5000);
|
||||
|
||||
//kill web server when father process exits
|
||||
process.on("exit",function(code){
|
||||
child_webServer.kill();
|
||||
@ -168,7 +158,6 @@ function proxyServer(option){
|
||||
process.exit();
|
||||
});
|
||||
|
||||
|
||||
GLOBAL.recorder.on("update",function(data){
|
||||
child_webServer.send({
|
||||
type: "update",
|
||||
@ -177,9 +166,7 @@ function proxyServer(option){
|
||||
});
|
||||
|
||||
var configServer = new UIConfigServer(proxyConfigPort);
|
||||
configServer.on("rule_changed",function() {
|
||||
// console.log(arguments);
|
||||
});
|
||||
configServer.on("rule_changed",function() {});
|
||||
|
||||
var tipText,webUrl;
|
||||
webUrl = "http://" + ip.address() + ":" + proxyWebPort +"/";
|
||||
|
12
webServer.js
12
webServer.js
@ -116,7 +116,8 @@ inherits(proxyWebServer, events.EventEmitter);
|
||||
|
||||
var param = process.argv.slice(2),
|
||||
server = new proxyWebServer(param[0],param[1],param[2],param[3],param[4]),
|
||||
cbMap = {}; // id body cb
|
||||
cbMap = {}, // id body cb
|
||||
lastestHeartbeat = new Date().getTime();
|
||||
|
||||
|
||||
process.on("message",function(data){
|
||||
@ -130,9 +131,18 @@ process.on("message",function(data){
|
||||
cbMap[key].body = data.body;
|
||||
cbMap[key].cb.call(null,data.body);
|
||||
}catch(e){}
|
||||
}else if(data.type == "watch"){
|
||||
lastestHeartbeat = new Date().getTime();
|
||||
}
|
||||
});
|
||||
|
||||
//watch dog
|
||||
setInterval(function(){
|
||||
if(new Date().getTime() - lastestHeartbeat > 10 * 1000){
|
||||
process.exit();
|
||||
}
|
||||
},7000);
|
||||
|
||||
function fetchBody(id,cb){
|
||||
var key = id + "";
|
||||
if(cbMap[key]){
|
||||
|
Loading…
x
Reference in New Issue
Block a user