好吧,我感觉有点愚蠢。 我试图设置一个简单的Apache反向代理设置,我正在打墙。 我已经有了这个设置在过去,但现在我只是没有看到出了什么问题。 下面是设置: Listen 4050 ServerName lb-test DocumentRoot /www/app ProxyRequests Off Header add Set-Cookie "BALANCEID=hej.%{BALANCER_WORKER_ROUTE}e; path=/;" env=BALANCER_ROUTE_CHANGED <Proxy balancer://cluster> BalancerMember http://appserver1:4050 route=appserver1 BalancerMember http://appserver2:4050 route=appserver2 Order deny,allow Allow from all </Proxy> ProxyPass /balancer-manager ! ProxyPass / balancer://cluster/ stickysession=BALANCEID ProxyPassReverse / balancer://cluster/ <Location /balancer-manager> SetHandler balancer-manager Order deny,allow Deny from None Allow from all </Location> […]
我有一个应用程序运行在http://www.example.com:9090/mycontext上的tomcat。 server.xml的主机名指向www.example.com 。 我没有localhost了。 我正在使用mod_proxy使用Apache转发请求到tomcat。 事情工作正常,只要ProxyPath是/mycontext 。 虚拟主机中的服务器名称设置为www.abc.com , http://www.abc.com/mycontext : www.abc.com正常工作。 不过,我想忽略上下文path,只需使用http://www.abc.com/将请求转发到http://www.example.com:9090/mycontext 。 当我这样做,Apache显示我一个空白页面。 我在这里错过了什么? 除了默认主机www.example.com之外,我没有更改server.xml任何内容。 <VirtualHost *:80> ServerName www.abc.com ProxyRequests Off ProxyPreserveHost On <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http://www.example.com:9090/mycontext ProxyPassReverse / http://www.example.com:9090/mycontext </VirtualHost> 谢谢
我试图用mod_proxy_balancer设置一个平衡的群集。 我从这里按照示例行来设置一个cookie。 我不得不调整它,因为环境不稳定,所以不是每个请求都会返回一个200代码。 Header always add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; <Proxy balancer://cluster> BalancerMember http://server1.example.com route=share2 BalancerMember http://server2 example.com route=share1 </Proxy> ProxyPass /balancer balancer://cluster/ stickysession=JSESSIONID|jsessionid nofailover=On ProxyPassReverse /balancer balancer://cluster/ (我知道stickysession!= ROUTEID,但这是因为这个问题范围之外的原因) 所以在我的本地开发框中获得 Set-Cookie ROUTEID=.share1; 作为响应标题之一,这是我所期望的。 然而在testing环境中,我明白了 Set-Cookie: ROUTEID=.(null); 我不知道如何可以(空),我可以做什么来阻止它为空。 下游服务器可以做些什么来阻止ROUTEID被设置? 或者是有一些其他的configuration选项,可以阻止它?
我有一个natting fw上运行的apache,validation,反向代理,并提供一个ssl封装2个webapps在后端。 这可以根据请求的顶级目录(例如https://example.com/app1/ <-> http://app1/app1/使用虚拟主机和代理。 (见图1) 我想find一种方法来代理请求到一个web服务基于请求中设置的任意头,例如,如果头web_service:coolwebservice设置,它代理回到webservice:8000。 这甚至有可能吗? fig1 [Apache:example.com:443 / FW / NAT] | ┌——————┬——————┐ | | | VVV [app1:80 / app1 /] [app2:8080 / app2 /] [web_service:8000]
我有两个Tomcat实例,一个在端口8080上运行,另一个在8081上运行。两者都部署了一个名为app.war的web应用程序,但它们不仅被不同的端口分开,而且被不同的数据存储区分开。 然而,每个运行在同一个物理盒子上。 我们组织中的防火墙规则指定我只能通过端口443提供HTTPS服务。不支持HTTP,也不支持80,8080或8081的HTTPS。 物理盒运行RHEL5,在eth0上运行一个IP。 DNS设置为映射到app1.example.com和app2.example.com的框。 如何configuration我的httpd重写/代理,以指导app1.example.com:443到本地主机:8080和app2.example.com:443到本地主机:8081? 编辑 : 这是我试过的… LoadModule ssl_module modules/mod_ssl.so Listen 443 NameVirtualHost *:443 ProxyRequests Off <VirtualHost *:443> ServerName app1.example.com SSLProxyEngine On SSlProxyMachineCertificateFile /etc/httpd/cert/10year.pem SSLVerifyClient Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / https://app.example.com: / ProxyPassReverse / https://app.example.com:8080/ ProxyPassReverseCookieDomain app.example.com app1.example.com <Location /> Order allow,deny Allow from all </Location> </VirtualHost> […]
我有2个apache 2.2.21一个外部和一个内部,我需要映射内部apache在外部apache后面的path,但我有一些绝对url的问题。 我试过这些configuration: RewriteEngine on RewriteRule ^/externalpath/(.*)$ http://internal-apache.test.com/$1 [L,P,QSA] ProxyPassReverse /externalpath/ http://internal-apache.test.com/ 要么 <Location /externalpath/> ProxyPass http://internal-apache.test.com/ ProxyPassReverse http://internal-apache.test.com/ </Location> 我的内部apache使用search资源的绝对path作为图像,CSS和HTML,我现在不能改变它。 有些build议? 谢谢
解释标题,我已经把这个(这是唯一的htmlUrlMap)在我的conf: ProxyHTMLURLMap / /rp/ticket/ 这在我的HTML: <script type="text/javascript" src="/js/jquery-1.8.3.min.js"></script> 预期的是: <script type="text/javascript" src="/rp/ticket/js/jquery-1.8.3.min.js"></script> 实际产量: <script type="text/javascript" src="/rp/ticket/rp/ticket/js/jquery-1.8.3.min.js"></script> 这是奇怪的…,更多的configuration: <Location /rp/ticket/> ProxyHTMLEnable On ProxyHTMLBufSize 102400 ProxyHTMLExtended On ProxyHTMLStripComments Off ProxyHTMLDocType "<!DOCTYPE html>" ProxyHTMLMeta Off ProxyHTMLCharsetOut * ProxyHTMLURLMap / /rp/ticket/ ProxyPass http://ticket.domain.com/ ProxyPassReverse http://domain.com/ SetOutputFilter INFLATE;proxy-html;DEFLATE RequestHeader unset Accept-Encoding </Location> 我最好的猜测是<location>是问题的原因,它被附加到我的自定义地址,但在改变地址到不同的地方(“/ rp / test”)而不是获得 src="/rp/ticket/rp/test" 我有 src="/rp/test/rp/test" 所以这不是问题 […]
我有一个使用mod_proxy的Apache2后面的Tomcat 7.0.57集群设置。 Setup: Apache2 :192.168.2.139 Tomcat Node1 :ajp://192.168.2.166:8010(端口8082上也定义了http连接器) Tomcat Node2 :ajp://192.168.2.166:8011(在端口8083上也定义了http连接器) 我有一个使用Parallel Deployment的Java Web应用程序(使用Jersey , ExtJS和其他一些好东西)。 部署工作正常,调用应用程序也是如此(使用Apache2作为代理,意思是http://http_proxy_ip/WebAppContext/app.html )。 ExtJS前端显示正常。 WEB-INF/web.xml的应用程序: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <distributable /> <servlet> <servlet-name>FGJobServlet</servlet-name> <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> <init-param> <param-name>com.sun.jersey.config.property.packages</param-name> <param-value>com.freightgate.quartz.servlet</param-value> </init-param> <init-param> <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name> <param-value>true</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>FGJobServlet</servlet-name> <url-pattern>/scheduler/*</url-pattern> </servlet-mapping> </web-app> mod_proxy.conf <VirtualHost *:80> DocumentRoot /var/www/html/ […]
我一直试图通过NodeJS处理所有的请求,除了通过mod_proxy进入/ admin目录,但没有成功。 这是我想出的configuration,但它不工作。 <VirtualHost *:80> ServerName domain.com DocumentRoot /home/sites/domain.com/ RewriteEngine on ReWriteCond %{SERVER_PORT} !^443$ RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L] </VirtualHost> <VirtualHost *:443> ServerName domain.com DocumentRoot /home/sites/domain.com/ ProxyRequests on ProxyPassMatch ^/(.*)$ http://localhost:3000/ ProxyPassMatch ^/admin/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/home/sites/domain.com/php/public/$1 timeout=600 ProxyTimeout 600 SSLEngine on SSLCertificateFile /home/keys/domain.com.crt SSLCertificateKeyFile /home/keys/domain.com.key </VirtualHost>
我在几个地方问过这个问题,但是我没有find答案。 这应该是相当简单的和一个相当普遍的问题。 不幸的是,我对tomcat和mod_proxy一无所知,所以我无法弄清楚。 我有几个应用程序运行在tomcat,安装为战争,我可以访问他们在myserver.com:8080/myapp 我只是想创build一个Apache虚拟主机,使用mod_proxy将myapp.myserver.com转发到这个myserver.com:8080/myapp 。 哈德森是一个完美的例子,没有额外的configuration,只是一个部署的战争。 所以我设置了下面的apache vhost: <VirtualHost *:80> ServerName hudson.myserver.ca ProxyPreserveHost On ProxyPass / http://localhost:8080/hudson ProxyPassReverse / http://localhost:8080/hudson </VirtualHost> 和我的proxy.conf是: <IfModule mod_proxy.c> ProxyRequests Off <Proxy *> AddDefaultCharset off Order deny,allow Allow from all </Proxy> # Enable/disable the handling of HTTP/1.1 "Via:" headers. # ("Full" adds the server version; "Block" removes all outgoing […]