`
zhengdl126
  • 浏览: 2538533 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

Apache中的mod_proxy模块应用

阅读更多

Apache模块 mod_proxy手册:http://lamp.linux.gov.cn/Apache/ApacheMenu/mod/mod_proxy.html

 

 

首先在apache(Unix平台最流行的WEB服务器平台)上启用mod_proxy模块,需要注意的是,如果在apache(Unix平台最流行的WEB服务器平台)-2.2上,则还需要加载名为mod_proxy_http的模块。因为2.2系列把代理功能都拆分成N个小模块了。

#a2enmod proxy
#a2enmod proxy_http
#a2enmod proxy_balancer

 

 

 

apache(Unix平台最流行的WEB服务器平台)提供了mod_proxy模块用于提供代理服务,能够支持的包括正向代理、反向代理、透明代理、缓存、负载均衡,HTTP代理、FTP代理、SSL代理等若干强大的功能。

 

在您没有对服务器采取安全措施之前,请不要用ProxyRequests启用代理。

 

Apache可以被配置为正向(forward)反向(reverse) 代理。

正向代理 是一个位于客户端和原始服务器(origin server) 之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。

正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。正向代理还可以使用缓冲特性(由mod_cache 提供)减少网络使用率。

使用ProxyRequests 指令即可激活正向代理 。因为正向代理允许客户端通过它访问任意网站并且隐藏客户端自身,因此你必须采取安全措施 以确保仅为经过授权的客户端提供服务。

反向代理 正 好相反,对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通 请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端,就像这些内容原本就是它自己的一样。

反 向代理的典型用途是将防火墙后面的服务器提供给Internet用户访问。反向代理还可以为后端的多台服务器提供负载平衡,或为后端较慢的服务器提供缓冲 服务。 另外,还可以启用高级URL策略和管理技术,从而使处于不同web服务器系统的web页面同时存在于同一个URL空间下。

可以使用ProxyPass 指令激活反向代理(在RewriteRule 指令中使用[P] 标记也可以)。配置反向代理并不需要 打开ProxyRequests 指令。

 

 

------------------------反向代理

反向代理可以基于一整个站点,也可以基于一个目录。首先在全局配置文件下,加入如下几行,打开反向代理。 proxy.conf

ProxyRequests Off // 使用ProxyRequests 指令即可激活正向代理
<Proxy your_apache(Unix平台最流行的WEB服务器平台)_server_ip:80>
Order deny,allow
Allow from all
</Proxy>


然后新建一个网站,即创建一个标准的<virtualhost>配置段。这里我们将站点/test目录设置为google的反向代理。加入下边内容:

ProxyPass /images/ !
ProxyPass /js/ !
ProxyPass /css/ !

ProxyPass / http://192.168.1.101/
ProxyPass /test1 http://192.168.1.102/
ProxyPass /test http://www.google.com/
ProxyPassReverse /test http://www.google.com/

ProxyPass易理解,就是转发url上的请求. 其中的配置顺序也是需要遵守 。要禁止转发的url需要放在一般的请求之前。对于http://***/images/  http://***/js/ http://***/css/的请求是不予转发的,对于http://***/test1/的请求,会转发到  http://192.168.1.102/ 。ProxyPassReverse就是反向代理

 

然后保存配置文件重新启动apache

 

通过反向代理,我们可以将web服务器放置在防火墙后,在web服务器前端使用mod_proxy配置反向代理,并打开apache(Unix平台最流行的WEB服务器平台)的mod_cache缓存模块,更可以极大的提高对静态内容的访问性能。

 

--------------理解反向代理:
<IfModule mod_proxy.c>
        ProxyRequests Off
        <Proxy localhost:80>
                #AddDefaultCharset off
                Order deny,allow
                Deny from all
                #Allow from .example.com
        </Proxy>
        ProxyPass /it http://192.168.1.117/2222
</IfModule>
访问http://192.168.1.102/it/a==>直接跳转http://192.168.1.117/2222/a/



<IfModule mod_proxy.c>
        ProxyRequests Off
        <Proxy localhost:80>
               # AddDefaultCharset off
                Order deny,allow
                Deny from all
                #Allow from .example.com
        </Proxy>
        ProxyPass /it http://192.168.1.117/2222
        ProxyPassReverse /it http://192.168.1.117/2222
</IfModule>
访问http://192.168.1.102/it/a==>http://192.168.1.102/it/a/

 

------------------------负载均衡

apache自带mod_proxy功能模块中目前可以实现两种不同的负载均衡集群实现方式,第一种是分工合作的的形式,通过各台主机负责不同的任务而实现任务分工。第二种是不同的机器在担任同样的任务,某台机器出现故障主机可以自动检测到将不会影响到客户端 ,而第一种却不能实现,但第一种实现方式的优点在于他是主服务器负担相应没第二种大,因为他只是提供跳转指路功能,形象的说他不给你带路只是告诉你有条路可以到,但到了那是否可以看到你见的人他已经不会去管你了 :)。相比之下第二种性能要比第一种会好很多 ;但他们都有个共同点都是一托N形式 来完成任务的所以你的主机性能一定要好o

 

 

 

下面以在apachemod_proxy下做的反向代理负载均衡为配置实例:
首先要确定域名www.test.com 在DNS上的记录对应apache服务器接口上具有internet合法注册的IP地址,这样才能使internet上对www.test.com 的所有连接请求发送给本台apache服务器。
在本台服务器的apache配置文件httpd.conf中添加如下设置:
proxypass     /news      http://192.168.1.117
proxypass     /it      http://192.168.1.103
注意,此项设置最好添加在httpd.conf文件“Section 2”以后的位置,服务器192.168.1.1-3也应是具有相应功能的www服务器,在重启服务时,最好用apachectl configtest命令检查一下配置是否有误

接下来也是我真正想要介绍的2.2版本后在mod_proxy中新添加的mod_proxy_balancer模块给我们带来的新功能。

首先将在主配置文件http.conf以下Module的注释去掉
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so

再并增加以下元素
ProxyRequests Off
ProxyPass /test  balancer://xuanfei stickysession=jsessionid nofailover=On
<proxy balancer://xuanfei/>
    BalancerMemberhttp://192.168.1.117 loadfactor=1
    BalancerMemberhttp://192.168.1.103  loadfactor=1
</proxy>
ProxyPass为代理转发的Url,即将所有访问/test的请求转发到群集balancer://xuanfei
loadfactor为各主机间的负载比例参数,可是设置不同指数
BalancerMember为群集的成员,即群集服务器A或B,负载均衡服务器会根据均衡规则来将请求转发给BalancerMember。

 

 

 

---------如何查看apache 集群的运行状态

先加载info模块:

#a2enmod info

 

<IfModule mod_status.c>

<Location /s-server-status>
    SetHandler server-status
    Order deny,allow
  #  Deny from all
    Allow from 192.168.1.117
# ip6-localhost
#    Allow from .example.com
</Location>

<Location /server-info>
SetHandler server-info
Order Deny,Allow
#Deny from all
Allow from 192.168.1.117
</Location>

<Location /balancer-manager>
SetHandler balancer-manager
Order Deny,Allow
#Deny from all
Allow from 192.168.1.117
</Location>

ExtendedStatus On
</IfModule>



配置完成后重启APACHE可以通过
http://ip/server-staus
http://ip/server-info                    需要加载info.so
http://ip/balancer-manager
这些URL查看apache 集群的运行状态

 

 

 

 

分享到:
评论

相关推荐

    apache代理mod_proxy、mod_proxy_http代理模块库包下载(32位windows\linux版本).txt

    该软件包是apache的httpd中mod_proxy.so、mod_proxy_http.so代理模块,分别对应包含linux、windows的版本。

    apache mod_rpaf模块,获取反响代理真实IP

    这将把mod_rpaf模块编译并安装到Apache的模块目录中。 **配置mod_rpaf** 在Apache的配置文件(通常是`httpd.conf`或`virtualhost`配置段)中,添加以下行来启用mod_rpaf: ```apacheconf LoadModule rpaf_module ...

    Apache 2.4 中文文档 - Apache 模块 mod_proxy_balancer | Docs4dev.mht

    Apache 2.4 中文文档 - Apache 模块 mod_proxy_balancer | Docs4dev.mht

    apache2.4 mod_jk.so for linux 64bit

    在Java企业级应用中,Apache常作为前端服务器,通过`mod_jk`模块与后端的Tomcat进行通信,实现动态内容的处理。这里我们详细讨论`mod_jk.so`以及在64位Linux环境中的配置和使用。 `mod_jk.so`是Apache的负载均衡器...

    Mod_Proxy+Apache+Tomcat负载均衡与集群配置

    本文档详细介绍了使用mod_proxy模块与Apache和Tomcat结合来实现负载均衡与集群配置的过程。配置前需要准备相应的环境,包括安装JDK、Apache HTTP Server和Tomcat服务器。本文档使用了Tomcat 7.0.2作为应用服务器,并...

    tomcat_apache_mod

    描述中的“tomcat集群配置所需的几个工具”可能包括Apache HTTP Server、Tomcat服务器、mod_proxy模块,以及可能的集群管理工具,如Apache HTTP Server的mod_jk或mod_proxy_ajp模块。这些工具的配合使用,可以实现多...

    Apache负载均衡设置方法 mod_proxy使用介绍

    Apache负载均衡设置方法主要依赖于`mod_proxy`模块,这是一种在Apache HTTP服务器中实现负载均衡和反向代理的功能。负载均衡的目标是分散客户端的请求到多个后端服务器,以优化资源利用,提高响应速度,以及增强系统...

    apache2.2 服务器 mod_jk.so

    在标题中提到的`mod_jk-1.2.26-httpd-2.2.4.so`文件,是针对Apache 2.2.4版本的`mod_jk`模块,版本号为1.2.26,是连接Apache和Tomcat的关键组件。 集成步骤如下: 1. **安装Apache**:文件`apache_2.2.4-win32-x86...

    APACHE(proxy_ajp_stickysession) + TOMCAT实现高可用网站或管理系统集群

    标题中的“APACHE(proxy_ajp_stickysession) + TOMCAT实现高可用网站或管理系统集群”是指通过Apache HTTP服务器的Proxy_AJP模块配合Tomcat的stickysession特性,来构建一个高可用的Web服务集群。这样的集群可以提高...

    Apache与Tomcat的几种连接方式介绍

    mod_proxy连接方式是通过Apache的mod_proxy模块与Tomcat服务器进行通讯,mod_proxy模块可以将请求转发到Tomcat服务器上。mod_proxy连接方式比较简单易用,但是在高并发情况下可能会出现性能问题。 三、mod_proxy_...

    Apache_Http_Server安装与配置完美手册

    在Apache中,可以通过模块mod_proxy和mod_proxy_balancer实现: 1. **mod_proxy**:这个模块允许Apache作为一个代理服务器,转发请求到其他服务器。 2. **mod_proxy_balancer**:用于创建和管理负载平衡群集,它可以...

    apache2.4编译安装包带mod_jk.so

    `mod_jk.so`是Apache的一个模块,它用于连接Apache与Tomcat应用服务器,实现负载均衡和应用级代理,这对于运行Java Web应用程序的环境至关重要。在CentOS 6.5-6.9系统上编译安装Apache 2.4并添加mod_jk.so模块的步骤...

    TOCAT_APACHE.rar_负载 方案_负载均衡

    Apache的 mod_proxy 模块是实现这一功能的核心。这个模块允许Apache作为代理服务器,将HTTP请求透明地转发到内部网络上的其他服务器,比如Tomcat。通过mod_proxy,我们可以设置多个后端Tomcat服务器,形成一个集群,...

    apache +tomcat集群 ajp_proxy实际操作

    Apache与Tomcat结合使用时,通过AJP Proxy不仅可以实现高效的请求转发,还能够构建出高可用、高性能的应用集群。上述配置步骤涵盖了从Apache安装、配置到AJP Proxy与Tomcat集群的具体实施细节,为企业级项目提供了...

    Apache HTTP Server 与 Tomcat 的连接方式介绍

    另一种常见的方式是使用mod_proxy模块,它支持HTTP、HTTPS和AJP(Apache JServ Protocol)协议。通过启用mod_proxy_ajp模块,Apache可以直接通过AJP协议与Tomcat通信。在httpd.conf配置文件中,可以通过ProxyPass和...

    apache 无法加载ssl模块的问题

    在大多数 Linux 发行版中,你可以通过包管理器(如 apt-get 或 yum)来安装,命令通常为 `sudo apt-get install libapache2-mod-proxy-ssl` 或 `sudo yum install mod_ssl`。 2. **配置问题**:检查 Apache 的配置...

    apache转发服务器

    Apache的mod_proxy模块是实现转发功能的关键。这个模块提供了HTTP、HTTPS、FTP等多种协议的代理支持。通过配置Apache的httpd.conf或vhost.conf文件,可以启用mod_proxy并定义转发规则。例如,以下配置将所有对...

    Apache_HTTP_Server_2.4.12_JiSuXia.rar

    4. **模块更新**:Apache 2.4.12中的多个核心模块得到了更新和增强,如mod_rewrite用于URL重写,mod_proxy用于反向代理和负载均衡,以及mod_deflate用于内容压缩,这些都为服务器的灵活性和功能扩展提供了基础。...

    webServer / Apache / apache / apache http server / mod_cluster

    标题中的“webServer / Apache / apache / apache http server / mod_cluster”指的是Apache HTTP服务器的mod_cluster模块。Apache HTTP Server是世界上最流行的Web服务器软件之一,它提供了丰富的功能和强大的性能...

Global site tag (gtag.js) - Google Analytics