博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Nginx反向代理与负载均衡

Posted on 2018-11-14 15:02  Tang&An  阅读(128)  评论(0编辑  收藏  举报

一、 Nginx反向代理与负载均衡概念简介 
• 严格地说,Nginx仅仅是作为Nginx Proxy反向代理使用的,因为这个反向代理功能表现的效果是负载均衡集群的效果,所以本文称之为Nginx负载均衡。那么,反向代理和负载均衡有什么区别呢? 
• 普通负载均衡软件,例如大名鼎鼎的LVS,其实功能只是对请求数据包的转发(也可能会改写数据包),传递,其中DR模式明显的特征是从负载均衡下面的节点服务器来看,接收到的请求还是来自访问负载均衡器的客户端的真实用户,而反向代理就不一样了,反向代理接收访问用户的请求后,会代理用户重新发起请求代理下的节点服务器,最后把数据返回给客户端用户,在节点服务器看来,访问的节点服务器的客户端用户就是反向代理服务器了,而非真实的网站访问用户。 
• 一句话,LVS等的负载均衡是转发用户请求的数据包,而Nginx反向代理是接收用户的请求然后重新发起请求去请求其后面的节点。

  • nginx反向代理负载均衡与LVS的区别 
    两者最本质的区别就是LVS等的负载均衡是转发用户请求的数据包,而Nginx是通过反向代理实现负载均衡的,是接收用户的请求然后重新发起请求去请求其后面的节点。 
    其次,nginx工作在OSI网络模型的第7层,所以它可以针对http协议本身来做分流策略,比如针对域名、URI等。lvs工作在网络的第四层,所以lvs并不具备nginx的这些功能,但是lvs可以支持极大的并发,工作效率明显高于nginx反向代理。 
    lvs数据返回时跳过lvs,即LVS :单向的(End user --->LVS---> tomcat ...> end user ) 而Ngnix  有个来回(End user --->Ngnix---> tomcat--->Ngnix ...> end user)

二、Nginx反向代理负载均衡环境准备

1.1环境部署

HOSTNAME IP 说明 
lb01 192.168.0.221 Nginx主负载均衡器 
lb02 192.168.0.222 Nginx副负载均衡器 
web01 192.168.0.223 Web01服务器 
web02 192.168.0.224 Web02服务器

1.2安装Nginx

# yum -y install openssl openssl-devel pcre pcre-devel 安装依赖软件包命令集合 
# tar xf nginx-1.10.2.tar.gz -C /usr/src/ 提前下载好软件 
# cd /usr/src/nginx-1.10.2/ 
# useradd -M -s /sbin/nologin nginx 
# ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module && make && make install 预配置、编译、安装 
# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/ 做软连接

1.3 配置web服务器

(web01 web02 配置相同) 

 

###这里故意将www虚拟主机放在下面,便于用后面的参数配置测试效果

配置完成后检查语法,并启动Nginx服务 
# /usr/local/nginx/sbin/nginx 

 

1.4 创建网页目录

#cd /usr/local/nginx/ 
#mkdir ./html/mail 
#touch ./html/mail/bbs.html 
#touch ./html/mail/yunjisuan.html 
#echo "web1 i am bbs " > ./html/mail/bbs.html 
#echo "web1 i am www" > ./html/mail/yunjisuan.html

1.5 Nginx 反向代理配置

# vim /usr/local/nginx/conf/nginx.conf 

检查语法并重启 
#/usr/local/nginx/sbin/nginx -t 
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok 
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful 
#/usr/local/nginx/sbin/nginx -s reload

1.6 测试 
在宿主计添加hosts映射 
浏览器访问http://www.yunjisuan.com