今天无聊,把上几天本身测试的nginx做反向代理负载均衡的步骤记录下来,以供学习记录。
反向代理,我我的理解是经过一台反向代理服务器,把客户端的把有请求按照必定的规则分发给后台的服务器。nginx做反向代理服务器的虚拟机配置以下:html
upstream itest { #正常状况下应该做以下配置 #server 192.168.20.1:80; # 应用服务器1 #server 192.168.20.2:80; # 应用服务器2 #因为我只有一台测试的服务器,因此ip同样,用端口做区别 #一、按照权重大小分配服务器轮询机率,若是全不指定weight则按时间逐个轮询 server 127.0.0.1:7749 weight=3; server 127.0.0.1:8864 weight=5; server 127.0.0.1:9981; #默认weight为1 #二、根据ip_hash分配服务器,每一个ip固定访问一台服务器,可解决session问题,但一般session问题一般都是写入固定memcached或redis服务器来解决的。 ip_hash; server 127.0.0.1:7749; server 127.0.0.1:9981; #三、fair根据响应时间分配,好像要第三方插件支持 #四、url_hash根据url分配,好像也须要第三方插件支持 } server { listen 80; server_name itest.com; location / { proxy_pass http://itest; } }
然后台的服务器,能够是nginx、apache、tomcat等,例如server 127.0.0.1:9981为nginx服务器,则其虚拟机最简配置以下:nginx
server { listen 9981; root /sites/itest/9981; #9981为文件夹,由于为了模拟多台服务器上,因此以路径名做区分 index index.html; }
若是server 127.0.0.1:7749为apache服务器,其最简配置以下redis
<VirtualHost *:7749> DocumentRoot /sites/itest/7749 </VirtualHost>
测试时,只要在/sites/itest/{7749|8864|9981}目录下添加不一样内容index.html,访问看到不一样itest.com正常会看到不一样的index.html内容。
概念问题:我理解的反向代理与负载均衡以前的关系是,反向代理是实现负载均衡的一种方法; 但看到网上一些说法是,反向代理与负载均衡是一个意思; 还有就是反向代理会缓存一些静态资源,更快,而负载均衡会直接访问后台服务器,不会缓存。望看到知道的好人大神们给评一下儿,其它有什么不对的也但愿指点一下apache