-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
49 lines (33 loc) · 1.02 KB
/
app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
//
// proxy server base
//
// by : elyas
// create : 16/2/95
// edit : 24/2/95
global.init = require('./config.json');
var http = require('http');
var httpProxy = require('http-proxy');
var log = require('./mini_logger');
var proxy = httpProxy.createProxyServer({});
// hande errors
proxy.on('error', function(err) {
console.error(err);
});
var servers = require('./servers.json');
var server = http.createServer(function(req, res) {
// if I define this host name proxy it
if (req.headers.host && servers[req.headers.host]) {
var host = servers[req.headers.host].proxy_url;
proxy.web(req, res, {
target: host
});
log('http://' + req.headers.host + ' => ' + host +
' / URL -> ' + req.method + ' ' + req.url, req.headers.host);
} else {
res.end('404');
log('http://' + req.headers.host + req.url + " not found", req.headers.host);
}
});
var port = global.init.main_port || 2525;
log("listening on port " + port);
server.listen(port);