一.Nginx方向代理
1.概述
代理分为两类,正向代理和反向代理。
正向代理:帮助用户访问服务器,缓存服务器内容。
反向代理:代理服务器处理用户的请求,决定转发请求给谁处理负载均衡的作用。
2.实现反向代理实验
nginx可以代理七层(应用层)和四层(网络层),代理七层代理比四层代理看到的东西多功能强大,可以看到真实数据。
使用模块: proxy_pass 反向代理的服务器地址或域名;
(1)实验拓扑
(2)实验目的
由pc2代理服务器,代理服务端pc3处理用户pc1的请求
(3)实验过程
①首先准备三台虚拟机且关闭防火墙和selinux,其中pc2和pc3安装nginx。
pc2、pc3执行:
yum install epel-release -y
yum install nginx -y
#安装nginx
②pc2和pc3上创建子配置文件test.conf
pc2、pc3执行:
cd /etc/nginx/conf.d/
touch test.conf
#进入子配置文件目录创建子配置文件
③服务端pc3子配置文件内容
server {
root /etc/nginx/html;
#指定虚拟主机根目录
}
④创建服务端pc3虚拟主机的根目录,并写默认内容为this is pc3在index.html中
mkdir -p /etc/nginx/html;
echo "this is pc3">/etc/nginx/html/index.html
#递归创建文件夹并设置默认主页内容
⑤反向代理服务器pc2的配置文件内容:
server {
listen 80;
#监听所有80端口
server_name www.lhj.com;
#创建虚拟主机www.lhj.com
location /{
proxy_pass http://192.168.30.13
#访问反代的虚拟主机www.lhj.com则由192.168.30.13处理请求
}
}
⑥代理服务和服务端开启nginx服务,并在pc1客户端添加www.lhj.com的对应hosts文件进行测试
pc2、pc3执行:
systemctl start nginx
pc1执行:
sed -i '1a\192.168.30.12 www.lhj.com' /etc/hosts
#在/etc/hosts文件的第一行添加192.168.30.12 www.lhj.com内容
curl www.lhj.com
#访问反向代理服务器
得到内容
this is pc3