负载均衡建立在现有网络结构之上,提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽,增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。随着网站的发展,服务器压力越来越大,我们可能首先会将数据库,静态文件分离出去。但是随着发展,单独业务API的请求的压力也会变得很大,这时候我们可能需要做负载均衡将一台服务器面临的压力分散到多台服务器上。

1,Web服务器节点的设置

  • 1.1 在Web服务器A IP:192.168.99.11上部署Joomla站点,确保站点可以正常工作。
  • 1.2 在Web服务器B IP:192.168.99.12上部署Joomla站点,确保站点可以正常工作。

一般情况下,在Web服务器上A,B上的Joomla站点应该完全一样。

2,Nginx负载均衡的配置

负载均衡服务器的IP为 192.168.99.10.需要实现的效果是 用户通过访问 192.168.99.10.系统会自动的调用Web服务器节点上的任一节点为其提供服务,对用户来说,他感知不到web服务器A,B的存在。

要实现这个效果,需要对Nginx进行配置

编辑Nginx的配置文件

vi /etc/nginx/nginx.conf

在配置文件的http节点下定义集群的Web服务器节点

upstream upstream_name{
        server 192.168.99.11:80;
        server 192.168.99.12:80;
 } //upstream_name 可以自定义

在配置文件的server节点下定义转发规则

location / {
            proxy_pass http://upstream_name;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

完整的一个配置例子如下: 

http {
    upstream upstream_name{
        server 192.168.0.28:8001;
        server 192.168.0.28:8002;
    }

    server {
        listen       8080;
        server_name  localhost;

        location / {
            proxy_pass http://upstream_name;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
}

上面的配置没有把默认的一些配置贴出来,大家在使用的时候只需要修改对应的配置即可。做完了上面的配置,重启一下nginx服务器,那么一个初步的负载均衡就实现了。

说明

首先,在http下添加 upstream upstream_name {} 来配置要映射的服务器。其中的upstream_name大家可以指定为服务的域名或者项目的代号。

server下的location 我们将 / 下的全部请求转发到 http://upstream_name ,也就是我们上面配置的服务器列表中的某一台服务器上。具体是哪台服务器,nginx会根据配置的调度算法来确认。

在浏览器中打开192.168.99.10。多刷新几次就可以看到页面上的内容发生了变化。

负载均衡01.png

负载均衡02.png

 

评论 (0)

  • 最新在前
  • 最佳在前