Meteor:部署到自己的服务器

时间:2014-11-27 20:31:28

标签: javascript mongodb deployment meteor

事实证明,部署到某些通用VPS与meteor deploy的体验非常不同。我几乎已经把它搞砸了,但作为一个Mongo n00b,我遇到了一件事:OpLog拖尾。这是迄今为止的信息:

Distro:Scientific Linux发行版6.4(Carbon)

$ mongod --version
db version v2.4.6
$ node --version
v0.10.33

我正在使用Meteor 1.0。和乘客4.0.53。

好消息是更改到deploy目录(我作为一个bundle部署)并执行:

$ node bundle/main.js

让我在端口3000上访问应用程序,但是在开发模式下,因此不会拖尾OpLog(我认为)。

所以在经过一系列的开始之后,我用这个来操纵乘客:

<VirtualHost *:80>
   ServerName sc.mywebapp.com
   DocumentRoot /home/deploy/meteor_apps/mywebapp/public
   PassengerStickySessions On
   SetEnv MONGO_URL mongodb://0.0.0.0:27017/meteor
   SetEnv MONGO_OPLOG_URL mongodb://0.0.0.0:27017/local
   SetEnv ROOT_URL http://sc.mywebapp.com

   # Set these ONLY if your app is a Meteor bundle!
   PassengerAppType node
   PassengerStartupFile bundle/main.js
   PassengerAppRoot /home/deploy/meteor_apps/mywebapp
</VirtualHost>

我不得不将这些添加到裸机httpd.conf:

LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.3-p484/gems/passenger-4.0.53/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
 PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p484/gems/passenger-4.0.53
 PassengerDefaultRuby /usr/local/rvm/wrappers/ruby-1.9.3-p484/ruby
 PassengerNodejs /usr/local/bin/node
</IfModule>

现在好消息是Passenger正在尝试。但由于它处于生产模式,它想要关闭OpLog。我收到以下错误:

Error: $MONGO_OPLOG_URL must be set to the 'local' database of a Mongo replica set

所以,记住我是MongoDB N00b,我需要做什么才能获得Mongo副本集的本地数据库?这将是一个小型,低流量的网站 - 它可能会增长,但我只是想让我的初始部署。

有什么神奇的步骤?

谢谢!

1 个答案:

答案 0 :(得分:6)

神奇的步骤是拥有正确的用户权限,并在oplog连接字符串中提供authSource参数。

创建您的用户(MongoDB 2.4):

$ mongo -u YourExistingAdminUserName -p YourExistingAdminPassword 127.0.0.1/admin
cluster:PRIMARY> db.addUser({user: "oplogger", pwd: "PasswordForOplogger", roles: [], otherDBRoles: {local: ["read"]}})

创建您的用户(MongoDB 2.6 +):

$ mongo -u YourExistingAdminUserName -p YourExistingAdminPassword 127.0.0.1/admin
cluster:PRIMARY> db.createUser({user: "oplogger", pwd: "PasswordForOplogger", roles: [{role: "read", db: "local"}]})

然后设置您的oplog网址:

MONGO_OPLOG_URL=mongodb://oplogger:PasswordForOplogger@127.0.0.1/local?authSource=admin

Extra details are in the Meteor Wiki Oplog Driver article.