nginx - Nginx 背后的多个 Meteor 站点

标签 nginx meteor

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

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

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

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

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

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

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

“环境”:{
"ROOT_URL": "https://example.com ",
“端口”:3001,
"MONGO_URL": "mongodb://user:password@localhost:27017/db"
}

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

最佳答案

使用 apendua 建议的子域似乎是在 nginx 后面的同一服务器上容纳多个 Meteor 应用程序的最简单方法(如果您可以使用该选项)。

  • 为每个应用程序注册一个子域(即 app1.domain.com、app2.domain.com 等)
  • 为每个子域添加一个 nginx 服务器配置,将 server_name 属性设置为您的子域地址。
  • 添加该服务器的默认位置并将您的 proxy_pass 设置为 http://127.0.0.1:port其中 port 是您在部署 Meteor 应用程序时在环境配置中设置的端口号(在我的例子中,我在我的 mup.json 中设置了它)。
  • 关于nginx - Nginx 背后的多个 Meteor 站点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32170123/

    相关文章:

    Nginx 不会重启。 . . nginx.service 的作业失败,因为控制进程退出并显示错误代码

    nginx - Docker 带有一个 nginx 和一个共享 UNIX 套接字的 uwsgi 容器

    nginx - 使用docker compose安装nginx动态模块

    javascript - Meteor Helper 检查相等性

    node.js - 是否可以使用 `node app.js` 在 AWS 实例上运行 Node 应用程序

    javascript - 在 Meteor 中的 Iron Router 模板助手上使用参数

    meteor - 集合FS : Images not defined

    nginx 无限 keepalive_requests

    nginx - 在 Ubuntu 12.04 上为 Rails 3.2.8 环境设置 Nginx 和 Passenger

    meteor - meteor ,浏览器策略,HTTP连接到S3的502网关错误