Yük dengeleme
Büyük olasılıkla en basit siteler için herhangi bir ölçeklendirmeye ihtiyacınız yoktur. Sadece tek bir kutu sizi koruyacak. Bundan sonra da belirttiğiniz gibi her mimari için hemen hemen aynı olan yük dengeleme yapmalısınız (dediğiniz gibi önce birden çok düğüm sürecini başlatabilirsiniz. Ama gerçekten büyüdüğünüzde daha fazla kutuya ihtiyacınız var).
Nginx yük dengeleme örneği :
http {
upstream myproject {
server 127.0.0.1:8000 weight=3;
server 127.0.0.1:8001;
server 127.0.0.1:8002;
server 127.0.0.1:8003;
}
server {
listen 80;
server_name www.domain.com;
location / {
proxy_pass http:
}
}
}
Redis
Saniyede 20 sorgu
Node.js için ter yok. Redis'i veri deponuz olarak kullanmalısınız çünkü çok hızlı :). Node_redis kullandığınızda düğüm için bir ac kitaplığı bile vardır .
npm install hiredis redis
Hiredis, düğüm içinde C koduna derlediği için size kickass performansı veren şeydir. Aşağıda, hiredis ile birlikte kullanıldığında redis'ten bazı karşılaştırmalar verilmiştir.
PING: 20000 ops 46189.38 ops/sec 1/4/1.082
SET: 20000 ops 41237.11 ops/sec 0/6/1.210
GET: 20000 ops 39682.54 ops/sec 1/7/1.257
INCR: 20000 ops 40080.16 ops/sec 0/8/1.242
LPUSH: 20000 ops 41152.26 ops/sec 0/3/1.212
LRANGE (10 elements): 20000 ops 36563.07 ops/sec 1/8/1.363
LRANGE (100 elements): 20000 ops 21834.06 ops/sec 0/9/2.287
Bu sayılara baktığınızda 20 / s HİÇBİR ŞEY DEĞİL :).
Doğrulama
Güncelleme:
Bunu çok söylüyorum ama tanrı aşkına lütfen kendi kimlik doğrulama sisteminizi uygulamaya çalışmayın. Muhtemelen güvensiz olacak (çoğu şey ters gidebilir), çok iş. Kimlik doğrulaması için mükemmel bağlantı-kimlik doğrulama kitaplığını kullanarak facebook-connect, twitter tek oturum açma vb. Kullanmalısınız . O zaman güvende olursunuz, çünkü orada delikler için oturum açma sistemlerini test eden uzmanlar var ve şifreleri düz metin yoluyla iletmiyorlar, ancak Tanrı'ya şükür https kullanın. Ayrıca facebook-connect kullanmak isteyen bir kullanıcı için bir konuya cevap verdim .
giriş verilerinin doğrulanması
Girişi doğrulamak için düğüm doğrulayıcıyı kullanabilirsiniz .
var check = require('validator').check,
sanitize = require('validator').sanitize
check('test@email.com').len(6, 64).isEmail();
check('abc').isInt();
check('abc', 'Please enter a number').isInt();
check('abcdefghijklmnopzrtsuvqxyz').is(/^[a-z]+$/);
var int = sanitize('0123').toInt();
var bool = sanitize('true').toBoolean();
var str = sanitize(' \s\t\r hello \n').trim();
var str = sanitize('aaaaaaaaab').ltrim('a');
var str = sanitize(large_input_str).xss();
var str = sanitize('<a>').entityDecode();
Form oluşturmanıza yardımcı olacak bu form kitaplığı da vardır .