Articles of mod proxy

mod_rewrite:内部重写为(假)干净的URL不可能。

这更是一个为什么问题。 我正在使用CMS,通过开箱即用的mod_rewrite处理干净的URL。 网站有一个部分/accessories ,现在必须重新命名为/store 。 在懒惰模式下,我只是想使用mod_rewrite进行内部重写,因此,在访问example.com/store/ ,我希望透明地从example.com/accessories内容,而不需要任何外部redirect。 到目前为止,我已经试过这个: RewriteEngine On # Internally rewrite /store to /accessories RewriteRule ^store /accessories [L] #also tried with other flags like PT, N, C # All below rules are provided by CMS RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^(.+) – [PT,L] RewriteCond %{REQUEST_URI} !=/favicon.ico RewriteRule ^(.*) index.php 但没有任何工作 […]

隐藏URL中的tomcat上下文path

我已经设置了一个Apache反向代理到正在工作的Tomcat,我可以加载我的url并获得连接到Tomcat后端。 我现在试图做的是重写用户在浏览器中看到的URL。 这是我的代码 – LoadModule proxy_html_module modules/mod_proxy_html.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so # DON'T TURN ProxyRequests ON! Bad things will happen ProxyRequests off # Enabling mod_proxy_html ProxyHTMLEnable On ProxyHTMLLogVerbose On LogLevel Debug SSLProxyEngine on # Setup mod_proxy_ajp load balancer to the 2 happ hosts <Proxy balancer://happcluster> BalancerMember ajp://happ01.domain.com:8009 loadfactor=1 BalancerMember ajp://happ02.domain.com:8009 loadfactor=1 ProxySet lbmethod=bytraffic ProxySet stickysession=JSESSIONID </Proxy> […]

Apache2configuration为ReverseProxy隐藏Cookie由后端服务器设置?

我使用Apache 2.2.16作为反向代理。 对于静态网站,我没有任何问题。 但是,当开始使用cookie时,我注意到浏览器正在接收不同于后端服务器发送的cookie。 我用Wireshark证实了这一点。 这是我的configuration的一个片段: <VirtualHost *:80> ServerName app.somewhere.com:80 ServerAlias app ProxyRequests Off ProxyPreserveHost On <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass /app http://10.xxx/app ProxyPassReverse /app http://10.xxx/app <Location /> Order allow,deny Allow from all </Location> </VirtualHost> 但是,当我尝试直接访问应用程序服务器,我收到cookies确定。 这是Apache2的预期行为吗? 我正在使用HAProxy的另一个应用程序发送cookie到客户端,我得到他们所有人。

Tomcat 7的Apache 2代理

下面的方法 ,我想代理stream量的地址/应用程序由Tomcat 7处理。 我把这个添加到我的httpd.conf中: LoadModule proxy_module {path-to-modules}/mod_proxy.so LoadModule deflate_module modules/mod_deflate.so ProxyPass /app http://localhost:8081 ProxyPassReverse /app http://localhost:8081 我也有这个在我的server.xml: <Connector port="8081" enableLookups="false" acceptCount="100" connectionTimeout="20000" proxyName="localhost" proxyPort="80"/> 我的应用程序文件夹是/var/lib/tomcat7/webapps/app 。 完成上述configuration后,我重新启动了Tomcat 7和Apache 2。 问题:导航到我的webpage.com/app时,出现错误500.我咨询了apache日志,它说: [warn] proxy: No protocol handler was valid for the URL /app. If you are using a DSO version of mod_proxy, make sure the proxy submodules […]

Apache:使用带有URL重写的SSL设置反向代理configuration

有一个主机:secure.foo.com使用https公开web服务 我想创build一个使用Apache的反向代理,将服务器internal.bar.com上的本地http端口映射到secure.foo.com公开的https服务 由于它是一个Web服务,我需要映射所有的URL,以便path: https://secure.foo.com/some/path/123 可以通过以下方式访问: http://internal.bar.com/some/path/123 谢谢。 我已经得到了这么多: <VirtualHost *:80> ServerName gnip.measr.com SSLProxyEngine On ProxyPass / https://internal.bar.com/ </VirtualHost> 我认为这是工作除了URL重写。 我发现的一些资源是: 设置一个复杂的Apache反向代理 Apache作为https服务器的反向代理

反向代理下的Atlassian FishEye + Crucible

