Articles of mod proxy

Apache请求头读取超时(反向代理)

我一直在我的apache 2.2.22(Ubuntu)日志文件中看到这一点,不知道为什么发生或如何解决它 [debug] ssl_engine_kernel.c(1884): OpenSSL: Write: SSL negotiation finished successfully [info] [client 10.0.0.5] Connection closed to child 3 with standard shutdown (server example.com:443) [info] [client 10.0.0.5] (70007)The timeout specified has expired: SSL input filter read failed. 我已经看到了这个: Apache Proxy TimeOut 我已经尝试了a2dismod reqtimeout_module和这些选项以及: SetEnv proxy-sendchunks SetEnv force-proxy-request-1.0 1 SetEnv proxy-nokeepalive 1 ProxyPass / https://example.com/ connectiontimeout=300 timeout=300 […]

如何通过Apache中的ProxyPass传递参数

我想要做的和我被卡住的是: 我有一个Apache服务器,将抓住某些url,并为他们中的一些,他将使用ProxyPass(或mod_rewrite)作为反向代理传递给另一个Apache实例。 所以我有这样的url: /index.php/info?format=xml&token=SOMENUMERICTOKEN&token=SUMENUMERICTOKEN 我试过了 : PassProxy /index.php/info?format=xml https://1.2.3.4:567/index.php/info?format=xml 和相关的ProxyReverse,但它不工作 也尝试用相同的行重写和[P]结束代理。 他们没有工作。 他们会工作,如果我以/index.php结束,但我不能允许访问index.php

Apache:为虚拟主机中的所有URL添加前缀

在我的一台机器上,我有一个内部服务器,在8090端口进行侦听。 我在Apache中使用virtualhost来使用像servera.mydomain.com这样的URL来代理内部服务器: <VirtualHost *:443> ServerAlias servera.mydomain.com ProxyPass / http://localhost:8090/ nocanon ProxyPassReverse / http://localhost:8090/ … </VirtualHost> 这效果很好,当我从浏览器打开https://servera.mydomain.com ,它将我redirect到http://localhost:8090/ 。 问题是,服务器中的所有URL都以ReportServer开始,因此我实际上必须键入https://servera.mydomain.com/ReportServer才能访问它,这很麻烦。 我努力了: RewriteEngine on RewriteRule ^(.*)$ ReportServer/$1 但是,在日志中只有404错误没有很好的解释。 在虚拟主机的所有URL中放置ReportServer前缀的正确方法是什么? 我可以select前缀是否对浏览器可见吗?

Apache负载平衡器没有故障转移到热备件

发现当主服务器的应用程序响应500错误时,我们的Apache负载平衡器没有故障切换到热备用。 这就是我们如何进行代理设置 <Proxy balancer://hotspare> BalancerMember ajp://node1:8463 loadfactor=100 retry=30 BalancerMember ajp://node2:8463 status=+H retry=0 BalancerMember ajp://node3:8463 status=+H retry=0 ProxySet lbmethod=bytraffic </Proxy> 当node1被closures时,它只能真正的失败。 任何人都可以解释这种行为?

Apache mod_proxy后面的RabbitMQ没有parsing深层链接

我有RabbitMQ在Apache mod_proxy后面运行,所以我可以通过端口80访问Webpipe理界面: <VirtualHost *:80> ServerName rabbit.example.com ProxyRequests Off ProxyPreserveHost On <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http://localhost:15672/ ProxyPassReverse / http://localhost:15672/ <Location /> Order allow,deny Allow from all </Location> </VirtualHost> 这似乎工作,但是,当我例如去队列页面,我点击列出的队列之一,我得到一个未find页面和一个像这样的URL: http://rabbit.example.com/#/queues/%2F/myqueue 连接,频道等相同的事情。我似乎只能够访问顶部页面,但更深层的东西似乎导致未find。 在Apache mod_proxy后面configurationRabbitMQ的正确方法是什么?

无法使用Apache服务gollum wiki

编辑 :最后我解决了这个问题,并发布了下面的解决scheme。 我有一个由本地主机端口4567上的sinatra服务器提供的gollum wiki。我想让它可以从外部访问www.mysite.com/wiki 我已经启动了mod_proxy和mod_proxy_http,在Ubuntu 12.04上运行appache-2.2服务器。 我的vhosts.conf包含: NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot /var/www/mysite ServerName www.mysite.pl ProxyRequests Off ProxyPreserveHost On <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass /wiki/ http://localhost:4567/ ProxyPassReverse /wiki/ http://localhost:4567/ ProxyHTMLURLMap http://localhost:4567 /wiki <Location /wiki> Order allow,deny Allow from all RequestHeader unset Accept-Encoding SetOutputFilter proxy-html ProxyPass http://localhost:4567 ProxyPassReverse /wiki ProxyHTMLURLMap / /wiki/ […]

