反向代理 | LsevenTT博客-站群哥
   

LsevenTT博客-站群哥

认真你就输了

Apache设置反向代理泛目录(二级目录)的方法

Apache设置反向代理泛目录(二级目录)的方法

设置反向代理有三个文件要用apache目录下
\conf\httpd.conf
\conf\extra\httpd-proxy.conf
\conf\extra\httpd-vhosts.conf

1.设置httpd.conf
打开Apache24/conf文件夹下的httpd.conf设置文件,找到一下几行把前面的注释‘#’删除
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_modulemodules/mod_proxy_connect.so
LoadModule proxy_ftp_modulemodules/mod_proxy_ftp.so
LoadModuleproxy_http_modulemodules/mod_proxy_http.so

(Ps:很多人都会注释LoadModuleproxy_balancer_modulemodules/mod_proxy_balancer.so,然而这个是做负载均衡用的一个功能,单纯做反向代理的话,不需要用这个,而且取消了这里的注释不进行相应的设置的话,会导致apache服务无法开启)
然后找到
Include conf/extra/httpd-vhosts.conf
这一行前面的注释‘#’也删除,引入这个文件

apache反向代理二级目录

<VirtualHost *:80>
ServerAdmin webmaster@127.0.0.1    #主机名
#DocumentRoot "d:/**/htdocs/lseventt.com"
ServerName 127.0.0.1
ServerAlias 127.0.0.1
#ErrorLog "logs/lseventt.com-error.log"
#CustomLog "logs/lseventt.com-access.log" common
ProxyPass /abc  http://127.0.0.1:8888/abc
</VirtualHost>

以上代码是把lseventt.com的abc目录反向代理到 http://127.0.0.1:8888/abc上

上面讲的是 开启一个站点的二级目录反向代理,那么如何开启一个站点的二级泛目录反向代理呢?

下面就给大家看一个例子

 

<VirtualHost *:80>
    ServerAdmin webmaster@127.0.0.1    #主机名
    #DocumentRoot "d:/**/htdocs/lseventt.com"
    ServerName 127.0.0.1
    ServerAlias 127.0.0.1
    #ErrorLog "logs/lseventt.com-error.log"
    #CustomLog "logs/lseventt.com-access.log" common
    ProxyPassMatch ^/abc(.*)$   http://127.0.0.1:8888/$1
    ProxyPassMatch ^/abc(.*)/$  http://127.0.0.1:8888/$1

    ProxyPass /abc http://127.0.0.1:8888/abc
    ProxyPassReverse /abc http://127.0.0.1:8888/abc

    <Proxy *>
    Order deny,allow
    Allow from all
    </Proxy>
</VirtualHost>

以上代码的意思是把lseventt.com的abc开头的目录泛解析到http://127.0.0.1:8888/abc上面。

 

 

来说说正向代理与反向代理的区别(附图解)

来说说正向代理与反向代理的区别(附图解)

