环境准备:
总共四台机器,两台装有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=;
server 192.168.1.18 weight=;
} server {
listen ;
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: weight=;
}
upstream static_pools {
server 192.168.1.18: weight=;
} server {
listen ;
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 ;
proxy_send_timeout ;
proxy_read_timeout ;
proxy_buffer_size 4k;
proxy_buffers 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 ;
proxy_send_timeout ;
proxy_read_timeout ;
proxy_buffer_size 4k;
proxy_buffers 4k;
proxy_busy_buffers_size 8k;
proxy_temp_file_write_size 64k;
}
}
测试访问:
由结果可以看出实现了URL的不同而访问不同的转发。