问题标签 [mod-proxy-html]

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 投票
0 回答
1366 浏览

apache - 具有 SSL 和 url 编码的反向代理,路径更改

环境 http://etrafficcontrol.com/misc/proxy.png

我有两个应用程序。一个是托管在 AWS 上的电子商务站点(在 LAMP 上运行的 Drupal 7),另一个是 IIS-6 上的 ASP 结帐系统,位于我们公司内部,需要 SSL。

目前,我们忍受了我们的客户被转发到另一个域进行结账的情况——有点像 ebay 和 PayPal 发生的情况。但这会导致网站跟踪代码出现困难,并且让购物者离开电子商务网站进行结账时感觉有些不对劲。

主要问题是我们使用 Google 广告系列,因此我们希望跟踪从广告到 domain-1 的转化以及在 domain-1 上的丰富内容,但实际销售发生在 domain-2 结帐时。

我没有将访问者从 www.domain1.com/cart 发送到 domain2.com/miscX,而是尝试设置 ProxyPass 和 ProxyPassReverse,以便将它们发送到 www.domain1.com/shop/miscX。

App1 (drupal) 在 domain1.com/* 中,.htaccess 的东西绕过 Drupal 的设计来拦截一切。“杂项”路径来自我重定向到子目录,然后从那里代理的事实。当代理页面呈现时,它们有一些到 /miscX 的硬编码路径,并且在重定向期间没有为这些路径做出特殊规定,我最终得到 /miscX/(而不是 /shop/miscX/ 它将遵循代理)和这会导致缺少 css、js 等。

注意:我们的企业客户可以直接登录 domain2.com,所以我想保持该门户不变。

下面,local-d7 是 domain1 服务器的本地测试实例。对代理的测试表明,这个概念适用于 SSL。

我几乎可以正常工作,但似乎 URL 编码的参数正在丢失(即使查询字符串没问题)。当我介绍代理时,server2 看不到编码参数(它是一个专门的应用程序,我不知道如何查看 IIS 正在接收的内容)。当我以没有编码参数的方式通过服务器 1 上的 apache 路由 domain2 测试门户登录时,登录有效。

实际上,我正在尝试

  1. 反向代理
  2. 更改路径(将应用程序运行在 domain-2 上的 / 中,并暴露到 Domain-1 上的子目录“/shop”中
  3. 支持 SSL
  4. 代理 Apache 后面的 IIS 服务器
  5. 尽量不要修改 IIS 服务器,以便它可以继续被原来的 domain-2.com URL 使用,并且
  6. 在我 [可能] 对 Apache 的配置控制有限的托管服务器上执行此操作。(目前在 XAMPP 上测试)。

除了这里显示的内容之外,我还尝试了各种事情,包括重写规则、重定向等。我只是在 mod_proxy 或 mod_rewrite 等方面完全没有经验。但在我看来,这种代理安排应该是可以做一些工作并可能修复服务器 SSL 证书。

建议? - 谢谢

vhosts.conf

.htaccess

0 投票
0 回答
31 浏览

macos - 为什么从 mod_proxy_http 切换到 mod_jk 会阻止连接到 Tomcat?

我有通过mod_jk或连接到 Tomcat 的 HTTP Apache 服务器mod_proxy_http。到目前为止,连接方式mod_proxy_http工作正常,但连接方式mod_jk导致找不到路径错误,例如:

在此服务器上找不到请求的 URL /cm/login.ep。

apache error_log 中对应的错误是:

[2014 年 5 月 24 日星期六 22:19:47] [错误] [客户端 127.0.0.1] 文件不存在:/Library/WebServer/Documents/cm

httpd.conf 中不使用 VirtualHost 定义。

mod_jk.log没有显示任何错误,从workers.properties文件中找到了工作人员。日志说:

[2014 年 5 月 23 日星期五 17:19:25] [758:140735273992976] [信息] init_jk::mod_jk.c (3383): mod_jk/1.2.40 已初始化

mod_proxy_http 和 mod_jk 的连接配置如下:

以下是mod_proxy_http设置:

以下是mod_jk设置:

并且workers.properties是:

0 投票
1 回答
134 浏览

apache - Apache proxypass 和多语言域

我在 domain.com 上有一个网站,该网站在 URL 中包含多语言内容,例如:

  • domain.com/en 英文版
  • domain.com/de 德语
  • domain.com/it 意大利语

等等这些不是真正的目录 - 这些只是重写为 /index.php?lang=... 所以 domain.com/lang/one/two/three 被重写为 /index.php?lang=$1&path= 2美元

它还有 domain.com/assets 目录,其中包含所有常见文件(css、图像等)

现在我想改变每种语言都有自己的域,我认为可以通过在 Apache 中使用 mod_proxy、mod_proxy_http 和 mod_proxy_html 来管理。我想要实现的是,如果用户访问:

  • www.domain.com 他从 domain.com/en 获取内容
  • www.domain.de 他从 domain.com/de 获取内容
  • www.domain.it 他从 domain.com/it 获取内容

如果他从任何域(.com、.de、.it)访问 /assets 目录,他将从 domain.com/assets 获取内容。此外,如果用户访问 URL,例如 www.domain.de/something,他应该从 www.domain.com/de/something 接收内容

另一件事是在输出之前必须重写的 URL,例如浏览 domain.de 的用户根本不会去 domain.com ......

这可能吗?否则,我们将不得不重新编程整个 CMS 以使用每种语言的不同域......

0 投票
1 回答
2451 浏览

apache - 加载 Apache2 mod_xml2enc 时未定义的符号

我很沮丧在 CentOS 5 机器上将反向代理相关模块安装到 Apache2 HTTP 服务器。由于它是旧版本的 Apache2 服务器,我不得不使用 Apache 工具“apxs”从源代码编译模块。通过“apxs”安装模块时,我没有收到任何警告或错误,但在尝试重新启动 Apache 服务器时出现运行时错误。

以下是更多细节。

由于历史原因,我无法将它们中的任何一个升级到更新版本来解决问题。

该操作系统最初缺少libxml2,我通过yum成功安装了它,没有任何问题。我下载了 mod_proxy_html 的源文件,包括 1) mod_xml2enc.c、2) mod_proxy_html.h 和 3) mod_proxy_html.c

我使用以下命令首先安装 mod_xml2enc,然后安装 mod_proxy_html。

两者看起来都不错,并显示了如下输出:

但是,当我尝试重新启动服务器时,出现了我放在顶部的错误消息。

我已经尝试了很多方法来解决这个问题,但是没有任何效果。也许值得注意的是,我采取了在 CentOS 5.11 32 位机器上安装相同模块的确切步骤,并且完全没有问题。这两台机器的唯一区别就是一台是 32 位的,另一台是 64 位的。

希望有人知道如何解决这个问题。

提前非常感谢。

0 投票
1 回答
734 浏览

sharepoint-2010 - Apache 反向代理擦除

这是我在此的头一篇博文。

我已经在论坛中搜索了相关问题,但似乎没有一个结果可以解决我的问题。

设置是:

在内部客户网络的 IIS 7 上部署了 MS Sharepoint 2010。这似乎在内部网络中表现正确。

为了公开这项服务,我在 DMZ 上的 Red Hat EL 6.0 上运行了一个 apache 2.2 服务器。apache 有一个配置为反向代理的虚拟主机,以允许来自外部的连接。

由于我发现了一些链接问题,我不得不编译和集成 mod_proxy_html 模块来解析这些链接。

问题是我在从外部(通过 apache)访问时看到奇怪的字符。这是由于 Apache 擦除了一个 html 元标记:

从 MZ 内部,html 代码开始:

但是,当从外部访问时,html 代码会启动:

缺少标记:meta http-equiv="Content-type" content="text/html; charset=utf-8"。

我已经尝试添加到我的 httpd.conf:

添加默认字符集 utf-8

ProxyHTMLCharsetOut utf-8

ProxyHTMLMeta 开启

virtualhost配置如下(130.177.97.99是属于后端的IP):

任何帮助,将不胜感激。

谢谢。

胡安

0 投票
2 回答
871 浏览

apache - Apache反向代理将浏览器直接发送到后端

(主要问题底部的更新,下面可能是多余的细节)

我遇到了一个有趣的问题,Apache 没有按预期进行反向代理。

基本上,发生的事情是当我点击我的网站上指向相对路径的链接时/app1,我希望它的 URLexternal.company.ca/app1包含来自internal.company.ca/some_app. 相反,浏览器将直接转到internal.company.ca/some_app.

没有 302 或任何东西,就在那儿。这对我来说很奇怪,因为internal.company.ca除了反向代理配置之外,配置中的任何地方都没有提到,所以我根本不知道浏览器是如何学习域的。

这是从客户端(浏览器)的角度捕获的 Fiddler 捕获,显示了我单击指向的链接后的行为/app1(您必须相信我,绿色名称是external.company.ca,黑色名称是internal.company.com,路径是/some_app/blahblah):

在此处输入图像描述

此后发生的一切都是用internal.company.com. 当然,这在生产中根本行不通。

以下是供考虑的 Apache 配置文件的(截断)版本:

有一次,我认为 cookie 可能会丢东西,因为它们位于不同的域下(前面是 .ca,后面是 .com),但我相信如果反向代理工作正常,浏览器就不会更明智了. 有人看到上面有什么问题吗?

更新

我找到了罪魁祸首:

<script type="text/javascript">window.location.assign('https://internal.company.com/app1/login?redirectUrl=' + encodeURIComponent(window.location.pathname + window.location.hash));</script>

问题是,如何使用 Apache 重写这个绝对 URL?我知道 mod_proxy_html 修改元素属性(例如hrefa元素中),但它可以重写元素本身的任意数据吗?

内部应用程序由供应商提供,尽管可以对其进行修改以删除上述代码,但我现在更愿意远离该路径,看看是否有替代方案。

0 投票
0 回答
431 浏览

apache - 使用 ProxyHTMLURLMap 正确完成相对 url?

例如 psweb1.example.com:8002/main/login/login.jsp 需要重定向到 psweb1.example.com/demo1/main/login/login.jsp

并且 psweb1.example.com:8002/content/* 需要指向 psweb1.example.com/demo1/content/*

我无法重定向正确的相对路径。任何帮助表示赞赏。

这是我在 httpd.conf 中的配置

0 投票
1 回答
373 浏览

php - 子域映射到子目录

我有一个 Web 应用程序,它需要为每个公司提供动态子域。该网站也有 SSL。我在 Ubuntu VPS 上使用 apache。我所做的是我做了如下虚拟主机设置

将流量定向到 SSL 是可以的。

所以我现在需要做的是我的网络根目录中有一个文件夹“/app”。我希望所有子域都指向该特定文件夹并在地址栏上显示相同的 url。

我在 php 中启用了 http_proxy 模块并制作了这个 .htaccess

当我访问“ https://test.domain.com ”时,它会将其重定向到“ https://domain.com/app/index.php ”。我知道为什么会发生这种情况,因为当 htaccess 重定向发生在“ http://domain.com/app/index.php ”时,我的虚拟主机配置看到一个非 SSL 请求,并将请求重定向到与 SSL 相同的地址。所以我把 .htaccess 改成了这个

我在重写规则中加入了“https”。当我再次访问“ https://test.domain.com ”时,它给了我这个错误。

最后我想要的是

有人可以帮我吗

谢谢你。

0 投票
3 回答
2902 浏览

json - Apache 反向代理将 JSON 响应包装在 HTML 中

如果这个问题之前已经被问过(找不到任何类似的问题),或者只是非常明显,我只是一个问这个问题的白痴,请提前道歉。

我正在使用 Apache 2.4 反向代理几个内部页面和 Web 应用程序。我启用了很多代理模块,包括 mod_proxy_html 以根据需要重写 HTML。代理的每个页面或 Web 应用程序都在块内。

一般来说,这很好用。链接工作,资源加载,他们应该等等等等。但是其中一些 Web 应用程序使用 AJAX 来实现一些不错的 UX 功能,这些 AJAX 请求中的大多数都会访问代理的 JSON 端点。

我的问题是:任何代理的 JSON 响应都包含在

我不知道这些 HTML 标签是从哪里来的,我试图摆脱它们的一切都没有奏效。我已经尝试过 LocationMatch 块并明确设置 ProxyHTMLEnable Off 并删除替代输出过滤器。

有没有办法明确禁用特定 URL 的响应正文重写/替换?

0 投票
1 回答
7558 浏览

apache - 在 CentOS 7 上设置 mod_proxy_html

我正在尝试在我的 Web 服务器上进行一些测试,以确保反向代理在将其置于实时环境之前按预期工作,但我遇到了 mod_proxy 和 mod_proxy_html 的一些问题。

我有 2 个虚拟主机,1 个在端口 80 上,1 个在端口 8080 上。我的目标是让 www.example.com/path/ 的传入请求进入端口 80,并反向代理到端口 8080。

这是我的虚拟主机设置:

我的 /var/www/html/test 有 2 个文件 index.html 和 test.html
test.html 内容是:

访问 www.example.com/path/ 成功被代理并重定向到 www.example.com/path/test.html,但页面上的链接仍然指向 127.0.0.1。

httpd -M 确实报告加载 proxy_module 和 proxy_html_module
我也尝试过手动将 LoadModule 添加到 http.conf

关于为什么它不能正常工作的任何想法?我是否配置错误?