2014-11-27 3 views
3

일부 일반 VPS로 배포하는 것은 meteor deploy과는 매우 다른 경험입니다. 나는 거의 밖으로 내뱉지만 Mongo n00b이되어서, 나는 한 가지 문제가있다 : OpLog tailing.유성 : 자체 서버에 배포

배포판 : 여기에 지금까지 정보입니다 내가 유성 1.0을 사용하고

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

과학 리눅스 6.4 (탄소)를 놓습니다. 및 여객 4.0.53.

$ node bundle/main.js 

나 포트 3000의 응용 프로그램에 액세스 할 수 있지만, 개발 모드에 따라서 OpLog을 미행하지 :

좋은 소식은 deploy 디렉토리로 변경 (I 번들로 배포)과 일을한다는 것입니다 (나는 생각한다). 이제

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> 

선을 :

<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에 다음을 추가했다 :

그래서 발작적의 무리 후에, 나는이와 승객을 임시 변통으로 만들었다 소식은 승객이 이고입니다. 그러나 생산 모드에 있기 때문에 OpLog를 꼬리로 잡고 싶어합니다. 난 것을 기억, 그래서

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

MongoDB를 N00b, 도대체 나는가 몽고 복제 세트의 로컬 데이터베이스를 얻을 어떻게해야합니까 : 그리고 다음과 같은 오류가? 처음에는 작고 트래픽이 적은 사이트가 될 수 있습니다. 그러나 성장할 수는 있지만 초기 배포를 원하는 것입니다.

마법의 단계는 무엇입니까?

감사합니다.

답변

6

마술 단계는 정확한 사용자 priv 's를 가지고 있으며 oplog 연결 문자열에 authSource 매개 변수를 제공하고 있습니다.

사용자 (MongoDB를 2.4) 만들기 :

MONGO_OPLOG_URL=mongodb://oplogger:[email protected]/local?authSource=admin 

Extra details are in the Meteor Wiki Oplog Driver article.

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

이 그런 다음 oplog URL을 설정합니다

$ 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+) 만들기를

+0

답장을 보내 주셔서 감사합니다. 이것은 내 mongodb n00b 부분이 들어오는 곳입니다. 저는 몽고가 독립형 단일 db로 작업하고 있습니다. 프로덕션을 위해서는 하나의 시스템에 클러스터링해야합니다. 나는 당신의 클러스터'PRIMARY>'를 볼 수있다. 어떻게 완성 되었습니까? 유제품 배포가해야 할 일이 있을까요? –

+0

그래, 복제본 세트 (유성은 DB 레벨 샤딩을 지원하지 않기 때문에, 샤드되지 않음). 가이드를 보려면 http://docs.mongodb.org/manual/tutorial/deploy-replica-set/을 시도하거나 https://mongolab.com/plans/pricing/을 시도해보십시오.하지만 약간의 비용이 소요되므로 전담 팀이 필요합니다. oplog access ($ 180/month +) –

+0

@NathanM이 튜토리얼 (docs.mongodb.org/manual/tutorial/deploy-replica-set fo)은 별도의 컴퓨터에서 mongod 인스턴스를 유지 관리한다고 말합니다.단일 기계에서이를 수행 할 수있는 방법이 있습니까? 독립 실행 형 db를 복제 세트로 변환하는 방법이 있지만 프로덕션에서는 권장하지 않는 방법이 있음을 알았습니다. –