ipv6 代理转发导致错误请求

ipv6 代理转发导致错误请求

我已将 apache httpd 服务器配置为代理转发器。以下是我的 conf 文件详细信息

Listen 0.0.0.0:9999
Listen [::]:9999
<VirtualHost *:9999>

SSLEngine off
SSLProxyEngine On
SSLCertificateFile /etc/httpd/ssl/ca.crt
SSLCertificateKeyFile /etc/httpd/ssl/ca.key

ProxyRequests Off
ProxyPreserveHost On

RewriteEngine on
RewriteRule ^/rest/v1/ https://%{HTTP_HOST}/rest/v1/
</VirtualHost>

我正在使用 curl 客户端

对于 IPv4:

卷曲http://192.168.56.11/rest/v1/–代理 0.0.0.0:9999 -v

它运行良好,我得到了正确的结果

对于 IPv6:

卷曲-6http://fe80::2:0:9:1%eth1/rest/v1/–代理[::]:9999-v

使用 ipv6 时,调用失败,我收到的响应代码为“400”。此 ipv6 请求的 error_log 中显示以下错误消息

[错误] [客户端::1] 请求失败:读取标头时出错

实际上,目标服务器是 Jetty 服务器,但在发生故障时,我看到的值为“服务器:Apache/2.2.15 (CentOS)”。此外,没有到达目的地的调用日志。它实际上是在代理中失败。

答案1

您的VirtualHost设置仅用于处理 IPv4 连接。

<VirtualHost *:9999>

您需要进行设置以处理 IPv4 和 IPv6 连接。

<VirtualHost *:9999 [::]:9999>

相关内容