这个问题与this https://stackoverflow.com/questions/10936242/how-can-i-correct-the-meteor-base-url-in-a-nginx-reverse-proxy-configuration所以问题,但是评论中推荐的使用 Meteor.absoluteUrl() 的解决方案似乎没有按预期工作。我希望能够将多个 Meteor 应用程序部署到同一服务器,并使用 nginx 作为每个应用程序的反向代理。
由于每个应用程序都是隔离的,因此无法从 ROOT_URL 访问任何应用程序,但 Meteor 仅使用 ROOT_URL 来引用加载 Meteor 应用程序所需的资源。
我尝试在服务器的启动、客户端的启动函数以及客户端的启动函数之外使用 Meteor.absoluteUrl() 附加到地址。它对这些地方都没有影响。
例如。我有 nginx 在 /site1 监听 server_name: example.com 和反向代理到我的 Meteor 应用程序的端口 3001。
当访问该网站时,它最初加载正常,但浏览器开发工具显示 Meteor 正在尝试在以下位置查找 javascript 和 css 文件:https://example.com https://example.com当它应该从基本网址查找时https://example.com/site1 https://example.com/site1
Meteor.absoluteUrl("site1",{ssl:true}) 在 Meteor.startup() 中设置,以尝试强制其作为正确的路径。正如您所看到的,我只是附加到 ROOT_URL,没有前导 /,如 Meteor 文档中所述。
我使用meteor up 进行部署,mup.json 环境设置如下所示:
“环境”:{
“ROOT_URL”:“https://example.com https://example.com“,
“端口”:3001,
"MONGO_URL": "mongodb://用户:密码@localhost:27017/db"
}
对此的任何澄清都应该有效,我们将不胜感激。
使用 apendua 建议的子域似乎是在 nginx 后面的同一服务器上容纳多个 Meteor 应用程序的最简单方法(如果您可以使用该选项)。
- 为每个应用程序注册一个子域(即app1.domain.com、app2.domain.com等)
- 为每个子域添加 nginx 服务器配置,将 server_name 属性设置为您的子域地址。
- 添加该服务器的默认位置并将您的 proxy_pass 设置为http://127.0.0.1:端口 http://127.0.0.1:port其中 port 是您在部署 Meteor 应用程序时在环境配置中设置的端口号(在我的例子中,我在 mup.json 中设置了该端口号)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)