-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
46 lines (43 loc) · 1.3 KB
/
index.js
File metadata and controls
46 lines (43 loc) · 1.3 KB
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
var fs = require('fs');
var FileStreamRotator = require('file-stream-rotator');
var http = require('http');
var finalhandler = require('finalhandler');
var morgan = require('morgan');
var httpProxy = require('http-proxy');
var accessLogStream = FileStreamRotator.getStream({
filename: __dirname + '/log/access.%DATE%.log',
frequency: 'daily',
verbose: false,
date_format: "YYYY-MM-DD"
});
var logger = morgan('combined', {
stream: accessLogStream
});
var proxy = httpProxy.createProxy();
http.createServer(function(req, res) {
var done = finalhandler(req, res);
logger(req, res, function(err) {
var host = req.headers.host;
var url;
switch (host) {
case "tlks.io":
case 'www.tlks.io':
url = 'http://localhost:9001';
proxy.web(req, res, {
target: url
});
break;
case 'api.tlks.io':
url = 'http://localhost:9002';
proxy.web(req, res, {
target: url
});
break;
default:
console.log('ERROR: not allowed host', host);
res.statusCode = 418;
res.end("I'm a teapot!");
break;
}
});
}).listen(80);