Nginx 反向代理实现负载均衡

正向代理&反向代理

所以是讲反向代理的使用,不过这里还是需要提一下这两种代理模式,有比较的情况下更容易理解

  • 正向代理(Forward proxy):

    • 正向代理的服务器角色位于客户端和服务器之间,客户端需要指定一台服务器作为自己上网的代理人,不论访问什么网站,都必须经过代理服务器,之后由代理服务器决定用什么方法和网络路线去访问网站,对于服务器而言只是代理服务器在访问自己。
    • 比如你使用远程连接到互联网上的某台计算机(图形化的远程那种),之后在通过这台远程计算机去上网,实际上这时候就可以讲“可以远程的计算机”理解成为代理服务器。
    • 常见的VPN 实际上也是这个道理,比如现在在中国都无法使用Google 服务,但是香港的某台服务器(或者某台可以远程连接的计算机)可以使用Google 服务,那么身在中国的我只要可以使用这台代理服务器(或者远程到这台电脑),就可以通过它区使用Google 服务了。
  • 反向代理(Reverse proxy):

实现负载均衡

这里也是使用反向代理的机制,比如讲现在有三台主机,其中一台安装Nginx 搭建反向代理服务器(主机1),另外两台安装Apache 做网站服务器(主机2和3)。

PS:三台都是Nginx 也可以

实现的效果,在访问Nginx 服务器之后,将请求代理到Apache 服务器来处理,因为两天Apache 的网页真实数据都是一样的,所以对于客服端来讲就并没有什么直观区别,而对于Apache 来讲,减轻了自己1/2 的请求负担,从而实现负载均衡,负载分担

Nginx 搭建步骤

使用CentOS 6.7 安装Nginx, 其他安装Apache

 主机1主机2主机3  
  角色  反向代理服务器常规网站服务器常规网站服务器  
  服务Nginx 1.14.0ApacheApache  
 地址 192.168.1.1       192.168.1.2    192.168.1.3  

Nginx 配置文件

upstream zhzy_server{ 
     server 192.168.1.2 weight=1; 
     server 192.168.1.3 weight=1; 
}  
server { 
listen 80; 
server_name localhost; 
charset utf-8; 

location / { 
root /usr/share/nginx/html/;
index index. html index.htm;
proxy_pass http://zhzy_server;  
} 
}

upstream zhzy_server #可以理解自定义一个组,这个组中有两个Nginx可以访问的网站

server 192.168.1.2 weight=1; #“weight”其中某台网站服务器其负载请求的比列,数字越大越高,相同则五五开

proxy_pass http://zhzy_server; #将所有访问Nginx本身的求情转发给这台主机(这样写就是上述的那个组)

Leave a comment

电子邮件地址不会被公开。 必填项已用*标注