Articles of mod proxy

如何正确使用VirtualHost和mod_proxy为不同的传入域名和内部端口?

我正在尝试正确设置httpd.conf,但不pipe下面的子域/域组合,它们都parsing为相同的内部URL。 <Proxy *> Order Allow,Deny Allow from all </Proxy> ProxyRequests Off <VirtualHost *:80> Servername jira.firstfactoryinc.com ProxyPreserveHost On ProxyPass / http://localhost:8082/ ProxyPassReverse / http://localhost:8082/ </VirtualHost> <VirtualHost *:80> Servername jira.submitpatientforms.com ProxyPreserveHost On ProxyPass / http://localhost:8081/ ProxyPassReverse / http://localhost:8081/ </VirtualHost> <VirtualHost *:80> Servername mddev-jira.firstfactoryinc.com ProxyPreserveHost On ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/ </VirtualHost> 我究竟做错了什么?

mod_proxy代理并redirect到特定的path

今天我有两个Apache服务器,服务器A(192.168.0.5),服务器B(192.168.0.10),都运行在同一个80端口。 实际的请求是从服务器A和我的configuration传递到服务器B(使用mod_proxy),这是工作。 服务器configuration: NameVirtualHost * <VirtualHost *> ServerName owncloud.mydomain.com ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http://192.168.0.10:80/ ProxyPassReverse / http://192.168.0.10:80/ <Location /> Order allow,deny Allow from all </Location> </VirtualHost> 当我访问mycloud.mydomain.com的请求是访问使用服务器A,但与代理它“代理”服务器B,然后我看到服务器B中的内容,这是伟大的,但现在我的内容是在mycloud.mydomain.com / owncloud,我不知道如何可以使用mycloud.mydomain.com代理和redirect该url。 这是我在服务器A中使用mod_proxy的其他configuration RewriteCond %{HTTP_HOST} ^mycloud\.mydomain\.com$ [NC] RewriteRule ^/(.*)$ http://mycloud.mydomain.com/$1 [P] 我想当一个用户访问mycloud.mydomain.com的mod_proxyredirect和代理到mycloud.mydomain.com/owncloud。 我怎样才能做到这一点? 编辑我 我的新configuration是: RewriteCond %{HTTP_HOST} ^owncloud\.mydomain\.com$ [NC] RewriteRule […]

使用Apache httpdredirect上下文path?

我想代理http://localhost:1006/为http://example.com/public/到外面的世界。 这是我的configuration: RewriteEngine On # Append a slash if necessary RewriteRule ^/public$ public/ [R,L] # Request headers: Replace http://localhost:1006/ with http://example.com/public/ ProxyPass /public/ http://localhost:1006/ # Response headers: Replace http://example.com/ with http://example.com/public/ ProxyPassReverse /public/ http://example.com/ ProxyPassReverseCookiePath / /public/ <Location /public> Require all granted </Location> 这适用于重写头文件,但服务器仍然认为它的上下文path是/而不是/public/所以当它构造的URLembedded到JSON他们是不正确的。 Httpd只重写头文件,而不是JSON文件,所以它没有做任何事情。 我不希望httpd重写JSON(我读的过程是不可靠的)。 我注意到由httpd向服务器发送的Host头包含外部主机名,它使服务器能够更正URL的那部分。 是否有一些其他的头可以设置哪些会指示服务器使用不同的上下文path? 这意味着, 有什么我可以做的httpd这将改变服务器的上下文path,而不直接改变服务器的configuration/代码?

JBoss7负载均衡与mod_proxy_balancer – 会话不工作

我试图设置mod_proxy_balancer路由请求到2 jboss7服务器。 目前,我正在使用httpd.conf中的以下configuration在本地机器上testing此设置: ProxyRequests Off <Proxy \*> Order deny,allow Deny from all </Proxy> ProxyPass / balancer://mycluster/ stickysession=JSESSIONID|jsessionid scolonpathdelim=On <Proxy balancer://mycluster> BalancerMember http://localhost:8080 route=node1 BalancerMember http://localhost:8081 route=node2 Order allow,deny Allow from all </Proxy> 并在每个jboss的standalone.xml文件中定义了jvmRoute系统属性: <system-properties> <property name="jvmRoute" value="node1"/> </system-properties> 在http:// localhost / myapp中,应用程序是可访问的,但java会话不能正确构build。 因此身份validation不起作用。 有趣的是,如果我closures了一个JBoss实例,那么一切正常。 正如我已经尝试了几个设置,我很感激任何进一步的build议。

是否可以通过我的网站显示外部URL的内容?

我有一个域, mydomain.com ,我想显示其他网站的内容。 例如,假设有这个url的内容 – > http://www.foo.com/my/file.bar ,我希望当用户访问http://www.mydomain.com/my/file.bar时显示该页面的内容http://www.mydomain.com/my/file.bar ,没有用户看到foo.com的URL。 我目前在我的.htaccess中使用下面的apache指令: <IFModule mod_rewrite.c> RewriteEngine on RewriteRule ^(.*)$ http://www.foo.com/$1 [L] </IFModule> 但是,这将用户的浏览器redirect到foo.com的URL,我不希望这样做。 这甚至有可能吗?

Apache2虚拟主机反向代理重写资产链接

