代理
正向代理
目的:由代理服务器访问真正的服务器(隐藏了客户端的ip)
应用:通常的翻墙技术
反向代理
目的:隐藏真正的服务器ip。由代理服务器访问真正的服务器(有可能为内部网络)
区别
正向:通过本地配置代理(客户端配置)来实现(配置代理服务器,由代理服务器将请求转发,最后返还给客户端),突破资源的访问限制;
反向:通过远程配置代理(服务端配置)来实现(一般来说由服务器部署人员进行部署,从而实现代理的动静分离、负载均衡、安全防护等)
负载均衡
代码展示
http{
resolve 114.114.114.114 #为server指定域名解析器
upstream myserver {
server 192.168.220.131:8080 max_fails=3 fail_timeout=15;
server 192.168.220.131:8081 backup;#所有服务器不能使用时才使用的
server 192.168.220.131:8082 max_conns=100;
server 192.168.220.131:8083 weight=10 #权重规则默认值为1
server www.example.com
fair;#执行公平原则,响应时间原则
ip_hash;#执行同一个用户访问在同一个服务器上面,实现sesion的不丢失
}
server {
listen 80;
server_name 192.168.220.131;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
proxy_pass http://myserver;
index index.html index.htm;
}
}
}
代码解释
upstream? 【服务名】: 配置负载均衡相关信息的,【服务名】相当一个虚拟的域名,里面配置多个访问的地址;
max_fails:最大失败次数,默认值为1.超过最大次数时,在fail_timeout之内不会再次向该服务器发送请求。
fail_timeout:失败超时时间,和max_fail配合使用,默认值为10s
backup:备份服务器,所有服务器挂了才会执行的服务器
max_conns:最大连接数,超过这个连接数,不会再向该服务器发送请求
resolve:为server指定的域名提供域名解析器
ip_hash:根据ip进行计算分配到不同的服务器,局限性非常大,新增或者减少服务器或者服务器宕机均会影响,而且如果有前置的负载均衡策略和后置的负载均衡侧率都会产生影响
url_hash:(包含请求的参数)一致性hash,可以设置为访问资源时的策略,比如下载大型文件,分别缓存在不同的服务器上面,此时设置通过url_hash时就可以同一个资源请求访问到同一台服务器上面,然后就访问了同样的资源,不用过多的缓存资源
hash $uri : uri不包含请求的参数
其他的解释暂时不说,继续向下看
动静分离
代码演示
server {
?? ?listen 80;
?? ?server_name 192.168.220.131;
root d:
?? ?
?? ?location /html/ {
? ? ? ? root /static/; #映射在根目录下的static文件下
? ? ? ? autoindex on;
? ? ? ? charset utf-8;
?? ?}
?? ?location /image/ {
? ? ? ? root /static/;
? ? ? ? autoindex on;
? ? ? ? charset utf-8;
? ? ? ? expire 3d;
?? ?}
? ? ?location / {
index index.htm index.html index.jsp #会依次尝试 index.htm index.html index.jsp
????}
}
|