后端开发学习笔记-代理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaoxiao20121314/article/details/80946489

                                    后端学习笔记--代理

1.代理的定义

    代理是一段程序代码,通过重写请求的url实现转发功能。在web浏览器和服务器之间扮演“传话人”接收由客户端发送的请求并转发给源服务器,并将从原服务器获得的响应数据返回请求的客户端。

2.代理服务器的分类

    (1)按照是否缓存源服务器的响应分为缓存和透明代理服务器

   缓存代理服务器:当客户端第一次请求时,代理服务器从源服务器获得响应,通过查看通用首部中的Cache-Control字段的值,决定是否缓存此次响应,已经当缓存了此次响应后,但客户端请求相同资源时,在多久时间之内可以不询问源服务器直接返回响应内容。

    透明代理服务器:主要看是否对请求和响应报文进行修改,正常的反向代理服务器都会对响应的信息进行修改,已达到保护源服务器免受恶意攻击的目的。主要实现则是将响应字段中与源服务器相关的信息替换为代理服务器的信息,比如IP地址,端口号等。透明代理则是仅仅实现转发功能,不会对请求和响应做任何修改。

   在客户端发起HTTP请求经过代理服务器时,都会在通用首部中添加自己的信息并随响应返回,主要为了告诉服务器从哪里返回响应。

3.正向代理

        正向代理则是对服务器端透明,当我们要访问某一网站的相关资源时发现自己没有访问权限,此时正好我们有一台我们有权限访问的代理服务器有获得响应资源的权限,我们可以通过设置请求的代理服务器帮我们把资源拿到并返回供我们使用。而且通过正向代理访问资源,可以达到隐藏身份的目的。

4.配置正向代理

    (1)浏览器设置

    打开常用的浏览器--打开菜单--选择工具--Internet选项--连接--局域网设置--勾选代理服务器下单选择框--填入代理服务器的IP和端口号--确定

步骤1

步骤2

步骤3

步骤4

默认代理服务的端口号为80,可根据实际情况进行设置

(2)nginx正向代理服务器设置:更改nginx.conf文件中的http设置,主要更配置proxy_pass、listen以及Host字段,例如:

server {

resolver 8.8.8.8; # 设置DNS域名解析器的IP地址

resolver_timeout 5s;

listen 192.168.56.102:8080; # 代理服务器的地址+端口号#access_loglogsq/host.access.log main;

location /{

proxy_pass $scheme://请求代理服务器的url;

proxy_set_header Host$代理服务器的主机名

proxy_connect_timeout 5;

}

}

5.反向代理

反向代理与正向代理是相对应的,反向代理对客户端是透明的,即当用户向服务器发起请求时并不知道自己请求的是一台代理服务器,而代理服务器从源服务器获得相应资源后,(非透明)代理服务器会将响应报文中有关源服务器信息的字段改为自己的信息,然后将报文发送给客户端,这样有效的隐藏了源服务器,降低了源服务器被攻击的可能性。

6.nginx反向代理配置如下

server

{

listen80;//监听的端口号

server_namexxx456.tk;//转发的主机名(客户端请求的资源)

location/ {

proxy_redirect off;

proxy_set_header Host $host;//代理的主机

proxy_set_header X-Real-IP $remote_addr;//请求的真实IP(客户端)

proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;

proxy_pass http://192.168.10.40:80;//转发的IP地址和端口号

}

access_loglogs/xxx456.tk_access.log;

}

7.总结

        正向代理实现隐藏客户端的身份,实现获取防火墙外部的资源的方式;反向代理实现对客户端的透明化,获取防火墙内部源服务器的资源,同时可以实现负载均衡和虚拟服务器的功能,即在同一台服务器上存在不同的域名和端口,但他们的IP相同,此时在请求时要给出详细的Host信息

猜你喜欢

转载自blog.csdn.net/xiaoxiao20121314/article/details/80946489
今日推荐