代理原理
-
反向代理产生的背景:
在计算机世界里,由于单个服务器的处理客户端(用户)请求能力有一个极限,当用户的接入请求蜂拥而入时,会造成服务器忙不过来的局面,可以使用多个服务器来共同分担成千上万的用户请求,这些服务器提供相同的服务,对于用户来说,根本感觉不到任何差别。
-
反向代理服务的实现:
需要有一个负载均衡设备(即反向代理服务器)来分发用户请求,将用户请求分发到空闲的服务器上。服务器返回自己的服务到负载均衡设备。负载均衡设备将服务器的服务返回用户。
前期准备工作:准备两台centos7的虚拟机,这里我准备的是两台安装了nginx1.24服务的虚拟机主机A:192.168.161.143,主机B是192.168.161.149
首先将两台机器的防火墙都关闭:systemctl stop firewalld setenforce 0 两个防火墙都关掉。
将A机做反向代理,B机做服务器;
打开A机的配置文件名,如果是yum安装的,配置文件都是放在 /etc/nginx/conf.d/下文件叫 default.conf 这是一个子配置文件,如果配置文件不在这里请安装完nginx服务后 用命令“nginx -V”查看。
vim /etc/nginx/conf.d/default.conf 用vim打开并写入如下配置:
proxy_pass :真实服务器的地址,可以是ip也可以是域名和url地址
proxy_set_header:重新定义或者添加发往后端服务器的请求头
proxy_set_header X-Real-IP :启用客户端真实地址(否则日志中显示的是代理在访问网站)
proxy_set_header X-Forwarded-For:记录代理地址
proxy_connect_timeout:后端服务器连接的超时时间发起三次握手等候响应超时时间
proxy_send_timeout:后端服务器数据回传时间,就是在规定时间之内后端服务器必须传完所有的数据
proxy_read_timeout :nginx接收upstream(上游/真实) server数据超时, 默认60s, 如果连续的60s内没有收到1个字节, 连接关闭。像长连接
配置设置完毕后使用命令查看写入的配置语法有没有问题:nginx -t 然后重新加载配置 nginx -s -reload
打开B机的配置文件,查看下页面存放的位置,如果是yum安装的 默认是将页面放在 /usr/share/nginx/ 的html文件内,我们也可以查看配置文件,查看页面文件放在哪个目录内:
vim /etc/nginx/conf.d/default.conf
我们可以用重定向的方式 将要展现的内容写进去:echo “大家好,我是吕春娇”>/usr/share/nginx/index.html
然后我们重新加载下nginx的配置文件 nginx -s reload
然后用浏览器访问 192.168.161.143 看看是否会出现“你好,我是吕春娇”
OK 这里我们反向代理就算是完成了!