我想设置一个免费的代理服务器,而不是在每个页面中replacehtml代码,以便在每个访问过的页面中向用户显示一条消息/注释。 到目前为止,它可以通过httpd.conf中的代码正常工作:此代码将body2replace为body 问题是,如果我访问一个https:// url它不会取代html内容 ,因为它应该被encryption是有道理的。 但是,如果在https请求中无法replace代码,是否可以configurationmod_proxy将所有https://请求redirect到http://? ProxyRequests On ProxyVia On <Proxy "*"> </Proxy> RequestHeader unset Accept-Encoding AddOutputFilterByType SUBSTITUTE text/html Substitute "s|body|body2|i"
我有mod_proxyconfiguration为公共代理,所以用户可以使用我的服务器(/ IP),而浏览网页… 我怎么能设置mod_proxy忽略像“谷歌”的特定url/域名,并直接向用户显示该请求(就像它不会使用代理)?
在Apache 2.2.3上使用mod_proxy代理到Tomcat 5.5时,出现502错误的网关错误。 它直接通过Tomcat(而不是通过mod_proxy)使用时正常工作,所以我假设问题是在Apache的结束。 当请求花费比平时更长时,问题就出现了,但是我还没有看到任何模式。 有时候两秒钟太长,有时候七点钟。 Tomcat用于托pipe基于Groovy / Grails的应用程序。 Apache vhostconfiguration有这些相关的条目: ProxyRequests Off ProxyTimeout 1800 <Proxy *> Order deny,allow Allow from all </Proxy> <Location /> ProxyPass http://DOMAIN:8180/ ProxyPassReverse http://DOMAIN:8180/ SetEnv force-proxy-request-1.0 1 SetEnv proxy-nokeepalive 1 </Location> UseCanonicalName off HostNameLookups off 请注意,我已经添加了ProxyTimeout来试图解决这个问题(以前曾经有类似的情况),但并没有帮助。 这两行是旧的,没有他们的情况更糟 – 几乎每个请求上的错误502。 SetEnv force-proxy-request-1.0 1 SetEnv proxy-nokeepalive 1
我有Tomcat的前面的Apache,使用mod_rewrite和mod_proxy中继请求,同时直接提供静态内容。 Tomcat服务器可能会陷入停顿并停止响应,或者只是简单的崩溃。 我的问题是,在这种情况下,它需要与Apache的httpd下来。 甚至在我把Tomcat设置成直线后,它也不会回来。 发生这种情况时,再次运行apache的唯一方法是发出一个停止命令,然后kill -9剩余的apache进程,最近我还必须运行ipcrm来删除信号量,否则我得到一个“设备上没有剩余空间”错误。 我的猜测是,所有的Apache的工人都成为代理线程,等待超时,而没有其他任何服务。 我不想更改ProxyTimeout ,因为在正常的操作过程中,一些请求确实需要很长时间。 但是我想告诉apache停止所有正在等待的代理请求,并重新开始。 有这样的事情,还是有另一种方法,我应该这样做? 我使用的是Ubuntu 8.04。
我正在使用mod_proxy来redirect主要的几个子域的请求到局域网上运行的对应的服务器。 长话短说这里是我的configuration: ProxyRequests off <VirtualHost 0.0.0.0:80> ServerName sub1.dev.enterprise.com ProxyPass / http://localhost:8888/ ProxyPassReverse / http://localhost:8888/ </VirtualHost> <VirtualHost 0.0.0.0:80> ServerName sub1.dev.enterprise.com ProxyPass / http://sub1.dev.enterprise.com:8080/ ProxyPassReverse / http://sub1.dev.enterprise.com:8080/ </VirtualHost> 在Apache重新启动任何请求.dev.enterprise.com /结束在http:// localhost:8888 /为什么这样?
我在CentOS 4上安装了Apache 2.0.52服务器,前端安装了几个App服务器(Jetty和Tomcat的混合)。 Apache有一些像这样configuration的虚拟主机: <VirtualHost www1.example.com:443> ServerName www1.example.com DocumentRoot "/mnt/app_web/html" SSLEngine on SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt SSLCertificateChainFile /etc/httpd/conf/ssl.crt/chain.crt SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0 RewriteEngine on RewriteRule ^/app1/(.*)$ http://app1.example.com:8080/app1/$1 [P,L] RewriteRule ^/app2/(.*)$ http://app2.example.com:8080/app2/$1 [P,L] </VirtualHost> 但是,我间歇性地在日志中收到以下错误: [Fri Dec 04 07:19:41 2009] [error] (113)No route to host: proxy: HTTP: attempt to connect to […]
生产服务器使用大量的AJAX调用,与REST API服务器位于不同的域,所以ProxyPass已成功用于httpd.conf以启用通信。 现在需要添加安全的login到网站。 已经获得并安装了SSL证书,并且对主站点工作正常,但是任何API调用都失败。 ProxyPass指令的forms如下: ProxyPass /58080/ http://(api server) ProxyPassReverse /58080/ http://(api server) 所以API调用是“ http://(production server)/ 58080 / api / endpoint” 看起来好像httpd.conf不是放置httpsredirect的地方。 在ssl.conf中使用这样的东西是否有效? ProxyPass /68080/ http://(api server) ProxyPassReverse /68080/ http://(api server) 或者,API服务器是否也需要能够响应https呼叫呢? 现在,它不能。 如果不行的话,这是否会打败正在努力实现的整个目标 – 这是不安全的? 感谢您的任何build议, 标记…
在铬这个configuration导致无限redirect循环,并在其他浏览器中,我已经尝试了一个请求https://www.example.com/servlet/foo导致redirect到https://www.example.com/foo /而不是https://www.example.com/servlet/foo/然而,这只有当我不包括尾随/在请求url的末尾(即http://www.flightboard.net/servlet/ foo / works就好了)。 <VirtualHost *:80> # … RewriteEngine On RewriteCond %{HTTPS} off RewriteCond %{REQUEST_URI} ^/servlet(/.*)?$ RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L] </VirtualHost> <VirtualHost *:443> # … ProxyPass /servlet/ ajp://localhost:8009/ ProxyPassReverse /servlet/ ajp://localhost:8009/ </VirtualHost> 端口443上的虚拟主机没有可能导致问题的重写规则,被引用的tomcat上下文不会发送任何redirect,并且如果将ProxyPass和ProxyPassReverse指令更改为: ProxyPass / ajp://localhost:8009/ ProxyPassReverse / ajp://localhost:8009/ 一切工作正常(除了从www.example.com的一切都被传递给代理,而不是我想要的行为)。 我相当肯定,这是我的代理设置configuration方式的问题,因为我logging了所有来自Apache的重写输出,这是完全正确的。
我花了下午试图安装mod_proxy模块到Apache。 我努力了 ./configure –prefix=/opt/apache2 –enable-proxy –enable-proxy-http ./configure –prefix=/opt/apache2 –enable-module=proxy 完成安装后,导航到/ opt / apache2 / modules只显示一个文件:httpd.exp。 看来该模块没有被安装。 任何帮助表示赞赏。 谢谢。
我有一台运行mod_proxy的Apache机器,用于代理运行在另一个端口上的本地Tomcat服务器。 问题是Tomcat不支持通配符子域(使用apache / mod_proxy的全部原因),我们的应用程序使用子域来找出数据应该来自哪个帐户。 所以说,有没有办法通过mod_proxy作为URLparameter passing子域? 例如,我有这个: ProxyPass / http://example.com:8080/ 在虚拟主机块,我可以从任何子域访问该网站。 将有可能做到这样的事情: ProxyPass / http://example.com:8080/?subdomain=the_sub_domain_requested 感谢您的帮助… 麦克风