virtual - Meteor 如何处理多个虚拟主机?

标签 virtual meteor hosts

Meteor 如何处理多个虚拟主机?

www.Some-Client-Domain.com --> www.Our-CName-URL.com --> Meteor 应用程序。

我们需要 Meteor 应用来服务相同的网站/应用,但具有特定于所请求的原始 URL (Some-Client-Domain.com) 的数据。

在我们当前的原型(prototype)中,我们将 NGINX 放在 Rails 前面,并且有几种不同的方法可以实现此目的,包括将 NGINX 连接到数据库以定义许多虚拟主机。这非常有效,因为如果有新客户端注册,我们可以更新数据库,然后 NGINX 立即知道该虚拟主机,而无需任何进一步的 NGINX 配置。

这在 Meteor 中如何实现?

谢谢!

最佳答案

好吧,如果您暂时忽略 SSL(或者想稍后自己弄清楚 SSL),那么以下指南应该有效:

基本思想

.. 是根据基本 URL 使用不同的数据库(mongo,通常情况)生成同一应用程序的多个实例。

我们将为虚拟主机使用以下设置:

  • 站点 #1:www.example1.com
    • meteor 端口:3000
    • MongoDB 端点/URL:mongodb://localhost:27017/example1
  • 站点 #2:www.example2.com
    • meteor 端口:3001
    • MongoDB 端点/URL:mongodb://localhost:27017/example2

准备meteor实例

  1. 安装 foreman通过rubygems :

  2. 创建 foreman Procfile文件位于您的 meteor 项目目录中。使用上面的数据(不包括项目符号:D):

    • web1: ROOT_URL=http://www.example1.com/ PORT=3000 MONGO_URL=mongodb://localhost:27017/example1 meteor
    • web2: ROOT_URL=http://www.example.com/ PORT=3001 MONGO_URL=mongodb://localhost:27017/example2 meteor
  3. -或- 如果您使用 meteor bundle版本:

    • web1: ROOT_URL=http://www.example1.com/ PORT=3000 MONGO_URL=mongodb://localhost:27017/example1 node bundle/main.js
    • web2: ROOT_URL=http://www.example2.com/ PORT=3001 MONGO_URL=mongodb://localhost:27017/example2 node bundle/main.js
  4. 然后您可以运行 foreman start直接在同一目录中(在末尾添加 & 以发送到后台)。或者您可以通过 foreman export 将其安装为服务/ Upstart 脚本(对于其他 Linux 发行版,这可能有所不同,请参阅 Foreman 文档: http://ddollar.github.io/foreman/ ‎ ):

    • sudo foreman export --app meteors --user <meteor files owner> upstart /etc/init

准备 nginx

从现在开始,nginx 的配置现在应该非常简单:

server {
  listen 80;

  server_name www.example1.com example1.com; 

  location / {
    proxy_pass        http://localhost:3000;
    proxy_set_header  X-Real-IP  $remote_addr;
  }
}


server {
  listen 80;

  server_name www.example2.com example2.com; 

  location / {
    proxy_pass        http://localhost:3001;
    proxy_set_header  X-Real-IP  $remote_addr;
  }
}

请告诉我这是否适合您,尽管您提到您已经使用了 SilkJS,但我会将其留在这里供其他对该解决方案感兴趣的人使用。

关于virtual - Meteor 如何处理多个虚拟主机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13788146/

相关文章:

process - 具体来说,将进程分成页面是什么意思?

javascript - 如何在 Meteor 中渲染嵌套集合?

javascript - 地形图边缘不可见

sql - 在 %systemroot%\system32\drivers\etc\hosts 文件中包含端口号

vagrant - vagrant-hostsupdater 和 vagrant-hostmanager 有什么区别?

C++ 继承和具有虚拟辅助函数的 Pthreads

c++ - 写入输出迭代器的模板成员函数

c++ - c++中抽象类的问题

twitter-bootstrap - 推文分享按钮在登录/注销时不呈现

linux - 在本地桌面计算机上替换 someaddress.com