集群(cluster)是一组相互独立的、经过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互做用时,集群像是一个独立的服务器。负载均衡(Load Balance),其意思就是分摊到多个操做单元上进行执行html
架构文档node
学无止境网
该web应用,由两个服务器一块儿提供的服务mysql
这里使用最简单的轮询机制,session存放在数据库,解决了session服务器之间不一样步的问题。nginx
upstream tianshengjie{ server ip地址; server ip地址 max_fails=2 fail_timeout=10s; } server { listen 80 default_server; server_name 47.99.90.167 www.tianshengjie.cn tianshengjie.cn; location / { proxy_pass http://tianshengjie; proxy_cache_key $http_range$uri$is_args$args; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
forever start -c nodemon app.js --exitcrash
A simple CLI tool for ensuring that a given script runs continuously
守护node进程程序git
使用shell脚本,自动更新代码,一键同步更新web
#!/bin/bash cd git仓库 git pull; yarn install --production; rsync -av --exclude-from=/opt/ssh/blog_exclude.list git仓库 代码发布地址 rsync -avz -e ssh /var/www/blog/ root@负载均衡服务器ip:负载均衡服务器发布代码目录 cd 代码发布地址 ; forever stop app.js; npm run start; echo "发布成功"
文档地址
性能最高,有备份有容灾,功能强大,可是收费sql
mysql远程链接配置
配置相对简单,数据库会有性能瓶颈,免费shell
研究中数据库
当用户经过负载均衡,被定位到了不一样的服务器。这时候,上传文件时,将会把文件上传到不一样的服务器中。当用户被分配到了其余服务器时,就会找不到这个文件了。因此咱们须要同步负载均衡的服务器的文件。npm
方案一:本身实现统一文件上传管理系统,全部用户文件统一上传到一个地方。
方案二:使用阿里云的NAS文件系统管理
方案三:使用NFS系统
阿里云文件存储(Network Attached Storage,简称 NAS)是面向阿里云 ECS 实例、HPC 和 Docker 等计算节点的文件存储服务,提供标准的文件访问协议,您无需对现有应用作任何修改,便可使用具有无限容量及性能扩展、单一命名空间、多共享、高可靠和高可用等特性的分布式文件系统。
缺点:收费