首页 > 代码库 > nginx 反向代理以及负载均衡实验

nginx 反向代理以及负载均衡实验

实验一:controlelr1作为nginx 反向代理服务器,将静态内容代理到controller3,将php内容代理到controller2

快速部署:controller1地址:9.110.187.120,10.1.1.120,contorller2\3地址+1

controller2安装httpd,php,php已module方式与httpd结合,controler3安装httpd,提供简单的测试页面。

controller1部署nginx,部分配置信息如下:

        location / {
                proxy_pass      http://10.1.1.122;    #controller3地址
                root            /var/www/html;
                index           index.html;
        }

        location ~*\.php$ {
                proxy_pass      http://10.1.1.121;    #controller2地址
        }

测试效果

技术分享

技术分享


补充1:此时后端httpd日志记录的一直是controller1的IP地址,此时更改配置,记录真实客户端地址。

更改前如图:技术分享

在nginx的http段中定义一个首部信息,值为$remote_addr

技术分享

修改后端httpd日志信息,令其记录nginx添加的首部信息

技术分享

重新启动nginx和httpd后可以记录客户端IP

技术分享

补充2:nginx添加缓存功能

nginx 缓存功能需要定义在http配置段中

proxy_cache_path    /var/nginxcache/        level=1:1       keys_zone=nginxcache:10m;

定义缓存路径为/var/nginxchache,名称为nginxcache,时效10m

缓存定义后可在http,server,locaiton中调用:

技术分享

在controller3上放置一张图片,访问后controller1缓存功能开启

技术分享

实验二:nginx 负载均衡

在nginx 中定义upstream,将controller2,controller3添加进来

技术分享

注释掉缓存相关配置,定义权重,连接失败次数3,超时5秒,效果如图

技术分享技术分享

 

nginx 反向代理以及负载均衡实验