我有一个Atlassian FishEye +坩埚在一个标准的HTTP连接在服务器上运行的实例。 但是我们需要通过HTTPS连接从外部访问此实例。 build议的解决scheme? Revese Proxy,对于其他Atlassian产品,例如JIRA和Confluence,已经可以正常工作了。 但是FishEye + Crucible是一个酷刑问题,因为它不能从外面工作:login屏幕没有样式加载(以CSS的方式),它不会login,redirect错误的URL。 我已经尝试了Atlassian提出的解决scheme ,但是没有奏效。 我也尝试了另一个条目中提出的东西 ,并没有再发生。 所以,我问:有没有人有一个线索,使其工作? 我正在使用FishEye +坩埚版本2.7.15和Apache httpd版本2.2。 我的httpd.conf如下所示: <IfModule ssl_module> Include conf/extra/httpd-ssl.conf SSLRandomSeed startup builtin SSLRandomSeed connect builtin </IfModule> <IfModule proxy_module> SSLProxyEngine On ProxyRequests Off ProxyPreserveHost Off <Location /crucible> ProxyPass http://INTERNAL_ADDRESS:LOCAL_PORT ProxyPassReverse http://INTERNAL_ADDRESS:LOCAL_PORT </Location> </IfModule> 和我的config.xml (FishEye +坩埚configuration文件): <web-server> <http bind=":LOCAL_PORT"/> </web-server> 最后,我的架构如下所示: 外部世界/浏览器< […]

mod_proxy是否支持HTML5服务器端事件/事件源?

我坚持与Apache2。 我读过mod_proxy不支持websockets。 它支持EventSource吗? https://issues.apache.org/bugzilla/show_bug.cgi?id=47485

Apache mod_proxy到ssl后端无法正常工作

尝试向SSL后端服务器执行代理时遇到以下错误: [Thu Jan 03 14:44:26 2013] [error] (502)Unknown error 502: proxy: pass request body failed to 192.168.1.10:8443 (192.168.1.10) [Thu Jan 03 14:44:26 2013] [error] [client 192.168.1.103] proxy: Error during SSL Handshake with remote server returned by /subsonic/ [Thu Jan 03 14:44:26 2013] [error] proxy: pass request body failed to 192.168.1.10:8443 (192.168.1.10) from 192.168.1.103 () 我有以下的Apacheconfiguration设置: […]

Apache平衡器,内部IP的工作人员

我打算使用apaches mod_proxy和mod_proxy_balancer为我们的网站之一构build我的第一个平衡器。 没有太多的外部IP,我正在考虑使用每台机器的内部IP,但我不能决定这是否是一个很好的解决方法! 它会不够快? 这是一个可用或不可以?

Apache 2.2:RewriteMap,ProxyPass插值和Keep-Alive

我有一个Apache httpd用作很多后端的SSL反向代理前端。 我从用户给出的path计算后端的名字。 例如: https://myhostname.com/myaccount : https://myhostname.com/myaccount转换为http://myaccount.myhostname.com 为此,我使用了一个RewriteMap和RewriteRule ,并打开了[P]标记。 一切工作正常。 不过,我现在需要反向代理和后端之间的持续连接。 我很清楚保持活着与RewriteRule的[P] ( http://httpd.apache.org/docs/current/en/rewrite/flags.html#flag_p – 性能警告)不起作用,所以我试过使用ProxyPass和环境variables插值来完成工作。 我得到了一个RewriteRule ,除了将映射结果保存到一个环境variables,然后使用这个variables调用ProxyPass之外什么都不做。 RewriteMap mymap prg:/path/to/my/map RewriteCond %{REQUEST_URI} ^/([^/]+)/?.*$ RewriteCond ${mymap:%1} ^http://([^/]+/)$ RewriteRule ^/([^/]+)/?$ – [L,E=original:$1,E=rewritten:%1] ProxyPassInterpolateEnv On ProxyPassReverse /${original}/ http://${rewritten} interpolate 这导致与[P] RewriteRule一样的行为:代理是好的,但不使用http保持活动。 我试着用一个硬编码的主机名来代替使用${rewritten} (但保留${original} ),并观察到这是使Apache创build新连接而不是重用现有连接的一部分。 这个错误: https : //issues.apache.org/bugzilla/show_bug.cgi?id = 43308提出了相同的问题,并提出一个补丁,可以解决我的问题。 不过,我想知道是否有人有一个想法来解决这个不同的/更好的方式。