0.使用Redis来实现项目的缓存; wordpress Redis Object Cache 1.会话保持; 2.负载均衡可以实现基于uri调度; /user --> a集群 /pass --> b集群
3.负载均衡基于设备的调度; iphone --> a集群 pc --> b集群 4.多级代理如何传递客户端真实IP地址; user--> 七层--七层---七层--七层--应用节点; 5.TCP层负载均衡(四层负载均衡)
---------------------------------------------------------------------------------》 尝试实现 wordpress ---> 插件( Redis Object Cache )--> Redis缓存;
1.必须使用负载均衡的轮询,而不是ip_hash; 2.必须保证会话不掉线; Redis共享方案;
1.负载均衡修改为轮询; 2.配置redis服务器;10.0.0.41 3.修改所有应用服务器的php解析器(php.ini),将session信息存储至Redis中;
在一台服务器上运行多个端口,来模拟多个节点
/user
10.0.0.7:8081;
10.0.0.7:8082;
/pass
10.0.0.8:8081;
10.0.0.8:8082;
接入负载均衡(如何匹配):
location /user {
}
location /pass {
}
没有添加/: 用户发起请求: uri.oldxu.net/user 负载均衡接收: uri.oldxu.net/user 负载代理至后端:uri.oldxu.net/user --》/code/user1/user
添加/:(负载均衡向后端请求时,会删除location匹配到的关键字) 用户发起请求: uri.oldxu.net/user 负载均衡接收: uri.oldxu.net/user 负载代理至后端:uri.oldxu.net/ --》/code/user1/index.html
uri.oldxu.net/test/app/123.html --》uri.oldxu.net/test/app/123.html
一级代理 10.0.0.5
二级代理 10.0.0.7
应用节点 10.0.0.8
tcp/80; 四层;
1.配置mysql;
172.16.1.7 创建一个远程连接的用户与密码;
调度tcp/80怎么实现:
四层配置(代理): stream { upstream web_cluster { server 172.16.1.5:80; server 172.16.1.6:80; server 172.16.1.7:80; server 172.16.1.8:80; }
server {
listen 80;
proxy_pass web_cluster;
}
}
七层配置: upstream xx { server 172.16.1.10; server 172.16.1.11; server 172.16.1.12; server 172.16.1.13; }
server { listen 80; server_name proxy.oldxu.net;
location / {
proxy_pass http://xx;
include proxy_params;
}
}
1.会话保持; 2.http协议的调度; 2.基于http协议调度(uri); 2.基于http协议调度(user_agent); 3.掌握多级透传真实IP地址; 3.1 X-Forwarded-For; 3.2 RealIP_module; 4.TCP负载均衡(了解); 基于请求的目标IP+目标端口,来实现的调度,数据包仅拆解到传输层,则代理到后端的集群节点(任然会消耗随机端口); 准备两台MySQL,两台MySQL的远程用户名+远程密码都一致; 配置Nginx TCP负载均衡,调度至两台MySQL节点; 基于TCP/22端口,端口映射;
动静分离; Uwsgi; Rewrite; https;