是否有可能configurationApache的mod_proxy将503错误视为200,只是直接转发给客户端,而不是显示自己的错误页面?
一直坚持了这几天。 尽量提供尽可能多的信息,但请随时索取额外的细节。 我在NAT后面有两个虚拟机,192.168.0.100和192.168.0.102,都运行Ubuntu 11.04 x64。 第一个是映射到外部,是我们的networking服务器,有一个Apache / 2.2.17安装与几个虚拟主机服务静态内容,也有mod_jk负载平衡。 第二个有一个tomcat 7安装几个J2EE REST的web服务,但没有apache – 请求预计将从.100 apache直接传递给.102 tomcat。 我打算编写一个tomcat集群环境。 我的问题:请求到192.168.0.100没有任何问题,但是然后大约需要100秒才能到达.102-那时候apache已经超时了,而tomcat收到的正常处理请求却很正常。 这在使用mod_jk,mod_proxy或mod_ajp_proxy时都会发生。 不知道为什么,因为在任何一台机器中都没有防火墙,所以两者都是可以ping通的 – 更重要的是,有一些NFS共享像魅力一样工作 – 而mod_proxy的经验表明,源自.100的请求正常处理。 另外,为了增加伤害,我们的办公室networking也build立了类似的环境。 一切正常。 唯一的区别? 我们在办公室没有ip翻译,并且通过内部地址做所有事情 – 不知道是否有任何关联。 一些configuration: Apache vhost: <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/ ServerName www.example.com ProxyRequests Off <Proxy *> Options Indexes FollowSymLinks MultiViews AllowOverride all Order allow,deny allow from all […]
情况:使用mod_proxy运行RHEL,Apache等服务器。 工作正常,最近重新启动。 现在抛出“(111)拒绝连接:代理:HTTP:尝试连接到<IP>:8000(address.com)失败。 更多信息: 1)它正在尝试代理服务器本身 – 但在端口8000 2)重新启动之前,这工作正常 3)在重新启动之前,没有证据显示httpd.conf或iptables发生了变化 我不熟悉mod_proxy所以有几个问题: 1)是否需要iptables打开端口8000? 'nmap -P0服务器-p 8000'显示该端口已closures。 没有证据表明这个港口曾经被专门打开过。 2)是否需要httpd.conf具有“Listen 8000”? 这不是在那里。 所以我不知道如何debugging这个。 这是一个iptables的问题? 或者一个httpd.conf的问题? 我尝试添加“Listen 8000”指令,但没有解决问题。 而且由于假设这条线从来没有在那个年代,httpd.conf文件还没有被编辑过。 运行RHEL AS Release 3(Taroon Update 9) – 无需处理SELinux。
完全公开:由于这似乎是更多的configuration问题,我从堆栈中删除(没有得到任何答复),并转发到这里。 问题是如何更改由Glassfish在mod_proxy_ajp后面提供的requestContextPath。 如果直接连接到Glassfish 8080端口,网站/应用程序运行良好,这最终不是我想要做的。 所以我需要帮助configuration我的服务器和jsf部署。 我可以看到这个问题,但不知道如何解决它。 它与requestContextPath有关。 简单地说,Apache直接到http://mysite.com/welcome.xhtml这是正确的,我想要什么,但页面是减去图像和样式。 问题是Glassfish本身仍然指向http://mysite.com/myapp/* 。 所以它在app / site中提供的所有链接仍然通过requestContextPath引用。 这是http://mysite.com/myapp/welcome.xhtml的/myapp/*部分。 当我查看页面源时,使用相对链接引用的图像仍然指向requestContextPath(即/ myapp /)。 这是可以解决的,但真正的痛苦。 但是,对于页面链接,我无法设置相对path。 如果我将鼠标hover在联系页面链接上,则可以看到http://mysite.com/myapp/contact.xhtml ,如果单击它,则获得404。您也可以在页面源代码中看到/myapp/ contextpath。 如果我inputURL http://mysite.com/contact.xhtml我得到的页面减去其引用的链接(requestContextPath)。 在Apache上 ProxyPass / ajp://littlewalterserver:8009/myapp-web/ ProxyPassReverse / ajp://littlewalterserver:8009/myapp_Project-web 在Glassfish上 asadmin create-network-listener –listenerport 8009 –protocol http-listener-1 –jkenabled true jk-connector 我曾尝试去Glassfish和设置为默认的Web应用程序的Web应用程序。 我已经改变了/在glassfish-web.xml(并检查,以确保它在EAR文件中是相同的)。 我如何让Glassfish不在URL中包含/myapp/ context? 如果你知道怎么做,这一定很容易,但是我不知道怎么样,有人可以帮忙吗? 谢谢。
Apache上有一个现有的应用程序。 我想发送一些URL(Post Forms)到另一个服务器(不是apache – 只是一个程序)进行一些预处理。 这是如何组织的 1)我已经在Apache conf上添加了一个监听端口(比如1234) 2)在端口80添加了一个反向代理服务器,发送一些url到第二服务器上监听它自己的端口 3)由于实际的html托pipe在apache上,所以第二个服务器在端口1234上从Apache请求所需的页面,然后修改html(发布表单)并提供它。 它将发布的数据再次修改并将其发送回apache。 我能够通过以下步骤实现上述1)在我现有的htdocs目录结构中 – 我创build了2个新的子目录dir1和dir2 2)所有需要预处理的表单,我移动到目录dir1。 处理post数据的所有脚本,我移动到dir2。 我改变其他htmls更新path。 3)我添加下面的代理confs ProxyPass /dir1 http://localhost:1234/dir1 ProxyPassReverse /dir1 http://localhost:1234/dir1 同样也适用于dir2。 这工作正常,但我想知道这是否是一个更好的方式来做到这一点。 我正在寻找的主要改进是以这种方式进行反向代理configuration,使得我不会打扰在htdocs中托pipe的原始应用程序(通过将内容移动到dir1,dir2 – 更新引用等)。 有没有办法做到这一点?
我正在使用以下configuration实施反向代理: ProxyPass /home/ http://serverA.com/ ProxyPassReverse /home/ http://serverA.com/ <Location /home/> ProxyPassReverse / ProxyHTMLURLMap /rs/ http://paywall.com/ L ProxyHTMLURLMap / /home/ RequestHeader unset Accept-Encoding </Location> ProxyHTMLURLMap // home /确保所有以/开头的链接被重写为proxy.com/home/。 不过,我希望以/ rs /开头的URLS被重写为paywall.com/。 不幸的是,“ProxyHTMLURLMap / / home /”configuration似乎总是有效的。 如何将“ProxyHTMLURLMap / rs / http://paywall.com/L ”configuration的优先级设置为更高的优先级? 当我注释掉“ProxyHTMLURLMap / / home /”时,将URL重写为paywall.com是有效的。
我一直在尝试使用mod_proxy与httpd和tomcat … 我在VirtualBox运行的科学Linux上有httpd和tomcat 6 ..我做了tomcat6的两个节点。 我遵循这个指南10次,仍然不能得到tomcat的第二个节点工作.. http://www.richardnichols.net/2010/08/5-minute-guide-clustering-apache-tomcat/ 这里是我的http.conf文件中的行 <Proxy balancer://testcluster stickysession=JSESSIONID> BalancerMember ajp://127.0.0.1:8009 min=10 max=100 route=node1 loadfactor=1 BalancerMember ajp://127.0.0.1:8109 min=10 max=100 route=node2 loadfactor=1 </Proxy> ProxyPass /examples balancer://testcluster/examples <Location /balancer-manager> SetHandler balancer-manager AuthType Basic AuthName "Balancer Manager" AuthUserFile "/etc/httpd/conf/.htpasswd" Require valid-user </Location> 现在这是我从node1的server.xml <?xml version='1.0' encoding='utf-8'?> <!– Licensed to the Apache Software Foundation (ASF) under one […]
ProxyRemote语法是: <remote-server> = <protocol>://<hostname>[:port] 所以,我必须把主机名之前的协议。 但是我的代理服务器是xyzn:1234 (没有http ) 而当我以这种方式使用proxyremote时,它不起作用。 (什么都没发生) ProxyRequests On ProxyRemote http http://xyzn:1234 如果我从代理url中删除http:// ,Apache将返回一个错误: ProxyRemote: Bad syntax for a remote proxy server 如何解决? 谢谢。
我拼命尝试在多层设置中configurationgitlabhq,我有一个代理服务器websrv01.kosare.perlur.cz,我使用mod_proxy运行Apache2,然后在不同的服务器上运行多个Web应用程序。 我有一个gitlab-backend.kosare.perlur.cz,我已经安装了gitlabhq,当我尝试连接到10.10.2.2:8080(这是我的独angular兽服务器运行gitlab的IP和端口)它工作正常,但是当我尝试使用gitlab.kosare.perlur.cz这是一个代理服务器上的虚拟主机转发请求到gitlab后端,它不工作,它卡住了。 我在代理服务器上的configuration文件看起来像这样。 <VirtualHost *:80> ServerName gitlab.kosare.perlur.cz RewriteEngine On <代理平衡器:// unicornservers> BalancerMember http://10.10.2.2:8080 </代理> #将所有非静态请求redirect到精简 RewriteRule ^ /(。*)$ balancer:// unicornservers%{REQUEST_URI} [P,QSA,L] ProxyPass /平衡器:// unicornservers / ProxyPassReverse /平衡器:// unicornservers / ProxyPreserveHostclosures <代理平衡器:// unicornservers /> 命令否认,允许 全部允许 </代理> #自定义日志文件位置 ErrorLog /var/log/apache2/gitlab.kosare.perlur.cz_error.log 结合了CustomLog /var/log/apache2/gitlab.kosare.perlur.cz_access.log </虚拟主机> 有没有人有一个线索如何使这个设置工作?
使用该答案: 如何将端口80上的stream量redirect到Tomcat端口8080,同时仍允许服务器在端口80上发送/接收 我已经configuration我的apache2服务器redirect一些请求8080上的glassfish: <VirtualHost *:80> (…) ProxyPass /tomcat/ http://localhost:8080/ ProxyPassReverse /tomcat/ http://localhost:8080/ ProxyPass /tomcat-admin/ http://localhost:4848/ ProxyPassReverse /tomcat-admin/ http://localhost:4848/ </VirtualHost> 在http://my.server.org/tomcat/上 ,我可以清楚地看到: GlassFish Server 3.1.2 Your server is now running 但http://my.server.org/tomcat-admin/返回一个空白的屏幕,但我可以看到pipe理页面的HTML源,所以我想有些资源不能加载。 我应该如何解决这个问题? 另一个问题:如果我的Java Web应用程序使用httpS ,我应该只是添加: ProxyPass /tomcat-secure/ http://localhost:8443/ ProxyPassReverse /tomcat-secure/ http://localhost:8443/ </VirtualHost> ?