我有一个Web应用程序运行在我的服务器端口8080上:myip:8080 / app 我有我的httpd.conf中的以下configuration <VirtualHost *:80> ServerName subdomain.mydomain.com ServerAlias mydomain.com ProxyPass /app http://localhost:8080/app/ ProxyPassReverse /app http://localhost:8080/app/ </VirtualHost> 这工作正常,并使应用程序可在subdomain.mydomain.com/app 现在我努力使它在subdomain.mydomain.com(不带/ app)可用。 我第一次尝试 <VirtualHost *:80> ServerName subdomain.mydomain.com ServerAlias mydomain.com ProxyPass / http://localhost:8080/app/ ProxyPassReverse / http://localhost:8080/app/ </VirtualHost> 并补充说 ProxyHTMLURLMap /app/ / 但都似乎没有工作。 主页面加载,但所有JavaScript和CSS链接仍然指向/应用程序/ …返回主HTML页面,而不是资产。 我错过了什么? 我在正确的轨道上还是有一个完全不同(更好)的方式来实现这一目标? 该应用程序是Ubuntu 12.04上的Tomcat 7中的Tapestry Web应用程序。 任何关于performance的见解都会很有趣。

为什么在Apache2.2上使用proxypass的时候没有设置http标题

我有一个安装了mod_proxy和mod_headers的apache2.2服务器。 在使用ProxyPass指令运行的请求上, Header set指令都不起作用,即标题没有在响应中设置。 但是,如果我删除了ProxyPass指令,则会设置标题。 有没有一些configuration,使用mod_proxy时禁用设置标题?

我如何解决在我的Apache-mod_proxy_fcgi-PHP-FPM服务器上反复发生的PHP 503错误?

我遇到了麻烦,我的php-fpm设置。 也许你们可以把我指向正确的方向。 首先,一切工作正常。 但时不时地,我会得到503错误。 一旦我重新加载网站,这些错误就消失了。 他们只出现在php网站,并没有孤立到一个域或一个框架。 我收到了PHPmyAdmin,Wordpress和Typo3中的503错误。 那些是我testing的3个站点。 他们是在单独的虚拟主机,并有不同的PHP-FMP池,但他们共享相同的PHP-FPM主要步骤。 我运行的服务器是Apache 2.4(MPM-Event Workers),没有mod_php或者cgi / fastcgi。 相反,我使用mod_proxy和mod_proxy_fcgi将每个.php文件传递给我的php-fpm进程。 有一点要注意的是,服务器还没有投入生产,所以几乎没有任何stream量。 服务器硬件是强大的,12个VCores和32 GB的RAM。 我的mod_proxy和mod_proxy_fcgi设置是默认的 – 我没有改变任何东西。 我的虚拟主机configuration(代理部分): <FilesMatch "\.php$"> SetHandler "proxy:unix:///opt/php-5.6.11/var/run/php5-fpm-mywebsite.sock|fcgi://mywebsite/" </FilesMatch> <Proxy fcgi://mywebsite/ enablereuse=on retry=0> </Proxy> 注意:我以前在Proxy指令中有最多10个,似乎更频繁地产生了503错误。 现在我已经删除了最多= 10,似乎发生less。 虽然可能只是巧合。 我的PHP-FPM池configuration(相关部分): listen = var/run/php5-fpm-mywebsite.sock listen.owner = mywebsite listen.group = www-data listen.mode = 0660 listen.backlog = 65535 user = mywebsite […]

使用httpd mod_proxy_balancer的“没有对URL有效的协议处理程序”

我正在尝试使用通常由内容pipe理系统提供的本地静态资源静态副本为反向代理服务器设置故障转移。 我已经使用wget获取dynamic站点的静态副本以实现故障转移。 我试过使用类似于Apache的ProxyPass指令的后退位置的configuration? 让事情开始,这是一个相当简单的,但我得到的标题中的错误。 这是我的(消毒)代理configuration: DocumentRoot /var/www/www.example.com/htdocs ProxyRequests Off ProxyPreserveHost On ProxyPass "/site/" "balancer://cms" ProxyPassReverse "/site/" "balancer://cms" ProxyPassReverse "/site/" "http://ip-10-1-1-229.ec2.internal/site/" <Proxy "balancer://cms"> #BalancerMember "http://ip-10-1-1-229.ec2.internal/site/" loadfactor=1 # For localhost services, a backup of the CMS's site BalancerMember "http://127.0.0.1/site-backup/www.example.com/site/" loadfactor=10 status=+H </Proxy> <Directory "/var/www/www.example.com/htdocs/site-backup"> Order allow,deny Allow from all Options Indexes FollowSymlinks DirectoryIndex index.html </Directory> (在这里,我已经评论了进入真正的CMS系统的平衡器成员 – […]

mod_proxy协议处理程序的问题

我尝试使用以下规则(基于' 安装Plone with Apache ')将传入的Webstream量转发到我的Ubuntu设置中的Plone服务器: <VirtualHost *:80> ServerAlias www.mydomain.com ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPreserveHost On ProxyPass / http://localhost:7373/VirtualHostBase/http/mydomain.com:80/plonesite/VirtualHostRoot/ ProxyPassReverse / http://localhost:7373/VirtualHostBase/http/mydomain.com:80/plonesite/VirtualHostRoot/ #ProxyPass / http://localhost:7373/ukpa/ #ProxyPassReverse / http://localhost:7373/ukpa/ </VirtualHost> 这两种变化,但是产生和内部服务器错误,在日志中显示为: [警告]代理:没有协议处理程序是有效的URL /。 如果您正在使用mod_proxy的DSO版本,请确保代理子模块包含在使用LoadModule的configuration中。 我可以通过lynx使用地址http:// localhost:7373 / ukpa / (因此注释掉试图简单地转发到底部)来在本地浏览该站点。 我哪里错了?