Articles of mod proxy

是否可以使用一个<ProxyMatch>规则匹配多个正则expression式?

我有一个生产,testing和开发服务器的网站,我维护。 所有三台服务器都在Debian 6 GNU / Linux上运行Apache 2.2.16。 我在testing服务器上build立了一个新版本的公司网站,我的团队认为它足够稳定,可以转移到生产环境。 但是,我想尽可能无缝地进行这种转换。 我希望能够在生产服务器上转发请求,以便它们由testing服务器处理。 这样,我可以testing出这个新的实现,而不需要在生产服务器上进行任何复杂的configuration更改。 理想情况下,我可以使用Apache的mod_proxy模块来设置反向代理,以便我可以直接从testing服务器向生产客户端提供页面。 我阅读http://httpd.apache.org/docs/2.0/mod/mod_proxy.html的文档,这对我很有帮助。 我启用了mod_proxy和mod_proxy_http ,然后在我的开发服务器上设置了以下规则。 <VirtualHost *:80> ServerName dev.example.com # … other <VirtualHost>-specific settings … ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http://test.example.com/ ProxyPassReverse / http://test.example.com # … various <Directory> directives … </VirtualHost> 这工作得很好。 当我访问开发服务器时,站点直接从testing服务器提供所有页面,而且看起来好像这些响应直接来自我连接的服务器。 而且,这些请求相当快速,我能够同时进行GET和POST请求,就好像我正在直接与testing服务器交谈一样。 不幸的是,这不符合我的所有需求。 由于testing服务器仅以新版本的站点运行Apache,因此我无法从testing服务器托pipeWebmail或用户。 这些请求必须由生产服务器来处理。 我希望我的生产服务器能够使用反向代理除了 […]

需要根据string模式匹配在uri中redirect到静态url

我有siteminder保护Oracle ADF Java应用程序。 看来我将不得不截获一个由Oracle提供的注销链接的http reqeust来杀死siteminder会话。 我已经缩小到一个用户注销时URI logout = true的参数。 我想mod_rewritefind这个string,并redirect到本地定义到apache代理的静态注销页面。 这可行吗?

HTTP代理 – 期望100和身份validation

我有一个Apache2的问题,我用它作为代理。 我的软件发送HTTP PUT保护资源 Expect: 100-continue Transfer-Encoding: chunked 而不是'401未经授权'我得到'100继续'。 之后,我的软件发送所有的块到服务器,然后我得到401。 它看起来像Apache不转发标题,并自动发送“100继续”。 这是正确的行为? 这里是我在这里find的 If a proxy receives a request that includes an Expect request- header field with the "100-continue" expectation, and the proxy either knows that the next-hop server complies with HTTP/1.1 or higher, or does not know the HTTP version of the next-hop server, it […]

Apache使用中间代理服务器重写(使用身份validation)

使用Apache 2.2,我想从我的内部服务器访问外部服务器(通过Internet访问)。 URL将被重写,以更改主机,所以我会使用mod_rewrite或mod_proxy,不知道哪一个更好的任务。 问题是,要使用HTTP访问Internet,我们必须使用带有身份validation的代理。 由于我可能不是很清楚,下面是一个小图: —– ——— —– clients —> – A – —> – proxy – —> – B – —– ——— —– A是内部服务器,B是外部服务器。 我希望像http:// A / fu / bar这样的URL被redirect到http:// B / fu / bar ,知道有一个代理需要身份validation。 我试过使用这个语法使用ProxyRemote: ProxyRemote * http://proxy.mynetwork.com:8080 它似乎正确地通过代理:当我input一个URL http:// A / fu / bar ,我得到错误“HTTP / 1.1 407代理身份validation要求”。 我只是不知道如何指定代理的凭据。

如何将反向代理configuration为仅通过文件扩展进行代理?

比方说,我有一个带有DocumentRoot和ProxyPass的虚拟主机到应用程序服务器。 我希望代理只转发扩展名为.xyz和.abc的请求,但其他所有内容都应默认为doc根目录。 我怎样才能做到这一点?

OSX上的Apache2,mod_proxy,mod_ssl不起作用

