问题标签 [express-vhost]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1155 浏览

node.js - nodejs socketio 多个域(单独的io)

我创建了 2 个网站,它们使用 socketio+nodejs(+ 2 个开发网站)。现在,我需要将 2 个站点移动到一台服务器中。

为此,我使用了 express-vhost,它适用于一切……除了 socket.io。

在我的应用程序中,我使用了数百次以下功能。 socket.emit(), io.sockets.emit() , socket.broadcast.emit()等等。当我创建网站时,我是第一次使用 socketio,并且正在学习它。因此,我从未使用过命名空间(仍然没有使用它们)。

现在,当我在 vhost 下运行两个站点时,有人连接到 site1,他们也连接到 site2,因为他们使用相同的 socket.io 实例。

所以,我尝试创建多个socketio实例,每个域一个,就像这样

这几乎似乎工作......但是,一旦我为socketio创建第二个实例(服务器),那些在之前创建的实例就会“断开连接”并停止工作。

我如何创建多个 socketio 服务器实例并让它们独立工作。或者,我还能如何解决这个问题......也许使用命名空间(我仍然不知道如何使用它们)。

0 投票
1 回答
207 浏览

node.js - 如何重新启动/更新 node express vhost 站点

我在几个网站上工作,都有 2 个版本,一个是 live 一个,一个是 dev 一个。 http://timeprize.comhttp://test.timeprize.com 它们都使用 express vhost 在相同的端口和服务器上运行。

我的虚拟主机应用程序看起来很简单,基本上是这样的:

我使用“永远”过程运行上面的代码。

而现在的问题。由于测试站点和实时站点都使用相同的进程在同一服务器/端口上运行,我如何更新/重新启动测试站点,而不中断实时站点?

0 投票
1 回答
1048 浏览

node.js - Nodejs Express 不需要的行为:得到两个不同的 http 请求以唯一的答案回复

这是代码:

问题是,有时,客户端发出两个 http 请求,并且随机地,都以唯一的答案回复,而不是每个 http 请求都得到相应的回复。问题似乎是当其中一个 http 请求向数据库发出请求(造成获得答案的延迟)并在另一个请求中得到答复时。由于我发送标题,它给出了错误。
我检查了 gateway.js 文件是否随每个 http 请求一起加载和执行,但我不明白为什么它们会混在一起。我的代码有什么问题?任何帮助将不胜感激。谢谢你。

0 投票
1 回答
74 浏览

node.js - Node.js:为虚拟主机(vhost)使用站点地图

我是 node.js 的初学者。目前我正在使用 node.js + express + vhost来托管不同的域,如http://example1.comhttp://example2.io等。

如何为每个域(http://example1.com/sitemap.xml、http://example2.io/sitemap.xml)提供不同的站点地图

我看到了这个站点地图生成框架:站点地图实际上还不错,但我不知道如何将它与虚拟主机一起使用。

对于每个域的 robots.txt 文件,同样的问题。

0 投票
1 回答
1211 浏览

node.js - ExpressJS 多域 https 托管

我有一个项目,我需要托管两个具有两个域的网站,它们指向具有 EpressJS 服务器的同一服务器(1 个静态 IP)。在我的研究中,我发现 express 可以通过虚拟主机进行扩展。但我不知道如何将它们与 https 一起使用。我的愿望是有太多不同的快递对象,这样我就可以通过 appFoo.get() 访问“foo.com”请求,并通过 appBar.get() 或它们的 POST 或 JSON-aquivalent 访问“bar.com”请求。我不想在 apache、nginx oder 节点本身中使用代理。我想在端口 80/443 上运行它们。

0 投票
1 回答
1534 浏览

node.js - 在域和子域之间共享会话

我现在有点卡住了。花了 3 天的大部分时间试图找出这个小问题,我希望这只是一个简单的错误。

手头的问题是我无法在 example.com 和 b.example.com 之间共享会话。我正在使用 AWS,目前正在使用 SSL。我必须尝试人们所说的所有解决方案,从使用 CORS 解决问题,用“。”引导域(相信这已经过时并且现在不需要),以及我可以在线阅读的任何其他内容。这让我相信这是我的其他一些代码,所以我把它全部注释掉了,遗憾的是仍然无法让它工作。我通过在某些中间件中打印出 SessionID 并访问子域和域然后检查日志来测试是否共享会话。对于我在 vhost 上“托管”它的子域,我将在下面发布我的代码。提前谢谢您,如果您需要任何其他信息,我会尽快发布。

主应用程序.js

子域虚拟主机文件

如果它应该按原样工作,我会在回家后尝试进行更多测试并发布我发现的内容。再次谢谢你!

编辑:似乎每次我在子域上刷新时,vhost 都会创建一个新会话。我搬到了express-subdomain。当我这样做时,在 vhost 上没有 cookie 时出现在子域上。子域和主域之间的 SessionId 仍然不同,但现在子域每个请求都没有新的 SessionID。变化看起来是这样的......

0 投票
1 回答
662 浏览

node.js - Nodejs - 使用 vhost 的动态快速子域

我想为不同的代理动态创建子域,如下所示:

实现这一目标的最佳方法是什么?问题似乎是在创建服务器后调用 app.use() 。

0 投票
1 回答
143 浏览

node.js - Nodejs - 禁用或销毁虚拟主机子域/代理

我有以下代码将网站动态代理到子域。

我将如何从路由中禁用或销毁这个新创建的代理/子域/destroy

0 投票
2 回答
1097 浏览

node.js - Nodejs - 节点崩溃时如何防止丢失?

我有一个快速应用程序,用户可以在其中动态创建代理站点的子域。

用户可能会创建数以千计的唯一代理,但如果应用程序出错和崩溃或重新启动,那么这些数据就会丢失。

我知道我可以将这些存储在数据库中,然后循环遍历并重新创建每一个,但这对于潜在的数千个独特创建的代理来说似乎不是一个可靠的解决方案。

我知道这些新创建的路由存储在 app 变量 ( app._router) 中。有没有办法从另一个来源获取路线?(redis?mongo?)

或者有没有办法保留这个路由信息?

或者是否有任何节点管理工具(PM2、forever、supervisor 等)防止此类事情发生或从中恢复?

还是有更好的解决方案?任何建议表示赞赏。

0 投票
0 回答
104 浏览

node.js - 在 Heroku 上托管的我的应用程序上未定义 Vhost

我刚刚在 Heroku 上设置了一个快速应用程序。我希望我的域的多个子域指向我的 Heroku 应用程序(例如:name1.mydomain.com、name2.mydomain.com、...)。由于这些域中的每一个都没有特定的应用程序,因此我希望能够知道通过哪个子域访问了我的应用程序,以便使用正确的数据进行响应。

因此,我设置了 vhost 模块以检索这些信息。它在 localhost 上运行良好,但是在 Heroku 上使用它时,它总是返回 undefined。

我也尝试过 req.hostname 但它总是返回 0.0.0.0 无论我访问应用程序槽的子域。

您是否知道如何检索请求我托管在 heroku 上的应用程序的子域槽的信息。