代理:传递请求正文失败


12

我正在尝试启用代理虚拟主机:

<VirtualHost *:80>

  ServerName xxxxx.domain.tdl
  SSLProxyEngine On
  SSLProxyCheckPeerCN on

  ProxyPass / https://localhost:1234
  ProxyPassReverse / https://localhost:1234

</VirtualHost>

但是我有一个500 err和我的error.log(apache2)显示:

[2012年1月3日星期二15:41:42] [错误](502)未知错误502:代理:传递请求正文失败到[:: 1]:1234(localhost)

[2012年1月3日星期二15:41:42] [错误]代理:传递请求正文从82.252.xxx.xx()到[:: 1]:1234(localhost)失败

缺少一些参数?

Answers:


3
ProxyPass / https://localhost:1234/
ProxyPassReverse / https://localhost:1234/

试试吧。斜杠匹配很重要。


1
您好,斜杠相同的错误。
2012年

5
好。端口1234上的服务是否实际上在侦听IPv6?尝试127.0.0.1代替localhost。另外,该端口上的证书的使用者名称是什么?如果与该主机名不完全匹配,则连接将失败-如果您进行更改以强制使用IPv4本地主机(127.0.0.1),则它将真正失败。大概就关了SSLProxyCheckPeerCN
Shane Madden

“可能只是关闭SSLProxyCheckPeerCN”:是的,它现在正在工作=)。但是现在localhost:1234后面的服务抛出了一个关于cookie的错误:/(您的浏览器不支持cookie,这是此Web服务器在会话身份验证模式下工作所必需的)我认为它是ProxyPass,服务没有它就可以正常工作。
2012年

还有其他想法对我没有帮助?
childno͡.de

@ childno.de最好是使用您的特定配置打开一个新问题,并记录条目,以便我们进行查看。
Shane Madden

3

如果浏览器正在为xxxxx.domain.tdl设置cookie,而服务器正在为本地主机或本地定义的域返回cookie,则可能不匹配。您可以ProxyPassReverseCookieDomain用来重写cookie。

由于它们都在/上,因此您可能不需要ProxyPassReverseCookiePath


2

使用127.0.0.1代替localhost,可能您的应用未运行IPv6

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.