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

glassfish - Glassfish 最简单的 apache mod_proxy 配置是什么?

我有一个带有 Apache2(端口 80)和 Glassfish(端口 8080)的服务器。我想将 Apache 配置为透明地将对某个虚拟主机的请求代理到 glassfish 服务器。
我试过这个,但它不起作用:

谁能告诉我为什么?谢谢

0 投票
3 回答
7123 浏览

apache - 使用 mod_proxy_ajp 在 Apache 后面正确设置 Tomcat

我一直在修补 Apache + Tomcat,这样我就可以通过 apache(干净清晰的 urls rock)为多个 tomcat 应用程序(在不同的机器上)提供服务。我已经成功配置mod_proxy_ajp&到可以在不同机器上提供两个 tomcat 应用程序几乎没有问题mod_rewrite的地步。

我发现的唯一问题是其中一个应用程序(我在 Struts2 中开发)有很多链接和表单,它们是用<s:a />,<s:url /><s:form />标签生成的。这些标签生成的url一般是这样的:

/WebApp/path/to/some.action

多亏了 ModRewrite 的魔力,这通常不是一个问题,指向此类 url 的超链接会很快被重写并重定向到/app/path/to/some.action(尽管我确实得到了大量的302响应)。

真正的问题发生在执行 POST 请求时。大家可能都知道,我无法POST使用 mod_rewrite 重定向请求......所以最后......我的所有POST请求都不起作用,因为 mod_rewrite 重定向到正确的 url,而是作为GET请求。

我已经阅读了一些关于mod_proxy_html它如何帮助我重写 Tomcat Web 应用程序返回的 url……但感觉很麻烦。

这是我当前的 apache 配置:

我的请求问题必须有解决方案POST......有什么想法吗?我能以某种方式配置一些允许 Struts2 输出正确 url 的东西吗?

谢谢你的帮助。

0 投票
1 回答
1932 浏览

jsf - Tomcat 6 集群 - 认证会话复制

我目前有一个非常基本的集群,由两个运行在同一个 VPS 上的Tomcat 6.0.32实例(Tomcat1和Tomcat2 )组成。我通过 Apache 使用 mod_proxy_ajp 和 mod_proxy_balancer 作为负载均衡器(在同一个 VPS 上)。我们正在使用基本表单身份验证(通过 j_security_check)为用户创建经过身份验证的会话。

负载均衡器运行良好,并且在两个实例之间成功复制了未经身份验证的会话。但是,我无法在每个实例之间替换经过身份验证的会话。

我正在使用一个非常基本的 JSP,称为 session.jsp(基于 JPS 模板http://www.syslog.gr/articles-mainmenu-99/15-tomcat-cluster-session-replication.html)来测试会话以查看它是否是一个新会话并打印出 JSESSIONID。我在保护区内有一份 JSP 副本,在保护区外有一份副本。

我已经运行了以下测试:

测试 1)我在Tomcat1
上的应用程序保护区之外访问 session.jsp ,记下 JSESSIONID 并通过负载均衡器确认Tomcat1处理了请求。然后我关闭Tomcat1并刷新页面。该请求现在由Tomcat2处理(由负载平衡器确认)。当页面完成加载时,我看到了我原来的 JSESSIONID 并且我的会话仍然存在。

测试 2)我在Tomcat1
上的应用程序保护区内访问 session.jsp 。这提示我登录。登录后,我被发送到 session.jsp 并记下我的 JSESSIONID 并通过负载均衡器确认,然后Tomcat1处理了请求。然后我关闭Tomcat1并刷新页面。该请求现在由Tomcat2处理(由负载平衡器确认)。当页面加载时,我检查我的 cookie。我现在有了一个新的 JSESSIONID,并且再次提示我登录。

到目前为止,我认为经过身份验证的会话不会像未经身份验证的会话那样被复制。这是一个很好的理由还是它指向配置问题?

0 投票
1 回答
2876 浏览

tomcat - 无法在集群中序列化会话

从最近两天开始,我正在执行 tomcat 集群。它适用于测试应用程序,但是当我传递对我的 webapp 的引用时,它会引发以下异常并且集群不起作用。虽然成员添加成功,但无法序列化与其他集群成员的会话。

org.apache.catalina.ha.session.DeltaManager requestCompleted

无法序列化 sessionid [2045E940A267F15A541F9A4DEBC39F12.tomcatA] 的增量请求

我正在使用 tomcat6.0.18,因此也使用其他成员。fornt 和 mod_proxy 中的 Apache httpd 2.2 作为 tomcat 和 apache 之间的连接器。

谢谢

编辑:

在谷歌找到 -

我认为您在会话中有一些不可序列化的东西。因此,tomcat 中止将会话内容写入文件。Next start tomcat 尝试加载存储的会话,但由于先前中止写入而无法加载。如果您不关心重启会话的持久性,您可以尝试在 conf-docs 中找到正确的开关,或者将以下内容添加到您的 bin/catalina.sh:

rm -rf 工作/Catalina/localhost//SESSIONS.ser

没看懂这是什么?

0 投票
1 回答
5190 浏览

