Questions tagged «mod-proxy»

apache网络服务器的模块,apache可用作代理服务器。通过此模块,apache可以充当常规代理或上游服务器的反向代理。

1
ProxyPass返回404时的Apache Httpd自定义ErrorDocument 404
我使用Proxy Pass在另一个应用程序服务器的前面有一个Apache Web服务器。当对应用程序的请求返回错误404时,我想显示来自Web服务器的自定义错误页面,而不是来自应用程序服务器的错误页面。我试图在虚拟主机上设置ErrorDocument 404,但是它不起作用。我应该怎么做?还是这不可能? <VirtualHost *:80> ServerName servername DocumentRoot /somepath/ ProxyPass / http://localhost:8080/someapp/ ProxyPassReverse / http://localhost:8080/someapp/ ErrorDocument 404 /error.html </VirtualHost>

3
了解htaccess中的Apache 2.4 mod_proxy_fcgi和RewriteRules
我们最近将其中一台Web服务器切换为apache 2.4,并通过php-fpm和mod_proxy_fcgi运行PHP。大多数事情都运行良好,但是有一个我还不了解的问题。我们的网站之一正在运行WordPress,该网站在其.htaccess文件中提供了大量重写规则。似乎这些与vhost设置中的ProxyPass指令不能很好地配合使用。 我们的虚拟主机包含以下配置: ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.2:9126/<path>/$1 在大多数情况下,这是可行的。 现在,htaccess文件可以执行以下操作: RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L] RewriteRule . index.php [L] 由于该站点是子目录中的多博客,因此我读到URL /blogname/wp-admin/load-styles.php?xxxx应该重写为wp-admin / load-styles.php?xxx(第二个重写规则)。但是查看mod_proxy日志,实际上传递的请求是/blogname/wp-admin/load-styles.php。 我读此书是因为存在优先级问题– ProxyPass规则在所有RewriteRules处理完毕之前就触发了。 我受阻-可能是什么原因?

2
如何基于http vs https将mod_proxy配置为ProxyPass?
我有启用了SSL的Apache Tomcat。我让Apache HTTP Server充当反向代理,因此如果用户点击http:// myserver / tomcat /,我将被传递给http:// myserver:8080。 ProxyPass /tomcat/ http://myserver:8080/ ProxyPassReverse /tomcat/ http://myserver:8080/ 我也为SSL配置了Apache HTTP服务器,因此当用户点击https:// myserver / tomcat /时,应该将它们传递到https:// myserver:8443 /。 使用当前的ProxyPass和ProxyPassReverse配置,它们将被重定向到非SSL URL。如何设置代理通过,以便根据传入请求将其重定向到其他协议和端口? 也就是说,如果有人通过HTTPS进入,如何将他们重定向到我的tomcat @ https:// myserver:8443? 更新: @ mike-insch 我试过了: NameVirtualHost *:443 <VirtualHost *:80> ProxyPass /tomcat/ http://myserver:8080/ ProxyPassReverse /tomcat/ http://myserver:8080/ </VirtualHost> <VirtualHost *:443> ProxyPass /tomcat/ https://myserver:8443/ ProxyPassReverse …

2
ProxyPassReverse指令的用途是什么
apache.org的定义说: 该指令使Apache httpd可以调整HTTP重定向响应中Location,Content-Location和URI标头中的URL。当Apache httpd用作反向代理(或网关)以避免由于后端服务器上的HTTP重定向位于反向代理后面而导致绕过反向代理时,这是必不可少的。 仅上面特别提到的HTTP响应标头将被重写。Apache httpd不会重写其他响应标头,默认情况下也不会重写HTML页面内的URL引用。这意味着,如果代理内容包含绝对URL引用,则它们将绕过代理。要重写HTML内容以匹配代理,必须加载并启用mod_proxy_html。 path是本地虚拟路径的名称;url是远程服务器的部分URL。这些参数的用法与ProxyPass指令的用法相同。 有人可以解释一下它是如何工作的。通常,该指令有什么作用?

3
ProxyPreserveHost上的各个proxypass规则
我的Web主机上有两个proxypass规则,一个指向用于缓存目的的本地清漆实例,我希望启用ProxyPreserveHost,另一个指向第三方托管的站点,而我希望禁用ProxyPreserveHost。无论如何,我可以按规则/通过方式执行此操作吗?

2
使用中间的Apache Proxy重写302 App Server重定向URL
我有一个奇怪的设置。看起来像这样: Browser ----------> HTTPs Proxy ------> Apache HTTP -----> Tomcat AJP HTTPS HTTP AJP 在HTTPS代理(一个非常笨的代理)上,出现了一个类似于https://proxy.domain.com/app的URL。然后使用HTTP像http://apache.domain.com/app一样将其通过隧道传输到Apache(传入主机proxy.domain.com)。然后,Apache使用AJP协议在本地将请求隧道传输到ajp:// localhost:8009 / app /。 有时,应用服务器希望重定向请求的路径。例如,将/ app /重定向到/ app / webapp。因此,它将302发送回apache,以重定向路径-可能类似于ajp:// localhost:8009 / app / webapp。然后,Apache将重定向URL重写为http://proxy.domain.com/app/webapp。HTTPS代理很笨,因此它不会分析重定向并将http更改为https。 因此,我想弄清楚是否可以配置Apache重新编写302重定向URL,以将用户发送到https。 这是我到目前为止在Apache的https.conf中拥有的配置: ProxyPreserveHost on RewriteEngine on RewriteRule ^/app$ /app/ [PT] ProxyPass /app ajp://localhost:8009/app 我尝试使用ProxyPassReverse,但无法弄清楚如何强制使用https而不是http重写302重定向URL。 有什么想法吗?

1
Apache ProxyPass或ProxyPassMatch从代理中排除文件
我将VirtualHost设置为将所有请求代理到在端口9000上运行的另一台服务器。 我有的 : ProxyPass / http://localhost:9000/ ProxyPassReverse / http://localhost:9000/ 我尝试过的 ! ProxyPass /test.html http://localhost:9000/ ProxyPass /test.html ! http://localhost:9000/ ProxyPassMatch !^/(.*\.html)$ http://localhost:9000/$1 没有一个起作用... 我想从一个文件中排除一个文件或一组文件,该文档说了一些有关“!指令在您不希望反向代理子目录的情况下很有用。”,但是没有示例。对于那种情况。

5
如何将Web服务器的DNS从一个IP地址平稳地迁移到另一个IP地址?
我目前在Linux / Apache服务器上注册了一个域名,该域名将用新IP地址上的另一个域名替换。 迁移数据将相对较快,在此过程中中断5分钟是可以接受的。 DNS记录的TTL显然为6到12个小时,我无法加快速度。 这种变化可能带来什么后果?假定仍在查看旧地址的用户将继续访问旧服务器,而dns缓存已过期或为空的用户将看到新域。 是否可以从旧服务器(使用Apache或iptables)到新IP进行某种重定向?旧服务器可以根据需要继续运行。

1
具有代理和更改内容类型的Apache RewriteRule
当前,我们正在使用mod_proxy代理以通过以下行代理到正确的目标: ProxyPass /我的路径平衡器:// server / path / to / real / thing 但是,第三方向我们发送了内容类型错误的请求。无法更改它们,因此我认为使用mod_rewrite可以通过以下操作实现此目的 RewriteRule ^ / my-path(。*)balancer:// server / path / to / real / thing $ 1 [P,T = text / xml] 但是,这似乎没有执行任何操作,并且该规则似乎没有在执行。 是否可以使用mod_rewrite实现此目的,我是否为此目的正确设置了此设置?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.