โหลดบาลานซ์
ส่วนใหญ่อาจเป็นไซต์ที่เรียบง่ายที่สุดคุณไม่จำเป็นต้องปรับขนาดใด ๆ เลย เพียงแค่กล่องเดียวคุณก็จะได้รับความคุ้มครอง หลังจากนั้นคุณควรทำโหลดบาลานซ์อย่างที่พูดถึงซึ่งเกือบจะเหมือนกันสำหรับทุกสถาปัตยกรรม (เช่นคุณกำลังบอกว่าคุณสามารถเริ่มกระบวนการหลายโหนดก่อน แต่เมื่อคุณมีขนาดใหญ่มากคุณต้องมีกล่องเพิ่มขึ้น)
ตัวอย่างการจัดสรรภาระงาน Nginx :
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
20 คำค้นหาต่อวินาที
ไม่มีเหงื่อสำหรับ node.js คุณควรใช้ redis เป็นที่เก็บข้อมูลของคุณเพราะมันเร็วมาก :) มีห้องสมุด AC แม้สำหรับโหนดเมื่อคุณใช้เป็นnode_redis
npm install hiredis redis
Hiredis เป็นสิ่งที่ให้ประสิทธิภาพการทำงานของ kickass เนื่องจากรวบรวมเป็นรหัส C ภายในโหนด ต่อไปนี้คือเกณฑ์มาตรฐานบางส่วนจาก redis เมื่อใช้กับ hireis
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
เมื่อคุณดูตัวเลขเหล่านั้น 20 / s ก็ไม่มีอะไร :)
การรับรองความถูกต้อง
อัปเดต:
ฉันบอกเรื่องนี้มาก แต่เพื่อความรักของพระเจ้าโปรดอย่าพยายามใช้ระบบพิสูจน์ตัวตนของคุณเอง มันอาจจะไม่ปลอดภัย (ผิดพลาดได้มาก) งานเยอะ สำหรับการตรวจสอบสิทธิ์คุณควรใช้ facebook-connect, twitter single sign-in เป็นต้นโดยใช้ไลบรารีconnect-auth ที่ยอดเยี่ยม จากนั้นคุณจะปลอดภัยเพราะมีผู้เชี่ยวชาญทดสอบระบบล็อกอินสำหรับรูและยังไม่ส่งรหัสผ่านผ่านข้อความธรรมดา แต่ขอขอบคุณพระเจ้าที่ใช้ https ฉันยังได้ตอบหัวข้อสำหรับผู้ใช้ที่ต้องการที่จะใช้Facebook เชื่อมต่อ
การตรวจสอบความถูกต้องของข้อมูลอินพุต
การป้อนข้อมูลการตรวจสอบคุณสามารถใช้โหนดตรวจสอบ
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();
นอกจากนี้ยังมีไลบรารีฟอร์มนี้เพื่อช่วยคุณสร้างแบบฟอร์ม