nginx反向代理和负载均衡

本文深入探讨了正向代理与反向代理的概念及其在网络中的应用,通过具体案例展示了如何使用Nginx实现反向代理,并详细介绍了负载均衡的原理与实践,包括Nginx中upstream模块的配置与使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、正向代理

正向代理就是我们平时说的代理上网,局域网中的用户通过网关做代理访问外部的网络。

2、反向代理

在计算机网络中,反向代理是一种代理服务器,代表客户端从一个或多个服务器检索资源。然后将这些资源返回给客户机,就像它们源自Web服务器本身一样。与正向代理相反,正向代理是与其关联的客户端联系任何服务器的中介,反向代理是任何客户端与其关联的服务器进行联系的中介。

 

 

 

反向代理案例1:

nginx反向代理的指令不需要新增额外的模块,默认自带proxy_pass指令,只需要修改配置文件就可以实现反向代理。当pc机发送请求172.18.1.26:9011的时候,nginx服务器给转发到172.18.1.22:9100es的集群上去了。

反向代理案例2:

一个nginx服务器,两台httpd服务:

10.10.252.211    nginx服务

10.10.252.212    httpd服务

10.10.252.213    httpd服务

nginx的安装和httpd服务的安装这里就不再描述,我们看一下nginx的配置文件和httpd服务web页面显示。

站点显示的是wyl02目录

站点显示wyl03文件

nginx的配置文件内容:

upstream httpdservers{
  server 10.10.252.212;   #端口是80  所以这里不需要写
  server 10.10.252.213;
 }

 server {
     listen       8080;
     server_name  www.a.com;

      location / {
        proxy_pass http://httpdservers;
        index  index.html index.htm;
      }
 }

不要忘了在自己的本地pc机上配置wyl01机器的ip和域名 不然访问www.a.com是有问题的。重启nginx,我们在网页上输入www.a.com会看到第一次出现wyl02目录的信息,第二次出现wyl03文件的页面。依次出现,如下图所示。

 

3、负载均衡

  网站的访问量越来越大,服务器的服务模式也得进行相应的升级,比如分离出数据库服务器、分离出图片作为单独服务,这些是简单的数据的负载均衡,将压力分散到不同的机器上。有时候来自web前端的压力,也能让人十分头痛。怎样将同一个域名的访问分散到两台或更多的机器上呢?这其实就是另一种负载均衡了,nginx自身就可以做到,只需要做个简单的配置就行。

只需要在upstream的server后面加一个weight即可代表权重,权重越高,分配的数量就越多,默认权重就是1.

nginx 的 upstream目前支持 4 种方式的分配 

1)、轮询(默认) 

  每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 

2)、weight 

  指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 

2)、ip_hash 

  每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。  

3)、fair(第三方) 

  按后端服务器的响应时间来分配请求,响应时间短的优先分配。  

4)、url_hash(第三方)

upstream httpdservers{
  server 10.10.252.212 weight=5;
  server 10.10.252.213;
 }

访问http://www.a.com:8080/次数越多,两者访问的比列是5:1。

nginx的负载均衡

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值