Cân bằng tải
Hầu hết có lẽ đối với các trang web đơn giản nhất, bạn không cần bất kỳ quy mô nào cả. Chỉ một hộp duy nhất sẽ giúp bạn được bảo hiểm. Sau đó, bạn nên thực hiện cân bằng tải như bạn đang đề cập, điều này gần như giống nhau đối với mọi kiến trúc (giống như bạn đang nói rằng bạn có thể bắt đầu nhiều quy trình nút trước. Nhưng khi bạn thực sự lớn, bạn cần nhiều hộp hơn).
Ví dụ về cân bằng tải 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 truy vấn mỗi giây
Không có mồ hôi cho node.js. Bạn nên sử dụng redis làm kho dữ liệu của mình vì nó rất nhanh :). Thậm chí còn có thư viện ac cho nút khi bạn sử dụng node_redis .
npm install hiredis redis
Hiredis là thứ mang lại cho bạn hiệu suất kickass vì nó biên dịch thành mã C bên trong nút. Dưới đây là một số điểm chuẩn từ redis khi được sử dụng với Rentis.
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
Khi bạn nhìn vào những con số đó thì 20 / s là KHÔNG GÌ :).
Xác thực
Cập nhật:
Tôi đang nói điều này rất nhiều nhưng vì tình yêu của Chúa, xin đừng cố gắng triển khai hệ thống xác thực của riêng bạn. Nó có lẽ sẽ không an toàn (rất nhiều có thể sai), rất nhiều công việc. Để xác thực, bạn nên sử dụng facebook-connect, twitter đăng nhập một lần, v.v. bằng cách sử dụng thư viện connect-auth tuyệt vời . Sau đó, bạn được bảo vệ an toàn vì họ có các chuyên gia kiểm tra ở đó hệ thống đăng nhập để tìm các lỗ hổng và cũng không truyền mật khẩu qua văn bản thuần túy nhưng cảm ơn vì đã sử dụng https. Tôi cũng đã trả lời một chủ đề cho một người dùng muốn sử dụng facebook-connect .
xác nhận dữ liệu đầu vào
Để xác thực đầu vào, bạn có thể sử dụng trình xác thực nút .
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();
Ngoài ra còn có thư viện biểu mẫu này để giúp bạn tạo biểu mẫu.