一、 代理服务器
1、代理服务器:
客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器,代理服务接受客户机请求之后,再向主机发出,并接收目的主机返回的数据,存放在代理服务器的硬盘中,再发送给客户机
2、使用代理服务器的优势
A.提高访问速度
由于目标主机返回的数据会存放在代理服务器的硬盘中,因此下一次客户再访问相同的站点数据时,会直接从代理服务器的硬盘中读取,起到了缓存的作用,尤其对于热门站点能明显提高请求速度
B.防火墙作用
由于所有的客户机请求都必须通过代理服务器访问远程站点,因此可在代理服务器上设限,过滤某些不安全信息。
C.通过代理服务器访问不能访问的目标站点
互联网上有许多开发的代理服务器,客户机在访问受限时,可通过不受限的代理服务器访问目标站点,通俗说,我们使用的翻墙浏览器就是利用了代理服务器,虽然不能出国,但也可直接访问外网
二、 反向代理服务器-nginx
Nginx作为反向代理服务器,安装在目的主机端,主要用于转发客户机请求,后台有多个http服务器提供服务,nginx的功能就是把请求转发给后面的服务器,决定哪台目标主机来处理当前请求。下面演示如何进行配置使Nginx发挥作用:
eg:
1.使用前端nginx代理后端两台web,一个代理后台192.168.10.2的8000端口的web1,一个代理后台192.168.10.3的80端口的web2。
# cat /usr/local/nginx/conf/nginx.conf
user nginx nginx;
worker_processes 4;
error_log logs/error.log info;
pid logs/nginx.pid;
events {
worker_connections 65535;
use epoll;
}
http {
server {
listen 80;
server_name 192.168.10.4;
root /nginxroot/;
location /web1/ {
proxy_pass http://192.168.10.2:8000/;
}
location /web2/ {
proxy_pass http://192.168.10.3/;
}
}
}
重启
[root@li nginx]# /usr/local/nginx/sbin/nginx -s stop
[root@li nginx]# /usr/local/nginx/sbin/nginx &
验证
# elinks 192.168.10.4
# elinks 192.168.10.4/web1/
# elinks 192.168.10.4/web2/
2.基于文件类型的反向代理(可用于做动静分离):
# cat /usr/local/nginx/conf/nginx.conf
user nginx nginx;
worker_processes 4;
error_log logs/error.log info;
pid logs/nginx.pid;
events {
use epoll;
worker_connections 65535;
}
http {
server {
listen 80;
server_name 192.168.10.4;
root /nginxroot/;
location /images/ {
proxy_pass http://192.168.10.3/; #这里后面得加/
}
location ~ .(txt|php)$ {
proxy_pass http://192.168.10.2:8000; #这里后面不能加/
}
}
}
注:1.这里是做的七层代理,上面的配置表示访问192.168.10.4/images/时会调给后面的192.168.10.3的80端口;访问任何以.txt或.php结尾的文件时会调给192.168.10.2的8000端口;其它的由192.168.10.4的nginx自己解析。
2.什么是动静分离?
其实就是七层调度,把动态文件的请求和静态文件的请求分别调到不同的后台服务器。