url-rewriting - 如何在 Apache-Tomcat Web 应用程序中获取浏览器 URL?

我已经通过 mod_proxy 使用 Apache-Tomcat 连接器配置了我的 Web 应用程序 - 见下文。

此外,我正在使用子域来通过读取 URL 直接识别客户端 - 请参见下面的示例。

Client1 类型

Client2 类型

现在,我想读取 URL 并解析客户端名称(client1 或 client2)。我的 Web 应用程序的其余部分是根据客户端的身份驱动的(当然,在身份验证之后)。但问题是,当我尝试使用 HttpServletRequest 的 getRequestURL 获取 URL 时,我得到的是http://127.0.0.1:8080/myapp而不是 client1.mydomain 或 client2.mydomain。我想,这是由于 Apache 被用作主要调度程序,并且对 Apache httpd 的请求被转发到 localhost Tomcat。

我不想更改 URL 的结构(如 client1.mydomain.com/client1),也不想通过 UI 向用户询问客户端信息。我如何实现这一目标?

0 投票
1 回答
777 浏览

apache2 - 如何通过 mod_proxy 代理到在 Tomcat 中运行的多个应用程序

我有 2 个在 Tomcat6 下运行的 Web 应用程序。目前,我可以使用以下配置通过 mod_proxy 访问其中一个...

现在,我可以通过http://staging.domain.com/app1访问 app1 。我也希望能够以同样的方式访问 app2:http://staging.domain.com/app2。我配置了第二个 VirtualHost 但是,只有第一个有效。这甚至可以在一个域下代理 2 个 Web 应用程序吗?如果是这样,任何提示、提示、技巧将不胜感激。

0 投票
2 回答
529 浏览

apache - Beta 用户的不同文档根目录?

我有一个基于 wordpress 的 php 应用程序在 ubuntu 服务器上的 apache 上运行。我已经开发了一个新版本的应用程序,我希望只有某些用户可以访问这个测试版。我的服务器结构是这样的:
/var/www/site
/var/www/betasite

我不希望这些用户运行不同域/子域的站点。这两个站点都应该运行相同的 wordpress 数据库,因此需要相同的域。基于会话/cookie 更改 wordpress 主题也是不可能的,因为我有很多资产/插件位于 wp-content/themes 文件夹之外。

我正在考虑给 beta 用户一个 cookie,并将带有这些 cookie 的请求重定向到新的文档根目录。我一直在尝试弄乱 htaccess 的 mod_rewrite,但经过大量实验后,我发现 mod_rewrite 无法重定向到 apache 文档根目录之外的内容。
我需要基于请求标头中的 cookie 的虚拟主机设置。有任何想法吗?

0 投票
2 回答
66 浏览

php - 每当发出 http 请求时,如何让脚本运行?

我有 2 个网络服务器。一个托管我的主网站 (www.site.com),另一个托管一个子域 (sub.site.com)。我设置它的方式,任何时候你去子域,它首先通过主服务器路由,使用 mod_proxy。在主网络服务器上,我有一个 php 脚本,可以在任何时候访问网页时记录信息。我想要发生的是任何时候有人访问子域,日志记录脚本在将请求发送到子域服务器之前在主服务器上运行。这可能吗?

0 投票
3 回答
1272 浏览

apache - 前端代理没有正确引用资源

在播放前运行前端代理时我遇到了很多困难。这篇文章也在谷歌群里,我会把收到的建议都贴出来。

我正在使用 apache 和 mod_proxy,应用程序应该在“mywebsite.be/dev/app/”位置运行。它能够显示 HTML。

但是当我运行应用程序时,所有的 CSS/JS/图像都丢失了,所有的引用也不正确。我查找了源代码,似乎 Play 没有替换 @{/pathname/to/resources} 和其他指向其正确 URL 的相关链接。为了让一切正常工作,所有 url 都应以“/dev/app”为前缀。如何才能做到这一点?

我尝试使用 ctxPath 进行试验,但这不是我需要的,应用程序本身运行良好,但 apache2 在反向代理中翻译所有这些 url 时遇到问题。

这可以解决吗?我正在考虑以某种方式在模板系统中编辑@-operator,但这不可能,对吧?

问候,贾斯珀

0 投票
1 回答
4172 浏览

tomcat - Spring Security 和 AJP 代理

我将 Spring Security 和 Apache 代理用于 Web 应用程序。使用标准 mod_proxy 时一切正常,但切换到 AJP 代理后,Spring 安全重定向出现问题。

阿帕奇配置:

当我调用http://domain.com/login时,我会看到一个登录表单。

当我提交表单时,我会转到http://domain.com/auth并获得身份验证。

然后 Spring Security 应该重定向到http://domain.com/index但它会重定向到http://domain.com/Context/index

我怎样才能摆脱那个上下文路径?为什么 Spring Security 到处添加它?

Spring Security 网站上有一个类似的问题,但没有人回答:

http://forum.springsource.org/showthread.php?95141-Why-is-spring-security-including-the-context-path

PS 谷歌没有找到与这个问题更相关的东西,这似乎很奇怪。我是唯一一个使用 Spring Security + AJP 的人吗?也许这是一个错误的模式?

解决方案: