Nginx反向代理负载均衡

环境准备:

   总共四台机器,两台装有Nginx的机器做负载均衡,两台机器装有Apache作为WEB服务器。

机器信息
hostname IP 说明
lb01 192.168.1.19 nginx主负载均衡器
lb02 192.168.1.16 nginx辅负载均衡器
web01 192.168.1.17 Apache做web服务器
web02 192.168.1.18 Apache做web服务器

配置nginx的配置文件,

这里的nginx的安装是用的yum安装CentOS用yum快速安装nginx

移除掉默认的nginx服务

cd /etc/nginx/conf.d/
mv default.conf default.conf.org

编辑host解析

echo "192.168.1.19 blog.zydev.org" >>/etc/hosts
实验一:实现一个简单的负载均衡

增加一个配置文件

vim /etc/nginx/conf.d/upstream01.conf

upstream blog_real_servers {
        server 192.168.1.17 weight=5;
        server 192.168.1.18 weight=5;
}

server {
        listen 80;
        server_name blog.zydev.org;
        location / {
          proxy_pass http://blog_real_servers;
        }
}

重启nginx服务,并测试是否实现负载均衡

测试是成功的,按照1:1实现了转发。

实验2:根据URL中的目录地址实现代理转发(动静分离)

   根据URL进行转发的情况,也称为7层的负载均衡配置,lvs是进行在第四层。

在WEB01中:

echo dynamic > /var/www/html/dynamic/index.html

在web02中:

echo static > /var/www/html/static/index.html

在LB01中:

 vim /etc/nginx/conf.d/upstream01.conf

pstream dynamic_pools {
        server 192.168.1.17:80 weight=5;
}
upstream static_pools {
        server 192.168.1.18:80 weight=5;
}

server {
        listen 80;
        server_name blog.zydev.org;
        location /static/ {
          proxy_pass http://static_pools;
          proxy_redirect off;
          proxy_set_header Host $host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_connect_timeout 90;
          proxy_send_timeout 90;
          proxy_read_timeout 90;
          proxy_buffer_size 4k;
 proxy_buffers 8 4k;
          proxy_busy_buffers_size 8k;
          proxy_temp_file_write_size 64k;
        }
        location /dynamic/ {
          proxy_pass http://dynamic_pools;
          proxy_redirect off;
          proxy_set_header Host $host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_connect_timeout 90;
          proxy_send_timeout 90;
          proxy_read_timeout 90;
          proxy_buffer_size 4k;
          proxy_buffers 8 4k;
          proxy_busy_buffers_size 8k;
          proxy_temp_file_write_size 64k;
        }
}

测试访问:

由结果可以看出实现了URL的不同而访问不同的转发。

原文地址:https://www.cnblogs.com/zydev/p/5928485.html