我正在尝试在OSX上设置apache2,并遇到问题。 我试图代理一个域到127.0.0.1:8081(这是启动和运行),但当尝试通过Apache加载,我得到一个“网页找不到”。 我也没有收到error_log来指示发生了什么,“apachectl configtest”返回OK。 这些指令在运行apache2的linux服务器上工作正常。 在启动apache之后,我在日志中看到的最后一条消息是:[notice] Apache / 2.2.20(Unix)mod_ssl / 2.2.20configuration了OpenSSL / 0.9.8r DAV / 2 – 恢复正常操作 任何帮助将是伟大的,我不是apache专家! /private/etc/apache2/extra/http-vhosts.conf TransferLog /var/log/apache2/transfer_log ProxyRequests Off NameVirtualHost *:443 # # THIS IS WORKING OK # EVERYTHING ON PORT 80 IS CHANGED TO HTTPS # <VirtualHost *:80> ProxyRequests Off ProxyPreserveHost On RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) […]

与Apache和Mod_proxy的Glassfish守护进程

我正在尝试安装一个Ubuntu Web服务器,该服务器既利用Apache的httpd Web服务器,也利用基于Java的应用程序的glassfish。 我想我会用mod_proxy,因为我曾经有过这样的运气。 我知道了,所以基本的设置工作。 然而,在试图让glassfish作为一个守护进程运行时,我发现apache / glassfish连接在任何时候停止/重启glassfish而没有重新启动apache。 我可以在这里find我设置glassfish作为守护进程的基本指导: http : //137.254.16.27/foo/entry/how_to_run_glassfish_v3 。 A)有没有办法configuration的东西,所以我可以重新启动glassfish而不需要重新启动Apache? B)如果没有,是否有一个简单的方法来设置我的glassfish守护进程,同时重新启动apache而不依赖于glassfish和apache都在系统上? 换句话说,有一个脚本可以在Glassfish和Apache的服务器上以及只有glassfish的服务器上工作。

图像和AJAX不加载与mod_proxy_html打开

目前,我们公司正在支持一个使用内置Web服务器(由名为Web Server 4D的扩展提供)在第四维(2003)中编写的(非常古老的)启用Web的数据库应用程序。 由于Web服务器没有SSL支持,我们的客户端设置Apache来处理外部HTTPS连接(通过<VirtualHost> ),并使用mod_proxy通过HTTP将所有stream量路由到WS4D服务器。 路由工作正常。 问题在于WS4D服务器在构build页面时经常打印出破损的URL。 由于WS4D服务器不知道Apache,只要打印出一个完整的URL(包含域),就会在URL中打印出一个内部域名和端口号,而不是外部URL(例如http:// localhost:9999 /在家而不是https://www.example.com/home )。 大多数其他链接是相对的(如/img/smiley.png),因此工作正常。 为了解决这个问题,我们尝试设置一个名为mod_proxy_html的第三方Apache模块,用正确的域重写链接。 然而,只要我们在httpd.conf中激活模块( ProxyHTMLEnable On ,但没有定义重写规则),突然之间,我们的PNG和AJAX请求(之前工作的)都无法加载! 我不确定,但我认为服务器可能会返回这些与错误的MIMEtypes。 有谁知道我们如何解决/debugging这个问题? 更新:我检查了PNG的链接,因为它们是相对链接(例如/img/smiley.png),所以它们正在打印出来。 然而,当我把URL放到浏览器中的时候,我得到了一堆乱码(我认为这是一个格式化为文本的二进制图像)。 奇怪的是,最开始有三个HTML标签: <html><body><p> 。 更新2:标记绝对不是由我的浏览器(Safari)添加。 当我closuresmod_proxy_html ,图像正常载入页面,但直接访问URL时仍然以文本方式打开。 closuresmod_proxy_html后,图像源中的<html><body><p>标记消失。

如何在Tomcat中设置默认的URLpath

我已经安装了Tomcat 6和Jenkins。 我可以通过http://localhost/jenkins连接到它,但是我想通过http://localhost直接访问它。 我怎样才能存档这个? 我的完整安装包括安装了Apache2的主机,并将多个子域路由到虚拟机。 所以,如果在Apache中做起来更容易,我也可以做到,但我更喜欢第一个解决scheme。 我对Java和Tomcat世界是全新的,所以这可能很容易,但我没有得到它。

为什么我必须使用mod_proxy来执行setenforce 0在Scientific Linux上对tomcat进行集群

为什么我必须使用mod_proxy来执行setenforce 0在Scientific Linux上对tomcat进行集群 我正在使用Scientific Linux版本6.2,并尝试使用httpd和tomcat来获得mod_proxy。 我想有两个tomcat节点在框中运行,所以我需要将第二个tomcat节点ajp端口更改为diff,然后像8009那样的8109,但是一旦我在Scientific Linux上更改了端口,它就会停止工作,但是我发现如果我一个 setenforce 0 它的作品呢。 有人可以告诉我,我在做什么,如果有人知道更好的是什么让科学Linux上的tomcat节点没有做setenforce 0 谢谢