コード例 #1
0
ファイル: index.js プロジェクト: amino/amino-gateway
    var server = http.createServer(function (req, res) {
      if (options.maintMode) {
        var remoteIp = addr(req);
        if (options.maintIps && ~options.maintIps.indexOf(remoteIp)) doProxy();
        else {
          maintPage(req, res, 503);
        }
      }
      else {
        doProxy();
      }

      function doProxy () {
        setupRequest(req, function (spec) {
          req._spec = spec;
          d.run(function () {
            proxy.web(req, res, { target: spec }, function httpErrorHandler (err, req, res) {
              onReqError(err, req, res, req._sReq, req._spec);
            });
          });
        });
      }
    });
コード例 #2
0
ファイル: index.js プロジェクト: amino/amino-gateway
 function setupRequest (req, cb) {
   req.on('error', function (err) {
     console.error(err, '#error');
   });
   var stickyId;
   if (opts.stickyCookie || opts.stickyIp || opts.stickyQuery) {
     if (opts.stickyCookie && req.headers.cookie) {
       stickyId = cookie.parse(req.headers.cookie)[opts.stickyCookie];
     }
     else if (opts.stickyIp) {
       stickyId = addr(req);
     }
     else if (opts.stickyQuery) {
       var query = parseUrl(req.url, true).query;
       stickyId = query[opts.stickyQuery];
     }
   }
   req._sReq = amino.requestService({
     service: serviceSpec.service,
     version: req.headers['x-amino-version'] || serviceSpec.version,
     stickyId: req.headers['x-amino-stickyid'] || stickyId
   }, cb);
 }
コード例 #3
0
ファイル: tokens.js プロジェクト: carlos8f/node-accesslog
exports['h'] = exports['a'] = function(req) {
  return addr(req, this.options.proxies);
};