问题标签 [mod-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 回答
2494 浏览

apache - 反向代理后面的 Web 应用程序 - 我如何处理 SSL?

我有一个公共 Apache 服务器,它需要代理到一个内部 Apache 服务器(用于 SVN 访问)。我想要的是:

我对 SSL 处理不太熟悉,所以我想对这种方法提出一些意见。这是一个好的模型吗?我应该在任何地方都使用 SSL,等等。

我的方法在大多数情况下都有效,但在将重定向重写回 HTTPS 时失败。如果用户去

它们被 SVN 服务器重定向到

这是我对 Web 服务器(代理服务器)的配置:

0 投票
1 回答
966 浏览

linux - apache mod_rewrite mod_proxy 子域到目录

我有一个域 www.example.com 作为前端,我有很多服务器都有前端服务器,比如 games.example.com 我想要后台的 www.example.com 将访问 games.example.com

所以 games.example.com = www.example.com/games

此代码将处理对目录的任何访问 /games 将访问后端服务器

它正在工作,但它给了我这个网址 www.example.com/web/login.php 这将引发 404 页面未找到我如何像这样 www.example.com/games/web/login 在任何网址中附加文字游戏.php?

0 投票
2 回答
49559 浏览

lighttpd - lighttpd 作为反向代理

DeviceA 用作反向代理,应该按如下方式转发请求:

192.168.1.10/DeviceB ==> 192.168.1.20/index.html

192.168.1.10/DeviceC ==> 192.168.1.30/index.html

两个索引文件都位于 /var/www 下,并且是静态的“Hello world!” 页。问题是我无法通过 DeviceA 访问这些文件,但如果我调用也在 DeviceC 上运行的测试服务(侦听端口 12345)一切正常。

如果请求来自端口 80,我是否说 DeviceB 上的 Web 服务器,DeviceC 应该以 index.html 响应?

lighttpd.conf DeviceA @192.168.1.10 server.modules = ( "mod_proxy" )

lighttpd.conf DeviceB @192.168.1.20

lighttpd.conf DeviceC @192.168.1.30


更新

我是否需要 $HTTP["host"] == ... 围绕 proxy.server() 来重写/重定向 URL?或者,如何定义代理(ed)

0 投票
1 回答
5146 浏览

apache - 使用 mod_proxy_ajp 的 Glassfish v3 前面的 Apache



我希望这里有一些破解可以轻松解决我在几个论坛中搜索后遇到的问题:我需要在 Apache 2.2.x 网络服务器后面放置一个 Glassfish v3 应用程序服务器,因为我的虚拟主机提供了一些部分,例如 webmail ,正在网络服务器上运行(所以我无法关闭它)。因此,我决定使用更新的解决方案“mod_proxy_ajp”(随 Apache 一起提供)而不是更复杂的“mod_jk”来通过 Apache 将请求传递给 Glassfish。到目前为止,我所做的是:

Apache 包含“/etc/httpd/conf.d/proxy_ajp.conf”,其中包含:

  • LoadModule proxy_ajp_module 模块/mod_proxy_ajp.so
  • 代理通行证/邮件!
  • ProxyPass / ajp://localhost:8080/
  • ProxyPassReverse / ajp://localhost:8080/

玻璃鱼:

  • http-listener-1 正在侦听 8080 并启用了“JK 侦听器”
  • http-listener-2 正在监听 8181 并使用我的 SSL 证书启用了安全性

但我想做的是:

  1. 将“https://webmail.mydomain.com”的所有请求路由到 Apache(webhoster 电子邮件 web-frontend)
  2. 将所有其他 HTTP 和 HTTPS 请求路由到 Glassfish。对于在 8080 或 8009 上对我的 Glassfish http-listener-1 的 HTTP,对于使用我在 8181 上的 Glassfish http-listener-2 注册的 SSL 证书的 HTTPS(在两个方向上,传递和反向这些端口不应该对用户可见)
  3. 要么强制对 Glassfish 的所有请求重定向/切换到 HTTPS,要么基于特定资源的 web.xml 安全配置(somefile.html)强制从 HTTP 切换到 HTTPS(或执行此操作的任何其他解决方案)

如果有人可以提供解决这 3 个任务的简短描述,我会非常高兴,因为我对 Java Web 管理的了解并不深入。
在此先感谢和欢呼
~limubai

0 投票
1 回答
1049 浏览

regex - Apache mod_proxy_html Substitute:如何重用正则表达式匹配的一部分?(正则表达式变量?)

[完全披露:这里和 ServerFault 之间的交叉发布,因为我相信受众(服务器管理员和开发人员)足够不同,足以保证分别向两者提出问题。]

大家好,

在 Apache 中有一个独特的 URL 重写情况。

我需要能够获取以开头的 URL

或者

其中 X 是某个 URL 的其余部分,并替换为文本

我不确定 Regex 在 Apache 中是如何工作的——我认为它与 Perl 5 一样吗?- 但即便如此,我也有点不确定这将如何完成。我的预感是它与正则表达式分组有关,然后使用 $1 将变量拉出,但我对 Apache 中的这个过程完全不熟悉。

希望有人可以提供帮助-谢谢!

0 投票
6 回答
6060 浏览

apache - mod_proxy_ajp 错误:将 html 呈现为文本/纯文本,提示用户“另存为...”

mod_proxy_ajp 发生了一个奇怪的间歇性错误,即使用 apache 作为 tomcat 服务器的前端。

错误

  • 用户单击链接浏览器提示用户“另存为...”(例如,在 Firefox 中“您已选择顶部打开的 thread.jsp 这是一个应用程序/八位字节流”...firefox 应该如何处理此文件)
  • 用户说“嗯?” 并按“取消”
  • 用户再次点击同一链接
  • 浏览器正确显示页面

此错误间歇性发生,但不幸的是在我们的测试服务器上很少发生,而在生产中经常发生。

在 Firefox 的 LiveHttpHeaders 中,我在上述用例中看到以下内容:

  • 第一页下载(即点击链接)是“文本/纯文本”
  • 第二次下载是“text/html”

我认为问题可能源于 ProxyPassReverse(即混淆是使用 http 还是 ajp),但是所有这些 proxypassreverse 设置都导致了相同的错误:

此外,我检查了 apache 错误日志(设置为调试),没有看到任何警告或错误...

** 但它适用于 mod_proxy_http ?? **

切换到 mod_proxy_http 似乎“解决”了这个问题。有限的测试,我无法在测试环境中重现问题。

因为问题是间歇性的,我不能 100% 确定 mod_proxy_http “解决”了问题

环境

  • 阿帕奇 2.2 视窗
  • Jboss 4.2.2 后端(tomcat 6)

另一个数据点

无论好坏,tomcat 中的 servlet 过滤器都会先压缩 html,然后再将其发送到 apache。(这意味着额外的工作,因为 apache 必须在执行 ProxyPassReverse 的“查找和替换”之前解压缩)。我不知道“gzip”是否搞砸了。

问题

  • 有人见过这个吗?
  • 哪些工具有助于分析原因?

谢谢

附录 1:这是 LiveHttpHeaders 输出

浏览器错误地将 html 视为“文本/纯文本”

浏览器正确地将 html 视为“text/html”

附录 2:附加信息

浏览器确实收到了“gzipped”文件。当其中一些错误发生时,我早些时候点击了“另存为...”。Gunzip 成功处理了这些文件并将它们转换为 html。

0 投票
1 回答
2130 浏览

apache - Apache - 同时使用 Virtual_host 和 mod_proxy 会导致访问被禁止错误

我的主机和 Virtual Box 机器上都有 Apache Web 服务器。Host Machine 的 Apache Web 服务器完美地服务于我的网站。

我已将请求转发到我的路由器到我的主机的端口 80,因此无法将其配置为也转发到我的虚拟机。所以我想到了使用 Apache 的 Proxy 功能。

我遇到了 Apache 的这种配置,以便在请求到来时将请求转发到虚拟机。

当我在我的 Web 服务器上激活此设置时,我的所有站点(无论是在虚拟机还是主机上)都开始出现“禁止访问”错误。

我不确定我做错了什么。

问候, 尼丁

0 投票
1 回答
261 浏览

regex - 正则表达式否定 - Apache

我想将我的 Apache Web 服务器配置为服务以“/static/”开头的所有内容,而其他任何内容都应该由 Tomcat 提供。

例如:

  • www.myDomain.com/static/anything 应由 Apache Web 服务器提供服务

  • www.myDomain.com/notStatic/ 应该是Tomcat的服务器

这是我的配置文件:

但这不起作用。我该怎么做?

0 投票
1 回答
969 浏览

apache - Apache、mod_proxy 和反向代理运行 .net 4 的 IIS6 后端

我有一个非常奇怪的问题。我有一个 IIS6 后端服务器。如果 IIS 上的站点配置为 .net 2.0/3/3.5,那么 apache 就做得很好。如果站点配置为 .net 4.0,则 apache 会提供 400 错误请求。我附加了 http 标头,我可以看到正确的 apache 和正确的 iis 服务器被命中,以及 iis 服务器上的正确站点。如果我直接进入服务器,它在两种模式下都很好用。它只是连接到运行 .net 4.0 站点的 IIS6 (http) 的 apache (https) 的组合。

这是一些数据包示例

请求失败

响应失败

工作要求

工作响应

这两个请求是针对同一个站点的,一个是通过代理,一个是直接的。我唯一能看到的任何意义就是每次获取的价值。一个是路径,另一个是域和路径。但正如我所提到的,我所要做的就是在 IIS6 中切换网站以使用 2.0 运行时而不是 4.0 运行时。

任何人对可能是什么问题有任何想法吗?

0 投票
2 回答
2151 浏览

apache - 为 mod_proxy_ajp 重写经过身份验证的 Apache2.2 用户

mod_proxy_ajp我有一个通过Apache2.2 实例连接的 Tomcat 。Apache 通过 进行身份验证mod_auth_kerb,而 Tomcat 用于request.getRemoteUser()获取经过身份验证的用户。

这基本上有效,但我想重写用户。但是,我设置的任何标题都不会影响返回的内容request.getRemoteUser(),我只将它们视为附加标题,我该怎么办?

谢谢!