问题标签 [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 投票
1 回答
2383 浏览

erlang - Nginx 反向代理到自定义 Mochiweb 应用程序

我将 Nginx 作为我的前端 Web 服务器,监听端口 80。对于某些请求,我设置了 nginx 以将其反向代理到我编写的基于 mochiweb 的 Web 服务器,监听端口 8000。我的 nginx 配置为这看起来像这样:

现在,当我访问 URL http://localhost/mymochiserver时,我在浏览器上看不到响应。浏览器只是说“等待本地主机”。mymochiserver 将一些跟踪打印到运行它的终端窗口,无论何时用户连接到它,现在,我确实看到了我打开以连接此 URL 的每个浏览器窗口的跟踪。但我没有看到任何我希望看到的输出被写入浏览器。但是,当我直接访问 URL http://127.0.0.1:8000/时,一切正常,我在浏览器上看到了 mymochiserver 的输出。所以它在直接调用时有效。但是当通过 nginx 反向代理时,它似乎不起作用。知道有什么问题吗?


更新:在我的 Mochiweb 应用程序中,我有这些代码行:

它基本上是一个 COMET 应用程序,用户将连接到 mymochiserver,服务器将数据推送到所有连接的客户端。如果没有要从服务器发送的数据,我会休眠该进程。然后当我醒来时,我调用 feed 函数来发送数据。如果我删除休眠代码,一切正常,我会在浏览器中看到输出。但是,如果我休眠,它就不起作用。知道出了什么问题吗?

0 投票
1 回答
21039 浏览

caching - Apache 反向缓存代理 - 为什么不缓存?

我正在尝试为广告图形(GIF、JPEG、SWF)服务设置反向缓存代理。代理工作正常并将请求发送到源服务器,但我似乎无法弄清楚为什么内容没有被缓存。我当前的配置如下。目标是缓存与/ca/URI 前缀匹配的所有请求。源服务器正在使用干净的 URL 提供文件,没有文件扩展名,max-age=1在源服务器标头上设置了缓存控制周。

目前,我看到的唯一实际发生的缓存是在代理服务器上访问的本地文件,我正在寻找我缺少的内容,以便从源服务器获取要缓存的内容。

我想知道它是否与mod_cache不缓存有关,因为内容是从源服务器获取的,而不是在磁盘上的某个位置上。

我正在寻找一种方法来强制缓存与该前缀匹配的所有请求。

PS看起来我遇到了这个确切的问题: http: //mail-archives.apache.org/mod_mbox/httpd-users/200901.mbox/%3C497F6ED3.7080606@gmail.com%3E。我将检查我的权限并查看调试消息……</p>

0 投票
2 回答
7006 浏览

caching - 如何将 Nginx 设置为缓存反向代理?

我最近听说 Nginx 在其反向代理功能中添加了缓存。我环顾四周,但找不到太多关于它的信息。

我想将 Nginx 设置为 Apache/Django 前面的缓存反向代理:让 Nginx 代理请求一些(但不是全部)动态页面到 Apache,然后缓存生成的页面并从缓存中为这些页面提供后续请求。

理想情况下,我想以两种方式使缓存无效:

  1. 设置缓存项的到期日期
  2. 显式地使缓存项无效。例如,如果我的 Django 后端更新了某些数据,我想告诉 Nginx 使受影响页面的缓存无效

是否可以设置 Nginx 来做到这一点?如何?

0 投票
1 回答
1592 浏览

certificate - Squid 反向代理上的新证书

我需要在 Squid 反向代理上创建一个新证书来替换过期的证书。有谁知道怎么做?

0 投票
2 回答
19821 浏览

http - 反向代理后面的 WebDAV

我有 2 台服务器。一个在网络上的反向代理和一个在服务 WebDAV 的私有链接上。

展位服务器是 apache httpd v2。

在代理上我有:

在 dav 服务器上,我有:

反向代理通过 访问https,私有服务器通过 访问http。这就是问题所在!

只读命令工作正常。但是当我想移动我得到的东西时502 Bad gateway。原因是反向代理没有重写扩展 dav 请求中的 url。

源 URL 位于标头内,并正确转换为http://share.local/file1. 目标 URL 在我不理解的一些 xml 片段中并保留https://example.com/file1:(

有没有一种标准方法可以让 apache 正确转换请求?

谢谢你的努力。

0 投票
2 回答
3021 浏览

web-services - Web服务缓存反向代理?

我想在 HTTP 上的 SOAP Web 服务前面放置某种缓存反向代理,以提高性能和可用性。是否有一些软件可以执行此操作?(最好免费且易于安装/使用)。

想法就在这里:webservice 的响应随请求而变化,但对于每个请求,响应很少改变。因此代理可以将每个请求的响应存储一段时间,并在再次发送相同请求时给出缓存的响应。只有数量有限的不同请求。代理不需要解析和理解请求或响应。但它确实需要理解 HTTP POST,例如,构造请求的散列以找到正确的响应。正如在 HTTP 代理中通常所做的那样,通过 URL 进行缓存在这里没有帮助。

(当然可以在调用 web 服务的应用程序中缓存 web 服务的结果,但我正在寻找一种独立的解决方案,独立于应用程序。)

0 投票
1 回答
242 浏览

php - 为 http 代理设置 Web 界面?

我想要一种方法来允许用户通过我的 http 代理服务器(Squid、Privoxy 等),而无需在 Web 浏览器设置中键入 IP/端口。我希望我可以使用一个简单的网络界面。

我正在设想这个:

  1. 用户访问我服务器上的网站 ( http://proxy.com
    ) 并 在表单中键入 URL 。
  2. 用户的浏览器 URL 看起来像 ( http://proxy.com/url=URL )
  3. 到任何未来链接的所有连接都通过我
    在不同端口上运行的 http 代理传递。

而且我不想使用现有的 php/cgi web 代理脚本。

我唯一的理由是我觉得通过本机代理服务器重新路由连接比让许多 php 实例代理连接更有效。请告诉我您是否认为实际上并非如此。

有什么简单的方法可以做到这一点吗?谢谢!

0 投票
2 回答
3130 浏览

apache - 反向代理模式 Apache 拦截或捕获来自后端服务器的 302 响应并在内部重定向而不将 302 响应发送回客户端

有谁知道如何在反向代理模式下告诉 Apache 拦截或捕获来自后端服务器的 302(或 30x)响应并在内部重定向而不将 30x 响应发送回客户端?最终,响应重定向到的后端服务器将无法从外部访问(或未在 Apache conf 中列出)。


我的情况:
我有 web_server_A 和 web_server_B 监听端口 6666 和 7777。这些端口不能从外部访问,但可以从内部访问。
我最终可以改变 web_server_A 的行为,但不能改变 web_server_B 的行为。
Apache 正在侦听端口 80/443,可从外部访问并充当反向代理,将发送到 web_server_{A,B}.example.com 的请求发送到 web_server_{A,B}

客户端向 Apache 请求 web_server_A.example.com/foo。Apache 将请求代理到 web_server_A,它会做一些东西,然后将指向 web_server_B.example.com/bar/secret_token 的 HTTP/302 响应发送回 Apache。Apache 将 302 响应发送回客户端,然后客户端向 Apache 发送对 web_server_B.example.com/bar/secret_token 的 HTTP 请求。Apache 将请求代理到 web_server_B,它会回复一些东西(通常它会发回一些大文件)。


我的问题:
我不希望客户端知道 url web_server_B.example.com/bar/secret_token,最终我不希望 web_server_B 可以从外部访问。

web_server_A 可以向 web_server_B 发出请求,然后从 web_server_B 发回答案而不发出 302 回复。但是,来自 web_server_B 的答案可能需要一些时间,可能会很大,并且 web_server_A 不应该在任何请求上花费太多时间(它没有处理大文件的能力)。


所以我想了一个“302 陷阱”功能,如果存在的话会很好,但到目前为止,还没有在网络上提供任何关于如何做到这一点的资金。任何想法?

0 投票
1 回答
7803 浏览

mod-rewrite - 在 apache 2.2.3 上设置通配符子域(带有反向代理)

我要实现的目标如下:我希望将许多子域(例如abc.domain.com)重定向到诸如www.domain.com/something?subdomain=abc之类的 URL

由于我重定向到一个完全限定的域,我需要使用反向代理来避免浏览器中 URL 的更改。(使用 [P] 标志并打开 mod_proxy 模块和其他一些模块)

这是我的 DNS 设置

这是我的 apache 虚拟主机配置

此设置运行良好(如果您认为可以改进,请告诉我)。

我的主要问题是当我尝试设置 https://

这是我的 apache 虚拟主机配置

每当我调用https://abc.domain.com - 我得到的响应是主页,但无论我在子域的末尾附加什么,我都会得到相同的响应。就像重写没有很好的响应一样。

任何帮助将不胜感激,或者如果您可以分享您如何一起设置反向代理、重写、通配符子域和 SSL

谢谢,

0 投票
2 回答
567 浏览

python - 模板+脚本反向代理?

思考一个想法,想要得到反馈/建议:

在 url 重写和 nginx 方面取得了巨大成功,我现在正在考虑一个功能更强大的反向代理/路由器,它可以执行以下操作:

  • 根据正则表达式匹配将请求映射到处理程序(ala Django)
  • 某些请求将简单地路由到后端服务器 - 例如。静态媒体、memcached 等
  • 其他请求将呈现从多个后端服务器提取数据的模板

例如,一个模板可以包括:

反向代理将向 someserver/somepage 和 otherserver/otherpage 发出 http 请求,并将结果拉入模板。

问题:

  • 这个想法有意义还是坏主意?
  • 是否有一个现有的包可以实现这样的东西?
  • 现有的服务器+脚本如何实现这一点 - 例如。lighttpd+lua, nginx+??
  • nginx+SSI 怎么样?看起来很能干,如果您有经验/建议,请发表评论。
  • 脚本语言+eventlet这样的东西怎么样?
  • 扭曲?

我的偏好是用于脚本和 jinja/django 样式模板的 python,但我对替代方案持开放态度。