Nginx 背后的多个 Meteor 站点

Fra*_*att 5 nginx meteor

这个问题与这个SO 问题有关,但是评论中推荐的使用 Meteor.absoluteUrl() 的解决方案似乎没有按预期工作。我希望能够将多个流星应用程序部署到同一台服务器,并使用 nginx 作为每个应用程序的反向代理。

因为每个应用程序都是隔离的,所以没有一个应用程序可以从 ROOT_URL 访问,但是 Meteor 只使用 ROOT_URL 来引用它加载流星应用程序所需的资产。

我尝试在服务器启动、客户端启动函数和客户端启动函数之外使用 Meteor.absoluteUrl() 附加到地址。它在任何这些地方都没有影响。

例如。我有 nginx 在 /site1 上监听 server_name: example.com 和一个反向代理到端口 3001 到我的流星应用程序。

访问该站点时,它最初加载正常,但浏览器开发工具显示 Meteor 试图在https://example.com上查找 javascript 和 css 文件,而它应该从https://example.com的基本 url 中查找/站点1

Meteor.absoluteUrl("site1",{ssl:true}) 在 Meteor.startup() 中设置以尝试将其强制为正确的路径。如您所见,我只附加到 ROOT_URL 没有前导 / 如 Meteor 文档中所述。

我正在使用meteor up 进行部署,mup.json 环境设置如下所示:

"env": { "ROOT_URL": " https://example.com ", "PORT": 3001, "MONGO_URL": "mongodb://user:password@localhost:27017/db" }

非常感谢对此的任何澄清。

Mic*_*oyd 0

流星应用程序下公共资产的根 URL 实际上位于/public。您的每个应用程序都有不同的应用程序基目录。假设您的整体结构如下所示:

app1/ - nginx maps to https://example1.com/
  client/
  lib/
  public/
  server/
app2/ - nginx maps to https://example2.com/
  client/
  lib/
  public/
  server/
etc...
Run Code Online (Sandbox Code Playgroud)

然后每个应用程序的公共资产将位于其下方,Meteor.absoluteUrl()app/public. Meteor.absoluteUrl()+"app1"没有任何意义。