因为公司有这个需求,故而简单使用vagrant在本地实践一下,但最好使用docker去部署,以后再写其他方式
反向代理概念
反向代理(Reverse Proxy)方式是指以代理服务器来接受客户端连接请求,然后将请求转发给内部网络上的服务器,并将从服务器得到的结果放回客户端,此时代理服务器对外就表现为一个服务器。
负载均衡
既然是负载均衡,那为什么要说反向代理呢,反向代理服务器管理一组服务器,可以根据对应的
负载均衡算法
将不同的请求转发到不同的服务器上,服务器处理完成的响应也通过代理服务器返回给用户。
负载均衡配置
nginx
upstream
目前支持5种调度算法,下面进行解释,其中后面两种需要第三方插件
1.轮询,这也是默认的。每个请求按照时间顺序逐一分配到不同的后端服务器。如果后端某台服务器挂掉了,故障系统可以自动剔除。使用户不受影响
upstream back{
server 192.168.30.11;
server 192.168.30.12;
server 192.168.30.10;
}
2.指定权重。指定轮询几率。weight
和访问比例成正比。用于后端服务器性能不均的情况。
upstream back{
server 192.168.30.11 weight=10;
server 192.168.30.11 weight=20;
}
3.ip_hash.每个请求按访问ip的hash
结果分配。这样来自同一个ip
的访客就固定访问一个后端服务器,有效的解决session
共享问题.
upstream back{
ip_hash;
server 192.168.30.11;
server 192.168.30.12;
}
后面还有两种,没有试过,就不写了。
实践代码
既然是负载均衡,肯定是多台服务器,我使用了
192.168.30.11
,192.168.30.10
,192.168.30.12
在 192.168.30.10
upstream webhost{
# ip_hash;
server 192.168.33.11;
server 192.168.33.12;
}
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
location / {
index index.html index.htm;
proxy_pass http://webhost;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}
其他两台服务器可以使用nginx
,默认配置,访问192.168.33.10
这样就看到效果了
参考文章:https://segmentfault.com/a/11...
https://lufficc.com/blog/conf...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。