在计算机网络中,反向代理是代理服务器的一种。服务器根据客户端的请求,从其关联的一组或多组后端服务器(如Web服务器)上获取资源,然后再将这些资源返回给客户端,客户端只会得知反向代理的IP地址,而不知道在代理服务器后面的服务器簇的存在。
与前向代理不同,前向代理作为客户端的代理,将从互联网上获取的资源返回给一个或多个的客户端,服务端(如Web服务器)只知道代理的IP地址而不知道客户端的IP地址;而反向代理是作为服务器端(如Web服务器)的代理使用,而不是客户端。客户端借由前向代理可以间接访问很多不同互联网服务器(簇)的资源,而反向代理是供很多客户端都通过它间接访问不同后端服务器上的资源,而不需要知道这些后端服务器的存在,而以为所有资源都来自于这个反向代理服务器。反向代理方式是指以代理服务器来接受网络上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给网络上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
反向代理方式和包过滤方式或普通代理方式并无冲突,因此可以在防火墙设备中同时使用这两种方式,其中反向代理用于外部网络访问内部网络时使用,正向代理或包过滤方式用于拒绝其他外部访问方式并提供内部网络对外部网络的访问能力。反向代理服务器是运行有反向代理程序的计算机,通过反向代理,可以绕开端口限制,将一个URL转发到另一个URL,解决80端口问题等。目前比较成熟的开放的反向代理应用有nginx和nat123。ngnix是单纯的反向代理,可以利用nginx自行搭建反向代理服务,不少运营商甚至拿来包装成自己的界面,来运营。nat123是综合了NAT和反向代理,一般用户可以直接用nat123提供的反向代理服务,无需自己再搭建。
反向代理(Reverse Proxy)方式是指以代理服务器来 接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
运行客户端,此时需要通过客户端向服务端请求数据,即需要解决请求地址不能带端口号的问题
51 mac自带apache,占用了80端口
编辑>正向代理服务器,用户可以知道web服务的数据库等系统的IP地址和端口号等敏感息,由于暴露了这些关键信息,容易遭受到恶意攻击所以安全性比较差。
反向代理用到了反向代理服务器,使用反向代理,典型的应用是将防火墙后面的服务器提供给Intenet用户访问,隐藏了web应用服务,如数据库的IP地址、端口号等信息,提高了系统的安全性等,同时使用反向代理还可以实现多台服务器的负载均衡,启用高级的URL和管理技术,使处于不同web服务器系统的web界面同时存在一个URL空间下,提高系统性能。
什么是反向代理服务器
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
用百度百科上的一张展示反向代理服务服务器的作用和工作原理:
工作方式
反向代理服务器其实就是代理了外部网络上的主机对内部网络的访问,对外部网络来说,可以把反向代理服务器看作是一个标准的web服务器,外部网络并不知道所得到的数据来自内部网络的哪个服务器上。反向代理服务器不保存任何网页的真是数据,所有的网页和CGI程序,都保存在内部的web服务器上。因此,对反向代理服务器的攻击不会使网页信息得到破坏,保护了内部服务器,提高了内部服务器的安全性。
可以配置防火墙路由器,使其只允许特定端口上的特定服务器(在本例中为其所分配端口上的代理服务器)有权通过防火墙进行访问,而不允许其他任何机器进出。
在Apache服务器上设置反向代理服务器到内部jetty服务器上
1、在Apache服务器的配置文件目录confd中建立一个配置文件:/etc/>
<VirtualHost 19216801:443>
ServerName 19216802
SSLEngine on
SSLProxyEngine on
SSLCertificateFile /etc/pki/tls/certs/cacrt
SSLCertificateKeyFile /etc/pki/tls/private/cakey
ProxyRequests Off
<Proxy >
Order deny,allow
Allow from all
</Proxy>
ProxyPassMatch (i)^(/backend/kks/sss/)$ >
</VirtualHost>
这里我们假定反向代理服务的ip是19216801,内部服务器的ip是19216802,并且设置了SSL安全验证。该配置文件中指明了一切向/backend/kks/sss的请求都转向内部服务器19216802:8080端口上。
正则表达式:
(i)^(/backend/kks/sss/)$
中,(i)代表忽略大小写,^(/backend/kks/sss/)代表以/backend/kks/sss/开头的,$代表结尾
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)