部署nginx反向代理、代理缓存服务器和负载均衡
1、部署Nginx反向代理;
2、部署nginx代理缓存服务器,并验证缓存是否生效;
3、部署nginx负载均衡配置,并通过实验验证其作用;
一、部署Nginx 反向代理
172.20.26.167 代理服务器,安装nginx、关闭selinux、防火墙等服务;
172.20.26.198 后端服务器,安装nginx、关闭selinux、防火墙等服务;
172.20.26.140 客户端,关闭selinux、防火墙等服务;
1、在172.20.26.167代理服务器上
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
proxy_pass http://172.20.26.198;
[root@localhost ~]# nginx -s reload
2、在172.20.26.198 后端服务器上yum安装nginx
yum install epel-release -y
yum install nginx -y
echo "this is 26.198 page" > /usr/share/nginx/html/index.html
systemctl restart nginx
3、在172.20.26.140客户端先访问后端服务器,确保直接访问是否有问题?还是代理服务器有问题?
[root@Nginx ~]# curl 172.20.26.198
this is 26.198 page
4、再通过172.20.26.167代理服务器访问,通过v1.jfedu.net域名访问
[root@Nginx ~]# curl 172.20.26.167
this is 26.198 page
[root@Nginx ~]# curl v1.jfedu.net
this is 26.198 page
5、在172.20.26.198 后端服务器上查看访问日志
[root@localhost ~]# tailf /var/log/nginx/access.log
[root@localhost ~]# > /var/log/nginx/access.log 清空/var/log/nginx/access.log 日志
6、获取远程客户端真实ip地址
后端服务器的访问日志中记录的是代理服务器IP,这样不利于分析用户行为,需要把用户访问的IP地址信息传到后端服务器,获取真实的用户IP地址:
在172.20.26.167代理服务器上
[root@bogon ~]# vim /usr/local/nginx/conf/nginx.conf
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
[root@bogon ~]# nginx -s reload
在172.20.26.198后端服务器上
[root@localhost ~]# vim /etc/nginx/nginx.conf
在日志格式中将远程用户IP地址放在首位
$http_x_real_ip
[root@localhost ~]# systemctl restart nginx
在172.20.26.140客户端再次访问代理服务器v1.jfedu.net 、172.20.26.167
在后端服务器上查询访问日志,即可清晰看到用户IP地址信息
[root@localhost ~]# tailf /var/log/nginx/access.log
可以使用awk 取出用户IP地址
[root@Nginx ~]# awk '{print $1}' /var/log/nginx/access.log
二、部署nginx代理缓存服务器,并验证缓存是否生效;
(1)在172.20.26.167代理服务器上
创建cache目录
[root@localhost ~]# mkdir -p /data/nginx/cache
[root@localhost ~]# ls /data/nginx/cache
修改nginx.conf文件,
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
放在http指令块,不能放在server 里面
proxy_cache_path /data/nginx/cache max_size=10g levels=1:2 keys_zone=nginx_cache:10m inactive=10m use_temp_path=off;
proxy_cache nginx_cache;
proxy_cache_key $host$uri$is_args$args;
proxy_cache_valid 200 304 302 1d;
[root@bogon ~]# nginx -s reload
(2)在172.20.26.140客户端上访问代理服务器172.20.26.167 或者 v1.jfedu.net
回到代理服务器上查询缓存情况
[root@bogon ~]# ls /data/nginx/cache
cat /data/nginx/cache 可以查看当前访问的信息
(注:levels=1:2 解释及修改、测试:
1:2为16的3次方,2:2就是16的4次方,最多可以创建3级目录2:2:2 ,即为16的6次方
[root@bogon ~]# vim /usr/local/nginx/conf/nginx.conf
将levels=1:2 改为levels=2:2:2 保存退出
[root@bogon ~]# nginx -s reload
在172.20.26.140客户端访问提示如下:
[root@bogon ~]# nginx -s stop 将nginx服务停止
[root@bogon ~]# /usr/local/nginx/sbin/nginx 重新启动nginx服务
在172.20.26.140客户端访问172.20.26.167 代理服务器
回到172.20.26.167代理服务器上查看缓存
[root@bogon ~]# ls /data/nginx/cache/
levels=2:2:2测试完成。
(3)在172.20.26.198后端服务器上修改访问内容
[root@localhost ~]# vim /usr/share/nginx/html/index.html
保存退出
在172.20.26.140客户端上访问curl 172.20.26.167,依然是不带new的内容
在172.20.26.167代理服务器上清空缓存,并查看缓存为空
[root@bogon ~]# rm -rf /data/nginx/cache/*
在172.20.26.140客户端上访问curl 172.20.26.167,访问到了带new的内容
在172.20.26.167代理服务器上查看缓存,发现已生成带new的缓存内容
三、部署nginx负载均衡配置,并通过实验验证其作用;
代理服务器:172.20.26.167
后端服务器:172.20.26.198
后端服务器:172.20.26.140
[root@Nginx ~]# yum install nginx –y
(2)代理服务器:172.20.26.167
[root@bogon ~]# vim /usr/local/nginx/conf/nginx.conf
将代理缓存关闭
将代理的IP去掉,用一个模块web替代
再用upstream 来定义这个均衡池
保存退出,重载服务
[root@bogon ~]# nginx -s reload
轮询方式
[root@bogon ~]# while true;do curl 172.20.26.167;sleep 2;done
轮询加权重
在172.20.26.167代理服务器上
[root@bogon ~]# vim /usr/local/nginx/conf/nginx.conf
保存退出,重载服务
[root@bogon ~]# nginx -s reload
[root@bogon ~]# while true;do curl 172.20.26.167;sleep 1;done
访问3次172.20.26.198服务器,访问1次172.20.26.140服务器,轮询加权重访问方式。
3、通过nginx将本地镜像软件包发布出去,并实现后端两台服务器均衡;
代理服务器:172.20.26.167
后端服务器:172.20.26.198
后端服务器:172.20.26.24
在后端服务器172.20.26.198上, 挂载本地镜像Centos7
[root@localhost ~]# mount /dev/cdrom /usr/share/nginx/html/
[root@localhost ~]# ls /usr/share/nginx/html/
在location / {上面添加autoindex on;
[root@localhost ~]# systemctl restart nginx
在浏览器中输入172.20.26.24 即可查看挂载的镜像文件内容
在172.20.26.24后端服务器
挂载本地镜像Centos7
[root@Nginx ~]# mount /dev/cdrom /usr/local/nginx/html/
[root@Nginx ~]# ls /usr/local/nginx/html/
[root@Nginx ~]# vim /usr/local/nginx/conf/nginx.conf
在location / {里面添加autoindex on;
[root@bogon ~]# nginx -s reload
在浏览器中输入172.20.26.24 即可查看挂载的镜像文件内容
回到172.20.26.167代理服务器上检查nginx.conf 有没有问题
[root@bogon ~]# vim /usr/local/nginx/conf/nginx.conf
保存退出
[root@bogon ~]# nginx -s reload
在浏览器中输入172.20.26.167 即可查看后端服务器发布的镜像文件内容
我们可以将172.20.26.198后端服务器的nginx 服务停止,访问172.20.26.167没有影响
我们可以将172.20.26.24后端服务器的nginx 服务也停止,172.20.26.167将无法访问
到此,通过nginx将本地镜像软件包发布出去,并实现后端两台服务器均衡的实验完成。