深圳彩票网站建设,wordpress 注册 填写密码,山东建设科技产品推广网站,深圳四站合一网站建设电话一、正向代理与反向代理
正向代理#xff1a;是一个位于客户端和原始服务器(oricin server)之间的服务器#xff0c;为了从原始服务器取得内容#xff0c;客户端向代理发送一个请求并指定目标(原始服务器)#xff0c;然后代理向原始服务器转交请求并将获得的内容返回给客户…一、正向代理与反向代理
正向代理是一个位于客户端和原始服务器(oricin server)之间的服务器为了从原始服务器取得内容客户端向代理发送一个请求并指定目标(原始服务器)然后代理向原始服务器转交请求并将获得的内容返回给客户端。
正向代理的典型用途是为在防火墙内的局域网客户端提供访问internet的途径。 正向代理一般是在客户端设置代理服务器通过代理服务器转发请求最终访问到目标服务器。
反向代理反向代理服务器位于用户与目标服务器之间但是对于用户而言反向代理服务器就相当于目标服务器即用户直接访问反向代理服务器就可以获得目标服务器的资源反向代理服务器负责将请求转发给目标服务器。用户不需要知道目标服务器的地址也无须在用户端作任何设定。 配置示例
server {listen 80;server_name example.com;location / {proxy_pass http://backend_servers;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}
}
上述配置中listen指定了Nginx监听的端口server_name指定了反向代理的域名。
location /表示将所有的请求都转发给后端服务器。proxy_pass配置后端服务器的地址可以是IP地址或域名。proxy_set_header可以设置一些HTTP头信息如Host和X-Real-IP等。
二、负载均衡
负载均衡是指将请求分发到多个后端服务器以达到提高系统的性能和可用性的目的。Nginx支持多种负载均衡算法如轮询、加权轮询、最少连接等。
配置示例
upstream backend_servers {server 192.168.0.1:8080;server 192.168.0.2:8080;server 192.168.0.3:8080;server 192.168.0.4:8080;
}server {listen 80;server_name example.com;location / {proxy_pass http://backend_servers;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}
}
Nginx支持以下几种负载均衡方式
轮询Round Robin这是默认的负载均衡方式。每个请求按时间顺序逐一分配到不同的后端服务器如果后端服务器down掉能自动剔除。权重Weight不同的后端服务器可能机器的配置和当前系统的负载并不相同因此Nginx允许指定每个服务器的处理能力。权重越高分配的请求越多。IP Hash每个请求的IP的hash结果分配每个访客固定访问一个后端服务器可以解决session的问题。最少连接Least Connections优先分配给当前连接数最少的服务器适用于请求处理时间相差较大的情况。URL Hash按照访问URL的hash结果来分配请求使得每个URL定向到同一个后端服务器可以在后端服务器生成缓存的情况下提高系统效率。
以上负载均衡方式中轮询、权重和IP Hash是Nginx内置支持的最少连接和URL Hash需要使用Nginx的第三方模块如ngx_http_upstream_least_conn_module和ngx_http_upstream_hash_module。
1基于轮询的算法
原理是每一个请求按时间顺序逐一被分发到不同的应用服务器如果接收请求的应用服务器挂了并且请求超过最大失败次数max_fails1次则在失效时间fail_timeout10秒内不会再转发请求到该节点~
upstream defaultReverseProxyServer{server 192.168.0.1:8080; server 192.168.0.2:8080;
}
2基于权重的算法
原理是每一个请求按权重被分发到不同的应用服务器同样如果接收请求的应用服务器挂了并且请求超过最大失败次数max_fails默认1次或可设置N次则在失效时间fail_timeout默认10秒可设置N秒内不会再转发请求到该节点~
upstream weightReverseProxyServer{server 192.168.0.1:8080 weight10 max_fails2 fail_timeout5s;server 192.168.0.2:8080 weight5 max_fails2 fail_timeout5s;
}
3基于ip_hash的算法
原理是每一个请求按用户访问IP的哈希结果分配如果请求来自同一个用户IP则固定这台IP访问一台应用服务器该算法可以有效解决动态网页中存在的session共享问题。
upstream ipHashReverseProxyServer{ip_hash;server 192.168.0.1:8080;server 192.168.0.2:8080;
}
一般使用的是基于权重的算法因为现在很多情况下都是集群部署而且集群下的各个服务器资源大多都是不均匀的资源高的则分配权重高一些资源低的则分配权重低一些这种情况使用基于权重的负载均衡算法可以更高效的利用资源和提高并发处理能力~