【发布时间】:2016-08-22 06:07:09
【问题描述】:
我想从数据库中提取一个 URL 并将其用作代理 URL。然而,我提出的设置会使用递增的端口号为每个 URL 初始化一个新的 BrowserSync 服务器。
有没有一种方法可以在不每次都初始化新的 BrowserSync 服务器的情况下完成这项工作?
或者我应该使用其他方法吗?
var bs = require("browser-sync");
var express = require("express");
var router = express.Router();
var app = express();
router.get("/", function(req, res){
var proxyUrl = getUrl() //get url from db (www.example.com)
bs.create("bs1").init({
notify: false,
open: false,
ui: false,
port: 10000,
proxy: proxyUrl
});
res.send();
});
app.use(router);
app.listen(8080, function(){
console.log('listening on *:8080');
});
以上内容很好(ish),但是为每个 URL(可能是数千个)初始化一个新服务器是一种好习惯吗?
向系统的每个用户公开一个新的端口号是否安全? (我可以用子域屏蔽它吗?)
更新
我的最终目标是使用唯一的子域来引用每个代理 url。
例如:
sub1.mysite.com 代理 www.example.com,
sub2.mysite.com 代理 www.example2.com
【问题讨论】:
-
这个解决方案可能对你有用..stackoverflow.com/questions/7075577/…
-
@BEJGAMSHIVAPRASAD 感谢您的帮助,但不幸的是它没有帮助。我已经编辑了这个问题。再看看。
-
哦..对不起,我错过了您的要求..您是在寻找为公众提供代理服务..还是您正在尝试构建 SAAS 应用程序?
-
@BEJGAMSHIVAPRASAD 我正在尝试构建一个 SAAS 原型。我选择使用浏览器同步是因为它是我见过的最完整的反向代理,到目前为止它已经为我完美地代理了每个站点。它还有一些有用的附加功能。
-
根据我的说法,如果您希望使用代理的 SAAS 服务不是一个好主意,那么我的想法就是……如果您要为每个客户端使用代理,将使用新端口创建进程……我的解决方案是使用监听 localhost 创建节点服务器并将 *.domain.com 映射到服务器。如果您为每个客户端使用单独的数据库:- 在节点逻辑中从请求主机获取 cname 并使用该引用连接数据库。将来如果你有更多的客户端,你可以使用 webservice 实现节点集群或标准的 Ubuntu 集群。
标签: node.js express proxy reverse-proxy browser-sync