先从本地host文件中使用域名获取对应的ip地址—>如果本地host文件中没有的话,就去运营商获取ip地址。
正向代理:比如访问一些国外的网站,需要通过vpn翻墙才可以访问这时候就可以使用正向代理可以隐藏用户真实行为;
反向代理:客户端请求达到代理服务器 在通过代理服务器转发到真实服务器
正向代理与反向代理区别:正向代理隐藏用户的真实行为、反向代理隐藏真实服务器
1.分布式Session
2.分布式日志
3.分布式任务调度
硬件负载均衡是直接在服务器和外部网络间安装负载均衡设备。常用的硬件设备有:F5
Nginx是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 是使用最为广泛的HTTP软负载均衡器,高效的性能、稳定性、丰富的功能集、示例配置文件和低系统资源的消耗。
实现方式:配置一个上游服务器集群,然后将请求都交给这个集群来处理。
http {
resolver 10.0.0.1 valid=300s ipv6=off;
resolver_timeout 10s;
server {
location / {
proxy_pass http://backend;
}
}
upstream backend {
zone backend 32k;
least_conn;
...
server backend1.example.com resolve;
server backend2.example.com resolve;
}
}
Nginx负载均衡的策略:
1、轮询(默认):每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
upstream backserver {
server 192.168.0.14;
server 192.168.0.15;
}
2、指定权重:指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
upstream backserver {
server 192.168.0.14 weight=10;
server 192.168.0.15 weight=10;
}
3、IP绑定ip_hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
upstream backserver {
ip_hash;
server 192.168.0.14:88;
server 192.168.0.15:80;
}
4、Fair(第三方):按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream backserver {
server server1;
server server2;
fair;
}
5、Url_hash(第三方):按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
upstream backserver {
server squid1:3128;
server squid2:3128;
hash $request_uri;
hash_method crc32;
}
在Nginx的配置文件中增加配置信息。
if ($host != '域名'){
return 444;
}
alias
是一个目录别名的定义,root
则是最上层目录的定义。
有一个重要的区别是alias
后面必须要用/
结束,否则会找不到文件的。。。而root则可有可无。
页面中请求的ajax地址如果与页面请求地址域名和端口、协议不同的话,浏览器采用安全策略,请求能够正常到达服务器端,但是无法获取响应结果。
只能支持Get请求,模拟脚本提交。
LVS的核心可以实现虚拟vip,实现对Nginx负载均衡功能。是Linux系统自带的功能。
keepAlived对服务器状态检测和故障隔离,基于lvs+keepAlived可以高可用的集群环境。keepAlived 需要安装。
可以两台机子互为热备,平时各自负责各自的服务。在做上线更新的时候,关闭一台服务器的tomcat后,nginx自动把流量切换到另外一台服务的后备机子上,从而实现无痛更新,保持服务的持续性,提高服务的可靠性,从而保证服务器7*24小时运行。
基于Nginx搭建一主一备用 如果主能够访问的情况下就访问主,否则情况下就访问备。在Linux服务器上写一个定时任务,利用keepAlived检查nginx服务器的状态,如果为停止状态就执行nginx启动命令的脚本。重启几次还不行的话发邮件或其它方式提醒管理员,检查服务器、系统。
Nginx:HTTP服务器,用来做服务的负载均衡等功能。
Lvs:LVS的核心可以实现虚拟vip,实现对Nginx负载均衡功能。
keepAlived:keepAlived对服务器状态检测和故障隔离基于lvs+keepAlived可以高可用的集群环境。
将tomcat+nginx做成集群部署。利用健康检查的形式检查tomcat服务器的状态,实现自动重启、通知管理员的方法。
动静就是将动态资源(jsp/ftl)与静态资源(img/css/js)分开,从而提高网站响应的速度;
Nginx作为静态资源服务器比Tocmat响应吞吐高很多;
基于Nginx实现动静分离方案有两种:
静态资源太大、服务器本身带宽就低、接口请求数据大等等。
其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。
其目的是使用户可就近取得所需内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。
能够将静态资源缓存到全国各地节点能够减少客户端与cdn带宽距离传输提高响应速度; 就近原则
带宽不足、静态文件加载慢、接口响应慢、客户端与服务器端的距离等等。
nginx将js等文件中的常用的语法,使用字段匹配,将较长的语法function替换成短字典a,重复次数比较多的语法会替换。使用nginx压缩非常耗CPU。
客户端缓存(浏览器缓存)------》CDN缓存(七牛云)-----》Nginx缓存