如何添加新的模块到Apache2 Centos6

当我编译Apache,我忘了添加proxy_http_module我现在怎么添加它? 我的apache安装在这里: /usr/local/apache2 我试图再次编译并得到这个错误: make[1]: Leaving directory `/root/httpd-2.2.31/support' make[1]: Entering directory `/root/httpd-2.2.31' /root/httpd-2.2.31/srclib/apr/libtool –silent –mode=compile gcc -g -O2 -pthread -I. -I/root/httpd-2.2.31/os/unix -I/root/httpd-2.2.31/server/mpm/prefork -I/root/httpd-2.2.31/modules/http -I/root/httpd-2.2.31/modules/filters -I/root/httpd-2.2.31/modules/proxy -I/root/httpd-2.2.31/include -I/root/httpd-2.2.31/modules/generators -I/root/httpd-2.2.31/modules/mappers -I/root/httpd-2.2.31/modules/database -I/root/httpd-2.2.31/srclib/apr/include -I/root/httpd-2.2.31/srclib/apr-util/include -I/root/httpd-2.2.31/server -I/root/httpd-2.2.31/modules/proxy/../generators -I/root/httpd-2.2.31/modules/ssl -I/root/httpd-2.2.31/modules/dav/main -fPIE -prefer-non-pic -static -c modules.c && touch modules.lo gcc -g -O2 -pthread -I. -I/root/httpd-2.2.31/os/unix -I/root/httpd-2.2.31/server/mpm/prefork -I/root/httpd-2.2.31/modules/http -I/root/httpd-2.2.31/modules/filters -I/root/httpd-2.2.31/modules/proxy -I/root/httpd-2.2.31/include -I/root/httpd-2.2.31/modules/generators […]

Apache mod_proxy:基于http头redirect?

我想知道是否可以根据http请求标头值将httpstream量定向到特定的后端服务器。 以“引用者”的http头值为例。 我有2个服务器实例。 一个用于UAT(testing)和一个用于预生产使用。 我想在这两个服务器实例前面有一个Apache反向代理。 而当一个http请求来到时,基于'referer'http头(uat或pre-prod)的值,我希望我的反向代理将请求指向正确的后端服务器实例。 这可能吗? 谢谢

Apache解码分号 – mod_proxy

Apache接收到一个带有编码分号(%3B)的请求,在将请求传递给代理(Spring Tomcat的后端)之前将其解码。 相关的apache虚拟主机行是: ProxyPreserveHost on RequestHeader set X-Forwarded-Proto https ProxyPass / http://127.0.0.1:8081/ ProxyPassReverse / http://127.0.0.1:8081/ 所以例如当一个URL的请求像 http://testsite.com/page/%27+many+times%3B+the+valiant/author 将代理转发为 http://testsite.com/page/%27+many+times/author 有什么我可以做的,以防止阿帕奇解码该URL之前转发给代理? 也许在apache.org/bugzilla上提到相关的问题

如何通过主机名转发到防火墙后的不同Web主机–mod_proxy?

我需要一个快速的解决scheme,允许我在防火墙后面托pipe多个Web服务器。 他们在不同的计算机上,所以我不能使用Apache虚拟主机。 我也不想为每台机器使用不同的非标准端口。 问题是我的路由器只能将端口443转发给一台机器。 我认为最好的解决scheme是使用反向代理或代理转发,但是我一直在理解如何设置这个问题。 我假设我可以将所有443通信端口转发到其中一台服务器,并使该代理服务器。 所有服务器只接受htmlsstream量。 我正在使用DDNS,并且所有服务器都parsing为相同的WAN IP地址。 build立: server1.domain.com =代理和维基服务器 server2.domain.com =文档服务器 server3.domain.com = owncloud服务器 我试图把以下放在server1上的/etc/apache2/conf-available/proxy-pass.conf中: SSLProxyEngine on ProxyPass "/directory" "https://server2.domain.com/directory" ProxyPass "/owncloud" "https://server3.domain.com/owncloud" 这工作,但不是我在找什么。 无论目录如何,我都需要将所有stream量引导到由传入URL域名指定的服务器,因为我在基本URL之后有很多子目录。 就像是: ProxyPass "https://server2.domain.com" "https://server2.domain.com" ProxyPass "https://server3.domain.com" "https://server3.domain.com" 我应该寻找另一种解决scheme,如pound ,还是有办法用apache来做到这一点。 我想我已经安装了Apache,所以使用它?