2018年10月2日补充:
代理服务器
- 含义:「客户端」在发送请求时,先发送给「代理服务器」,「代理服务器」接受请求后转发给「服务端」,「服务端」处理请求后返回数据给「代理服务器」,「代理服务器」存储数据并转发给「客户端」
- 目的:
- 提高访问速度:「客户端」访问相同的站点数据时,直接从「代理服务器」中读取,起到缓存的作用
- 防火墙:可为「服务端」过滤某些不安全的请求信息
翻墙看片可访问受限网点:「客户端」访问受限时,可通过不受限的「代理服务器」访问目标站点
正向、反向代理
正向代理:架设在「客户端」与「服务端」之间,用于代理内部网络对 Internet 的连接请求
反向代理:架设在「服务端」,缓存热点请求的页面同时将请求转发给内部对应的服务器
反向代理的应用:
- 防御外网对内网服务器的恶性攻击(访问安全控制)
- 缓存热点数据
- 负载均衡
- 转发
- 故障移除
- 恢复添加
Nginx实现负载均衡
-
分发策略
- 轮询:你一个,我一个,他一个
- 最少连接数:谁不忙,就给谁
- 权重:你一个,我两个,他三个,权重与访问成正比,应用于服务器性能不均的场景
- IP_HASH:依据访问 IP 的固定 HASH 值进行分配, 解决Session共享问题
-
配置
upstream ydc-coding { # 配置权重 server 116.196.66.192:8081 weight=3; server 116.196.66.192:8082 weight=2; # 不参与负载 server 116.196.66.192:8083 down; # 备胎 server 116.196.66.192:8084 backup; } server { listen 80; server_name ydc-coding.com; #charset koi8-r; #access_log logs/host.access.log main; location / { proxy_pass http://ydc-coding; index index.html index.htm; } }
-
Keepalived + Nginx 实现高可用
Nginx作为负载均衡器,所有请求都到了Nginx,可见Nginx处于非常重点的位置,如果Nginx服务器宕机后端web服务将无法提供服务,影响严重。
为了避免负载均衡服务器的宕机故障,需要建立一个备份机。主备机上都运行高可用(High Availability)监控程序,通过传送心跳信息来监控对方的运行状况。当备份机不能在一定的时间内收到对方的正常心跳时,它就接管主服务器的服务IP并继续提供负载均衡服务;当备份管理器又从主管理器收到“I am alive”这样的信息时,它就释放服务IP地址,这样的主服务器就开始再次提供负载均衡服务。
RD常用操作
在实际开发中,很少能自己去配置这些东西,关于Nginx这块,更多的是去申请配置 新增location
、新增域名
、机器调整
等操作。
新增域名:
upstream ydc-coding {
server 116.196.66.192:8081;
server 116.196.66.192:8082;
}
location / {
proxy_pass http://ydc-coding;
}
新增location:
location /Bug {
proxy_pass http://ydc-coding;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Scheme $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
机器调整:
upstream ydc-coding {
server 116.196.66.192:8083;
server 116.196.66.192:8084;
}