代理(正向代理

A同学在大众创业、万众创新的大时代背景下开启他的创业之路,目前他遇到的最大的一个问题就是启动资金,于是他决定去找马云爸爸借钱,可想而知,最后碰一鼻子灰回来了,情急之下,他想到一个办法,找关系开后门,经过一番消息打探,原来A同学的大学老师王老师是马云的同学,于是A同学找到王老师,托王老师帮忙去马云那借500万过来,当然最后事成了。不过马云并不知道这钱是A同学借的,马云是借给王老师的,最后由王老师转交给A同学。这里的王老师在这个过程中扮演了一个非常关键的角色,就是代理,也可以说是正向代理,王老师代替A同学办这件事,这个过程中,真正借钱的人是谁,马云是不知道的,这点非常关键。

 


 

反向代理

大家都有过这样的经历,拨打10086客服电话,可能一个地区的10086客服有几个或者几十个,你永远都不需要关心在电话那头的是哪一个,叫什么,男的,还是女的,漂亮的还是帅气的,你都不关心,你关心的是你的问题能不能得到专业的解答,你只需要拨通了10086的总机号码,电话那头总会有人会回答你,只是有时慢有时快而已。那么这里的10086总机号码就是我们说的反向代理。客户不知道真正提供服务人的是谁。

反向代理隐藏了真实的服务端,当我们请求 www.baidu.com 的时候,就像拨打10086一样,背后可能有成千上万台服务器为我们服务,但具体是哪一台,你不知道,也不需要知道,你只需要知道反向代理服务器是谁就好了,www.baidu.com 就是我们的反向代理服务器,反向代理服务器会帮我们把请求转发到真实的服务器那里去。Nginx就是性能非常好的反向代理服务器,用来做负载均衡。

 

正向代理与反向代理的区别

两者的区别在于代理的对象不一样,正向代理是代理的客户端,反向代理是代理的服务端。正向代理隐藏了客户端,反向代理隐藏了服务端。

iis二级目录(泛目录)泛解析反向代理

iis二级目录(泛目录)泛解析反向代理
适用于windows主机首先说一下,IIS6略古老,想做反向代理也基本没戏,所以我就用IIS7.5和IIS8.5说事吧!windows server2008 iis7 利用ApplicationRequest Routing实现二级目录反向代理
先介绍下什么是反向代理?指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。我们可以通过反向代理实现负载平衡、突破防火墙限制等一些非常实用的Web服务器功能,目前反向代理不管在私有云还是公有云的虚拟机上用的很多很多。
第一步:下载安装ARR(Application Request Routing), http://www.iis.net/downloads/microsoft/application-request-routing: 下载、安装过程很简单!
第二步,简要设置ARR,配置应用程序请求路由缓存,安装完成后,IIS里会多出两个图标,分别是Application Request Routing和URL重写。2.0版本(也就是2008或者Win7系统)需要双击ApplicationRequest Routing以后,在右侧Server Proxy Settings里,将代理功能开启,而Win8以后的版本自己默认就开启了:
iis二级目录泛解析反向代理(包含泛目录)
1、设置proxy
iis二级目录泛解析反向代理(包含泛目录)
2、启动proxy
iis二级目录泛解析反向代理(包含泛目录)
应用即可
第三步,设置反向代理:
ARR基本设置好了以后,需要进入一个IIS上搭建好的网站进行URL重写配置。
方法一、修改或者创建网站根目录Web.config有则修改无则创建,内容如下栏目和域名为参数根据自己的需求修改即可
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<defaultDocument>
<files>
<clear />
<add value="index.html" />
<add value="index.php" />
<add value="index.htm" />
<add value="Default.htm" />
<add value="default.aspx" />
<add value="Default.asp" />
<add value="iisstart.htm" />
</files>
</defaultDocument>
<rewrite>
<rules>
<rule name="ReverseProxyInboundRule1" stopProcessing="true">
<match url="^bet(.*)" />
<action type="Rewrite" url="http://118.188.188.88/{R:1}" />
<conditions>
<add input="{HTTP_HOST}" pattern="www.lseventt.com" />
</conditions>
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

 

保存上传到网站根目录即可!

方法二、图形化配置
1、选择你要设置反向代理的网站配置URL 重写
2、添加URL规则
3、选择反向代理即可
4、输入你要反向代理的路径比如www.lseventt.com/links 跳转到118.188.188.88则输入后者如下图:
5、双击修改规则
“模式”改为你要跳转的关键字(二级目录)bet名称
在“条件”中条件输入哪里填写“{HTTP_HOST}”意思是请求的主机名,模式格式为:“^绑定的域名$”添加主机条件当主机名称为www.lseventt.com时才跳转
“重写URL”就不用管了默认生成的
应用即可        总结:
上面的 ^(.*) 、 ^192.168.3.73:8080$ 、http://targetserver:8088/{R:1}
表示:用192.168.3.73:8080替换http://targetserver:8088/,
{R:1}就表示^(.*),意思是“http://targetserver:8088/”后面匹配任何字符
eg:访问192.168.3.73:8080/test/index.htm
这个url就被重写成了http://targetserver:8088/test/index.htm