Nginx-返向代理和负载均衡

0.先看图


  • 红色箭头为“三个”’反向代理,作为一个数据请求的中转站,也起到缓存和增强网站安全的作用
  • 紫色箭头和紫色圈圈为“一个”负载均衡,将请求分散到多个服务器中

我的代码:

upstream jamin_hosts {
        server 118.89.106.129:80 weight=5 ;   #weight=5表示这个服务器被分配到的概率是下面的5倍
        server 192.168.161.130:80 weight=1 ;
}



server {
        listen       80;
        server_name  www.jamin.test www.jamin.com;
        root   /usr/share/nginx/jamin;
        index  index.html index.htm;
        access_log /var/log/nginx/access_jamin.log jamin;

        location /  {
                # rewrite ^(.*)\.htmp$ /index.html;   # 伪静态,意思是在用户访问该网站所有.htmp结尾的网址,都会自动跳转到index.html这个文件。前面是正则表达式,可自定义。
               proxy_set_header Host www.54php.cn;
                proxy_pass  http://jamin_hosts;
        }
}



1.返向代理

一、代理服务器

1、什么是代理服务器

       代理服务器,客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器,代理服务接受客户机请求之后,再向主机发出,并接收目的主机返回的数据,存放在代理服务器的硬盘中,再发送给客户机。


2、为什么要使用代理服务器

1提高访问速度

       由于目标主机返回的数据会存放在代理服务器的硬盘中,因此下一次客户再访问相同的站点数据时,会直接从代理服务器的硬盘中读取,起到了缓存的作用,尤其对于热门站点能明显提高请求速度。

2)防火墙作用

       由于所有的客户机请求都必须通过代理服务器访问远程站点,因此可在代理服务器上设限,过滤某些不安全信息。

3通过代理服务器访问不能访问的目标站点

       互联网上有许多开发的代理服务器,客户机在访问受限时,可通过不受限的代理服务器访问目标站点,通俗说,我们使用的翻墙浏览器就是利用了代理服务器,虽然不能出国,但也可直接访问外网。

二、反向代理 VS 正向代理
1、什么是正向代理?什么是反向代理?



       正向代理,架设在客户机与目标主机之间,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。




       反向代理服务器架设在服务器端,通过缓冲经常被请求的页面来缓解服务器的工作量,将客户机请求转发给内部网络上的目标服务器;并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器与目标主机一起对外表现为一个服务器。

2、反向代理有哪些主要应用?

       现在许多大型web网站都用到反向代理。除了可以防止外网对内网服务器的恶性攻击、缓存以减少服务器的压力和访问安全控制之外,还可以进行负载均衡,将用户请求分配给多个服务器。



2.负载均衡

  • 相关信息提取至:https://www.cnblogs.com/oshine/p/3953259.html
  • 负载均衡 == 分身的能力。
  • 既然要有分身的能力嘛,这好办,多弄几台服务器就搞定了。
  • 今天我们讲的实例嘛…..我们还是先看图比较好

如图:


还是图比较清晰,以下我都用别名称呼:

  PA : 负载均衡服务器/WEB入口服务器/www.mydomain.com
  P1 : WEB服务器/分身1/192.168.2.3
  P2 : WEB服务器/分身2/192.168.2.4
  P3 : WEB服务器/分身3/192.168.2.5

 

PS:首先我们学这个的开始之前吧,不懂防火墙的童鞋们,建议你们把PA、P1、P2、P3的防火墙关闭,尽量不要引起不必要的麻烦。

首先 :PA、P1、P2、P3都安装了Nginx,不会安装的可以去官网查看教程:http://www.nginx.cn/install(中文版教程、非常的牛X)

1. 装完之后哈,我们先找到 PA 的nginx.conf配置文件:
在http段加入以下代码:

upstream servers.mydomain.com { 
    server 192.168.2.3:80; 
    server 192.168.2.4:80; 
    server 192.168.2.5:80;
}

当然嘛,这servers.mydomain.com随便取的。

那么PA的server配置如下:
在http段加入以下代码:

server{ 
    listen 80; 
    server_name www.mydomain.com; 
    location / { 
        proxy_pass http://servers.mydomain.com; 
        proxy_set_header Host $host; 
        proxy_set_header X-Real-IP $remote_addr; 
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    } 
}    

那么P1、P2、P3的配置如下:

server{ 
    listen 80; 
    server_name www.mydomain.com; 
    index index.html; 
    root /data/htdocs/www; 
}

 

2. 有人就问了,我用其它端口行不行啊,当然也是可以的,假设PA的nginx.conf配置文件:

upstream servers2.mydomain.com { 
    server 192.168.2.3:8080; 
    server 192.168.2.4:8081; 
    server 192.168.2.5:8082;
}

server{ 
    listen 80; 
    server_name www.mydomain.com; 
    location / { 
        proxy_pass http://servers2.mydomain.com; 
        proxy_set_header Host $host; 
        proxy_set_header X-Real-IP $remote_addr; 
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    } 
}

 

那么P1的配置如下:

server{ 
    listen 8080; 
    server_name www.mydomain.com; 
    index index.html; 
    root /data/htdocs/www; 
}

 

P2配置:

server{ 
    listen 8081; 
    server_name www.mydomain.com; 
    index index.html; 
    root /data/htdocs/www; 
}

 

P3配置:

server{ 
    listen 8082; 
    server_name www.mydomain.com; 
    index index.html; 
    root /data/htdocs/www; 
}

 

重启之后,我们访问下,恩不错,确实很厉害。
当我们把一台服务器给关闭了后。
访问网址,还是OK的。说明:负载均衡还要懂得修理他(T出泡妞队营)

 

3. 那么负载均衡如何保持通话呢?
当然现在有好几种方案,我们这次只是讲一种。
IP哈希策略
  优点:能较好地把同一个客户端的多次请求分配到同一台服务器处理,避免了加权轮询无法适用会话保持的需求。
  缺点:当某个时刻来自某个IP地址的请求特别多,那么将导致某台后端服务器的压力可能非常大,而其他后端服务器却空闲的不均衡情况。


要想了解更深刻的印象,这儿有篇博文,推荐可以看看:
http://blog.csdn.net/xiajun07061225/article/details/9334477


nginx的配置也很简单,代码如下:

upstream servers2.mydomain.com { 
    server 192.168.2.3:8080; 
    server 192.168.2.4:8081; 
    server 192.168.2.5:8082;
    ip_hash;
}

 

其实一切就这么简单,来赶快试试吧!








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值