问题标签 [reverse-proxy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2575 浏览

php - Apache:从另一台服务器处理 PHP 的反向代理

我有以下设置:

  • Plain-Server : 以纯文本形式提供 php 文件
  • 代理服务器:向普通服务器询问 php 文件并解析它。

现在我的问题是:如何配置代理服务器(一个完全可配置的 apache 2.2 和 PHP 5.3)来解释来自普通服务器的普通 php 文件?

示例:给定一个普通服务器上的小 php 脚本“hello.php”(可访问 throw http://plainserver/hello.php):

Plain-Server 仅将其输出为纯文本,不解析 php 代码。

在代理服务器上,文件“hello.php”不存在。但是当从 Proxy-Server 请求 hello.php 时,它应该使用 mod_proxy(反向代理)从 Plain-Server 获取 hello.php。它还应该解析和执行 php,只说“Hello World”。

反向代理已经在运行,但是 php 代码的执行不起作用。我尝试了 mod_filter,但无法正常工作。有什么想法吗?

0 投票
1 回答
807 浏览

windows - 具有 PURGE 支持的 IIS 缓存

在 Unix 上,我通常在我的应用程序服务器前面的 Varnish 前面部署 nginx。nginx 和 Varnish 都在这里充当反向代理。Varnish 维护一个缓存并支持诸如 If-Modified-Since、Cache-Control 响应头和来自应用程序的 PURGE 请求之类的东西。nginx擅长接收大量的连接。我还用它来提供一些静态内容,启用 gzip 压缩等。

在 Windows 上,我可以在 IIS 前使用 Squid 进行管理。我计划将我的 (Python) 应用程序部署为 ISAPI 通配符过滤器(使用 isapi-wsgi 包),因此该应用程序将存在于由 IIS 管理的线程池中。

但是,Windows 上的 Squid 开发似乎已经停滞,我更愿意将 IIS 保留在端口 80 上,这样我就可以直接从磁盘提供某些东西。我还怀疑 IIS 在处理大量连接方面比 Windows 上的 Squid 更有弹性。

人们通常在这里使用什么?一种选择是在 IIS 前使用另一个独立的缓存代理。另一个选项可能是作为 ISAPI 过滤器安装的东西,它会拦截请求并响应诸如 If-Modified-Since、对图像和其他缓存资源的请求以及来自应用程序的 PURGE 请求。

这样的事情存在吗?或者是唯一真正的选择 Squid 和 MS ISA(太贵了)。

干杯,马丁

0 投票
4 回答
2803 浏览

svn - IIS7 和 ARR 作为 Subversion 的反向代理

我正在使用 IIS7 和应用程序请求路由扩展来充当在 Apache 上运行的 Subversion 的反向代理。

代理工作正常,我可以浏览服务器,甚至执行“签出”。但是,我无法浏览到通常被 ASP.NET 禁止的文件,例如 .cs、.csproj 等。ASP.NET 不关心的文件(例如 .txt)很好。

我尝试编辑全局 web.config 以删除这些文件的 Forbidden 处理程序映射,但似乎没有什么不同。有什么方法可以让 IIS7 中的 URL 重写模块工作,同时允许呈现所有文件扩展名?

0 投票
1 回答
12033 浏览

iis-7 - 带有 SSL 的 IIS 7 反向代理?

哪个 IIS 7 ISAPI 过滤器可以帮助我做到这一点:

http://site1.domain1.com:80 ==> 内部 IIS 服务器 1(HTTP、TCP 80)

https://site2.domain1.com:443 ==> 内部 IIS 服务器 1(HTTPS,TCP 443)

http://site1.domain2.com:80 ==> 内部 IIS 服务器 2(HTTP、TCP 80)

http://site2.domain2.com:443 ==> 内部 IIS 服务器 2(HTTPS,TCP 443)

http://site1.domain3.com:80 ==> 内部 IIS 服务器 2(HTTP、TCP 8080)

http://site2.domain3.com:443 ==> 内部 IIS 服务器 2(HTTPS,TCP 8443)

0 投票
7 回答
11223 浏览

gwt - 反向代理背后的 GWT 问题 - nginx 或 apache

当 GWT 在反向代理后面时,我遇到了这个问题。后端应用程序部署在上下文中 - 我们称之为 /context。

当我直接点击 GWT 应用程序时,它运行良好:

http://host:8080/context/

我可以在它前面配置一个反向代理。这是我的 nginx 示例:

但是,当我通过反向代理运行时,GWT 会感到困惑,说:

换句话说,GWT 没有得到它需要在 /context/ 之前查找 C7F5ECA5E3C10B453290DE47D3BE0F0E.gwt.rpc 的词,但只有当请求通过代理时才需要。一种解决方法是将上下文添加到网站的 url:

但这意味着上下文现在是用户看到的 url 的一部分,这很丑陋。

有人知道在这种情况下如何让 GWT 开心吗?

软件版本:
GWT - 1.7.0(与 1.7.1 相同问题)
Jetty - 6.1.21(但在 tomcat 下存在相同问题)
nginx - 0.7.62(在 apache 2.x 下相同问题)

我已经使用DonsProxy 查看了代理和后端之间的流量,但没有什么值得注意的。

0 投票
1 回答
1326 浏览

apache - 使用 Tomcats(在 apache-tomcat 集群中)作为后面的 apache 服务器的反向代理

我正在编写一个小型 Web 服务(如内容服务器)来搜索和提供内容。基本上它有 2 个部分 - 一个动态部分执行客户端身份验证并提供对内容的搜索功能。第二部分涉及向经过身份验证的客户端提供静态内容。

就性能和可扩展性而言,上述服务的良好架构是什么?

  1. 只是使用应用程序服务器(tomcat)来做这两个?
  2. 但后来我听说 apache 更擅长提供具有简单可配置选项(如压缩内容)的静态内容。那么如何使用 Tomcat 作为反向代理(使用 j2ep,noodle ..)到后面的 apache Web 服务器。Tomcat 可以进行身份​​验证和搜索,而后面的 apache 服务器可以提供内容。
  3. 但 Tomcat 作为单点接触,可能会成为性能瓶颈。那么为什么不再次使用 apache tomcat 集群来平衡整个设置的负载呢?

基本上,我正在查看一个 apache-tomcat 集群,其中每个 tomcat 都充当后面一组 apache 服务器的反向代理。这个设置可以吗?有没有人这样做过?我确实对此进行了搜索,但找不到任何指针。如果可能的话,这种架构是否有任何潜在的缺点?

如果这是一个不好的选择,那么该 Web 服务的正确方法是什么?

0 投票
1 回答
15183 浏览

apache2 - Apache 2.2 反向代理不工作

我正在尝试将我的 apache(版本 2.2.3)设置为反向代理。我在公共服务器上配置了 apache,如在http://www.askapache.com/htaccess/reverse-proxy-apache.html

internal1 是本地网络中的其他服务器。

主页 (www.example.com/app1/) 显示正确,但是当我的内部服务器进行重定向时出现问题。在这种情况下,我的浏览器(Firefox 3.5.3 或 Internet Explorer 7)在本地网络(internal1.example.com/page1/)中搜索地址。在我看来,Apache 忽略了 ProxyPassReverse 指令。

0 投票
1 回答
2320 浏览

apache2 - 使用 Apache2 的反向代理不起作用

我正在使用 Apache/2.2.8 (Ubuntu) 并且有问题。有一个文件 /etc/apache2/sites-available/backuppc 包含以下内容:

这在 192.168.134.10 上运行。在浏览器 (FF) 中,地址 http : //localhost/BackupPc 转到所需的服务器,但地址行显示为 http : //192.168.134.59/backuppc/。这感觉就像这个 ProxyPass 像 DNS 服务器一样工作......最后从互联网只能访问 192.168.134.10,并且使用 /backuppc 我可以登录,但现在可以访问所需的服务器。

请帮忙,THX。

和平

0 投票
1 回答
1526 浏览

apache - CakePHP 中的反向代理?

我有一个 CakePHP 应用程序,我的 httpd.conf 中有以下指令

如果没有 CakePHP,这可以正常工作 - 但是因为 CakePHP 使用它自己的来自 routes.php 和其他来源的重定向逻辑,它似乎覆盖了任何代理设置,所以在我的服务器上对“/community”的任何调用都遵循寻找的默认路径控制器称为 CommunityController。

我的问题是我希望有一台服务器为多个应用程序提供服务,但要保持对用户的无缝 - 例如,一个完整的 PHPBB 应用程序可以在“/forum”目录中运行,就好像它是 CakePHP 中的控制器一样。

以前有没有人这样做过,可以做到吗?为什么mod_rewrite和/或 routes.php 文件会覆盖我的mod_proxy指令?

0 投票
1 回答
3016 浏览

apache2 - 如何使用动态后端服务器设置 Apache 2 反向代理?

我想将 Apache 2 设置为反向代理,使用基于名称的虚拟主机来决定如何将请求路由到后端服务器。很简单。

问题是这些后端服务器可以以动态方式添加和删除。我的第一个想法是以编程方式重写 Apache 配置文件,并apachectl graceful在每次后端服务器启动或关闭时调用。这似乎不是正确的解决方案。有什么更好的方法来实现这一点?

我需要能够优雅地将名称处理转移到不同的后端服务器。例如,Backend-Server-A 可能正在处理 example.com 的请求。监控进程可能会确定 Backend-Server-A 已过时(内存使用量过多,有新版本的服务器代码来处理 example.com 等)。监控进程启动 Backend-Server-B,它将很快处理 example.com 的请求。Apache 应将 example.com 的任何新请求定向到 Backend-Server-B,但允许 Backend-Server-A 当前正在处理的任何未决请求在 Backend-Server-A 关闭之前完成。

更新发布到服务器故障